Nyereség:
- Képesség hét lépésből álló munkafolyamat tervezésére a kérdéstől az ellenőrzött eredményig úgy, hogy minden lépésnél ellenőrző kaput helyez el
- Képes a mesterséges intelligencia által írt Python-kód ismert tesztadatokkal való ellenőrzésére, valamint a „működő kód” és a „helyes kód” közötti különbség megkülönböztetésére
- Tegye reprodukálhatóvá az elemzést (verzió, táptalaj, mag, dokumentum), és jelentse nedves ellenőrzéssel, átláthatósággal és szakértői jóváhagyással
Az előző kilenc egységben tanultuk a darabokat: szekvenciaelemzés, omika, fehérjemodellezés, kísérlettervezés, laboratóriumi adatok, biofeldolgozás, irodalom és etika. Ebben az utolsó részben összerakjuk a darabokat, és egy végponttól végpontig terjedő munkafolyamatot építünk fel – egy kutatási kérdéstől a validált következtetésig tartó láncot, ahol a mesterséges intelligencia minden lépésben segít, de minden kritikus döntést és ellenőrzést az ember hoz meg. Kitérünk a Pythonra is, amely ennek a láncnak a gerincét képezi, és a reprodukálhatóság tudományát – azt a képességet, hogy valaki más által végzett elemzést megismételjenek ugyanazokkal az adatokkal, hogy ugyanazt az eredményt adják.
A cél nem az egyedi eszközök átadása, hanem egy felelősségteljes munkafolyamat-szemlélet: tudni fogja, hová helyezze el az AI-t, hová helyezze el az ellenőrző kaput, és hogyan tegye nyomon követhetővé a teljes folyamatot.
Miért Python?
A bioinformatika és a számítógépes biológia lingua franca a Python (és R). Mert a nyílt forráskódú könyvtárakkal automatizálható és szinte minden lépés megismételhetővé válik (Biopython a szekvenciaelemzéshez, panda az adattáblázatokhoz, scikit-learn a gépi tanuláshoz, matplotlib a vizualizációhoz). Az AI nagyon erős Python kód írásában; De az általa előállított kód futás nélkül történő elfogadása és ellenőrzése veszélyes – a kód csendben rossz eredményt adhat vissza (egységhiba, rossz oszlop, kihagyott szűrő).
Figyelem: Még ha az AI által írt kód működik is, előfordulhat, hogy nem helyes. A "hiba nélkül működött" és a "megfelelő eredményt adott" két különböző dolog. Próbáljon ki minden kódot egy kis, ismert tesztadatokkal: a bemenet-kimenet a vártnak megfelelő? Csak így lehet elkapni a néma hibákat.
A munkafolyamat anatómiája
A felelős AI-kompatibilis biomérnöki munkafolyamat ezt a keretet követi:
- Kérdés és hipotézis. Világos, tesztelhető kérdés. (A mesterséges intelligencia inspirálhat; Ön tisztázza.)
- Adatgyűjtés és adatvédelmi ellenőrzés. Honnan származnak az adatok, személyes vagy jóváhagyott médiából? (9. egység)
- Előfeldolgozás és minőségellenőrzés. Tisztítás, normalizálás, tételvezérlés. (2-3. egység.)
- Elemzés. Statisztika, modellezés, előrejelzés. (Ellenőrző kapu minden lépésnél.)
- Megjegyzés. A biológiai elme eltalálása, korreláció-okozati megkülönböztetés.
- Nedves laboratóriumi ellenőrzés. A kritikai hipotézist kísérletileg teszteljük. (1., 4., 5. egység.)
- Jelentéstétel és átláthatóság. Reprodukálható kód, AI nyilatkozat, szakértői jóváhagyás. (8-9. egység.)
Minden lépésnek van egy ellenőrzőpontja – az a pont, ahol a kimenet ellenőrzése megtörténik, mielőtt a következő lépésre lépne. A mesterséges intelligencia egy lépést felgyorsít, nem léphet tovább a következő lépésre anélkül, hogy áthaladna az ajtón.
Tipp: Mentse el a munkafolyamatot szkriptként és jegyzetfüzetként; Legyen dokumentálva az egyes lépések bemenete, kimenete és döntése. A „hogyan jutottam ehhez az eredményhez” kérdésre néhány percen belül, hónapok után megválaszolandó aranyat ér a tudomány és az auditálás szempontjából.
Reprodukálhatóság: az eredmény biztosítása
Az eredmény csak akkor megbízható, ha valaki más is meg tudja ismételni. A reprodukálhatóság négy pillére: (1) a kód verziókezelésben van (git-tel), (2) a környezet rögzített (a könyvtári verziók regisztrálva vannak, pl. követelmények.txt vagy conda környezet), (3) az adatok és a véletlenszerű magok regisztrálva vannak, (4) minden lépés dokumentálva van. A mesterséges intelligencia segít ennek az infrastruktúrának a kiépítésében, de a fegyelem betartatása az Ön feladata.
három mini tok
1. eset – Csendes kód hiba történt. Az egyik csapat egy normalizációs szkriptet használt, amelyet az AI írt; A kód hiba nélkül működött. Amikor kipróbálták ismert tesztadatokkal, azt találták, hogy a kimenet 1000-szeres faktorral tolódott el – a szkript hibás mértékegységkonverziót végzett. A kis tesztadatok olyan hibát észleltek, amely megzavarta a teljes elemzést.
2. eset – A reprodukálhatóság mentve. Adás után a játékvezető az eredmény visszajátszását kérte. A csapat 20 perc alatt szó szerint reprodukálta az elemzést, mivel Gitben és rögzített környezetben volt a kód verziója. Egy rivális csoport, amely nem rögzítette a környezetet, hetekig nem tudta teljesíteni ugyanazt a kérést.
3. eset – Végpontok közötti ellenőrzés. Egy enzimprojektben a munkafolyamat a következőképpen működött: az AI hipotézist javasolt az irodalomból (validált), a fehérjemodell rangsorolta a jelölt mutációkat (kísérletekkel tesztelve), a DoE csökkentette a kísérletek számát, minden harmadik mutáció 1,9-szeresére növelte az aktivitást. A mesterséges intelligencia minden lépésnél felgyorsult, minden ajtónál ember igazolt; Az eredmény gyors és védhető volt.
Négy másolható sablon
1) Munkafolyamat-váz létrehozása:
Az Ön szerepe: számítógépes biológia projekt tanácsadó. Tervezzen egy végpontok közötti munkafolyamatot a következő kérdés megválaszolásához: [kérdés]. Minden lépésnél (1) mit kell tenni, (2) hol segít az AI, (3) mi legyen az érvényesítési keretrendszer, (4) milyen eszközt használjunk. Tartalmazza a nedves laboratóriumi validálást és az átlátszósági lépést.
2) Python kód + tesztkérés:
Az Ön feladata: bioinformatikai fejlesztő. Írjon egy Python-függvényt, amely a következő feladatot végzi: [job]. Könyvtár: [pandas/Biopython]. Adjunk hozzá egy érvényesítési példát is kevéssé ismert tesztadatokkal: mi a bemenet, mi a várható kimenet. Lefuttatom a kódot és ellenőrzöm tesztadatokkal. Nem létező funkció/paraméter illesztés.
3) Reprodukálhatósági vizsgálat:
Az elemzésemet reprodukálhatóvá szeretném tenni. Adj egy ellenőrző listát: verzióellenőrzés, környezetrögzítés (követelmények/conda), random seed, adatforrás regisztráció, lépésdokumentáció. Adjon gyakorlati alkalmazási módot minden egyes tételhez.
4) Eredményellenőrzés:
Szeretnék egy végső érvényesítési ellenőrzést végezni, mielőtt az elemzés eredményét jelentésbe helyezném. Adjon egy ellenőrzőlistát ezekről a kérdésekről: az eredmény biológiailag elfogadható-e, pontos-e a statisztika (többszörös vizsgálat, minta), független eszközökkel megerősítették-e, forrásfüggő-e, szükséges-e nedves teszt, készült-e mesterséges intelligencia?
Gyenge felszólítás / Erős felszólítás
Gyenge felszólítás:
Írj nekem egy Python kódot, amely elemzi ezeket az adatokat.
Homályos küldetés, nincs tesztelés, nincs ellenőrzés; csendes hiba hajlamos.
Erőteljes felszólítás:
Feladata: bioinformatikai fejlesztő. CSV esetén (oszlopok: gén, kontroll_átlag, kezelési_átlag, pérték) pandákkal: (1) add hozzá a log2-szeres változás oszlopát, (2) számítsd ki a BH korrigált p-értéket, (3) szűrd ki a padj<0,05 és |log2FC|>1 értékeket. Mutasd IS a várt kimenetet 5 sor mintaadattal, hogy ellenőrizhessem. Ne használjon rossz oszlopnevet vagy nem létező függvényt.
A különbség: egyértelmű küldetés, világos statisztikák, hitelesítés tesztadatokkal és gyártási tilalom.
Végpontok közötti munkafolyamat-ellenőrzési átjárók
lépést
AI hozzájárulás
ellenőrző kapu
hipotézis
ihlet, irodalom
Tesztelhető vagy hegesztett?
Adatok/adatvédelem
ellenőrző lista
Az azonosítás megszüntetése, jóváhagyott környezet
előfeldolgozás
forgatókönyvet
Batch/QC vezérlés
Elemzés
kód, modell
Tesztadatok, független jármű
Megjegyzés
tervezet
Biológiai elme, korreláció-ok-okozati összefüggés
nedves ellenőrzés
Kísérleti terv
Valódi kísérleti eredmény
Jelentés
tervezet
Reprodukálhatóság, átláthatóság, szakértői jóváhagyás
Gyakori hibák
- Azt gondolva, hogy a működő kód helyes. „Hiba nélkül működött” ≠ „helyes eredmény”; tesztadatokkal kell kipróbálni.
- Az ellenőrző kapuk megkerülése. Ha a gyorsaság kedvéért elhalad egy ajtón, az minden további lépést kockáztat.
- A reprodukálhatóság figyelmen kívül hagyása. Környezet/verzió regisztráció nélkül az eredmény nem reprodukálható.
- A nedves ellenőrzés késleltetése/kihagyása. Addig nem lehet döntést hozni, amíg a számítógépes előrejelzést kísérlettel meg nem erősítik.
- Megfeledkezve az átláthatóságról és a szakértői jóváhagyásról. A végső aláírás és az AI nyilatkozat a munkafolyamat részét képezi.
Összefoglalva
A felelős biomérnöki tevékenység az AI-t nem egyedi eszközként használja, hanem egy teljes körű munkafolyamat részeként, amelyet érvényesítési kapukkal szegélyeznek. A Python és a reprodukálhatóság képezik ennek az áramlásnak a gerincét; A mesterséges intelligencia kódot ír, de azt tesztadatokkal ellenőrzi, mert a működő kód nem megfelelő kód. A mesterséges intelligencia minden lépésnél felgyorsul, az ember minden ajtónál ellenőrzi; A kritikus hipotéziseket nedves laboratóriumban teszteljük, az eredményeket átláthatóan, szakértői jóváhagyással közöljük. Ennek a modulnak a lényege egy mondatban van: Vedd az AI sebességet, tartsd meg az emberben a döntést és a felelősséget.
Pályázati feladat
Tervezzen egy elejétől a végéig munkafolyamatot egy saját kutatási kérdéséhez. A mesterséges intelligencia készítsen egy hét lépésből álló tervet a „munkafolyamatváz” sablonnal, és adja hozzá a saját ellenőrző kapuját minden lépéshez. Ezután nyomtasson ki egy szkriptet a „Python kód + tesztkérés” sablonnal az egyik elemzési lépéshez, futtassa le egy kis tesztadatokkal, és igazolja, hogy a kimenet helyes. Végül készítsen egy „eredményellenőrzési” listát, és készítse elő ezt a munkafolyamatot a jelentéskészítéshez. Rögzítse a teljes folyamatot reprodukálható (kód + adathordozó + dokumentum) formátumban.
ellenőrző lista
- [ ] A munkafolyamatot hét lépésből és minden lépésnél egy ellenőrző kapuból terveztem.
- [ ] Az AI által írt kódot ismert tesztadatokkal ellenőriztem.
- [ ] Az elemzést reprodukálhatóvá tettem (verzió, környezet, mag, dokumentum).
- [ ] A kritikus hipotézist a nedves labor validációnak tulajdonítottam.
- [ ] A munkafolyamatba beépítettem az adatvédelmi és biológiai biztonsági ellenőrzéseket.
- [ ] A jelentést átlátható AI nyilatkozattal és szakértői jóváhagyással egészítettem ki.
Modul vizsga
1. Az alábbiak közül melyik a legpontosabb helymeghatározás a mesterséges intelligencia számára a biomérnökségben?
- A) A mesterséges intelligencia egy átvilágító és rajzoló eszköz; A biológiai jelentést és biztonságot meghatározó döntések felelőssége az embert terheli ✔
- B) A mesterséges intelligencia emberi jóváhagyás nélkül képes közvetlenül termelésbe bocsátani a jelölt molekulákat
- C) Mivel a mesterséges intelligencia mindig objektívebb, mint az ember, a biológiai értelmezést rá kell bízni.
- D) A mesterséges intelligencia csak szövegösszegzésre használható, semmi köze a laboratóriumi adatokhoz
Leírás: Mesterséges intelligencia; Ez egy asszisztens, amely terjedelmes és zajos adatokat szkennel, mintákat jelöl és vázlatokat készít. Az illetékes szakértő hozza meg a biológiai jelentést, a biztonságot és a végső döntést; egy ellenőrizetlen nyomat egy beteget, egy gyártási tételt vagy egy kiadványt veszélyeztethet. A biztonság szempontjából kritikus területeken az AI-kimenet nem helyettesíti a szakértői jóváhagyást.
2. Mi a célja a „forrás összekapcsolása” lépésnek az AI-kimenet érvényesítésekor?
- A) A koholt (hallucinációs) következtetések kiküszöbölése az egyes állítások konkrét adatokhoz vagy az eredeti forráshoz való kapcsolásával ✔
- B) A kimenet gördülékenyebbé és olvashatóbbá tétele
- C) Az érvényesítés kihagyása az elemzés gyorsabb befejezése érdekében
- D) A mesterséges intelligencia által adott referenciák elfogadása úgy, ahogy vannak
Leírás: A mesterséges intelligencia folyékonyan beszél, de időnként hallucinációkat produkál; nem létező gént, útvonalat vagy referenciát mutathat valósnak. Az egyes állítások szilárd adatokhoz vagy az eredeti forráshoz való kapcsolódása megakadályozza, hogy a koholt következtetések bekerüljenek a jelentésbe vagy kiadványba.
3. A BLAST vagy szekvencia-illesztési eredmény értelmezésekor mi szükséges a „magabiztos” egyezés értékeléséhez?
- A) Csak nézzük a húr hosszát
- B) Közvetlenül a mesterséges intelligencia által adott típusnévre támaszkodva
- C) Az igazítási mutatók, például a százalékos azonosság, a lefedettség és az e-érték együttes értékelése ✔
- D) Csak megszámoljuk, hány soros a kimenet
Leírás: A sorozatértelmezés érvényesítéséhez olyan mutatók szükségesek, mint a százalékos azonosság, a lefedettség és az e-érték. Egy kis e-érték azt jelzi, hogy a hasonlóság nem véletlen. E mutatók nélkül a „ez a fehérje az” értelmezés nem ellenőrizhető, és hallucináció lehet.
4. Miért használjuk a „korrigált p-értéket” (padj) 20 000 gén egyidejű tesztelésekor az RNS-seq differenciális expressziós analízisben?
- A) A padlócsere növelése
- B) A többszöri tesztelés miatti téves pozitívumok ellenőrzése és a hamis felfedezések arányának korlátozása ✔
- C) A minta méretének csökkentése
- D) Az elemzés felgyorsítása
Magyarázat: Ha több ezer gént tesztelnek egyszerre, több száz gén akár véletlenül is „szignifikánsnak” bizonyulhat. A többszörös tesztelés korrekciója, például a Benjamini-Hochberg korlátozza a hamis felfedezések arányát. A nyers p-értékkel a lista félrevezető módon megduzzad; A padj használata elengedhetetlen a tudományos védhetőséghez.
5. Mi az a csapda az omics elemzésben, amikor két kezelési csoportot különböző napokon dolgoznak fel, ami összetéveszti a technikai különbséget egy biológiai különbséggel?
- A) Padlócsere hiba
- B) Kodon optimalizálás
- C) Kötegelt hatás ✔
- D) Élhatás
Magyarázat: A kötegelt hatás az a technikai különbség, amely a minták különböző napokon, eszközökön vagy személyek általi feldolgozásából adódik, és ez a legnagyobb hibaforrás az omikai elemzésben. Az elemzés megkezdése előtt PCA diagramot kell készíteni, és ellenőrizni kell, hogy a minták biológiai állapot vagy tétel szerint csoportosultak-e.
6. Mit jelent a pLDDT pontszám az AlphaFolddal előállított fehérjeszerkezet előrejelzésére, és hogyan kell használni?
- A) Megmutatja a modell megbízhatósági szintjét az egyes régiókban; Az alacsony bizalmi zónákon alapuló állításokat kerülni kell ✔
- B) Azt méri, hogy a fehérje milyen gyorsan gyűrődik, és figyelmen kívül hagyható
- C) Bebizonyítja, hogy a fehérjének pontos szerkezete van, amelyet kísérletileg sikerült megoldani.
- D) Közvetlenül dokkolóaffinitást ad
Leírás: A pLDDT egy megbízhatósági pontszám, amely azt jelzi, hogy a modell mennyire biztos az egyes aminosavak tekintetében. A magas értékek (>90) általában megbízhatóak; Az alacsonyabb értékek (<50) gyakran szabálytalan vagy tisztázatlan régiókat jeleznek. Az alacsony megbízhatóságú régiókon alapuló állítási mechanizmusok félrevezető; a kritikus szerkezeteket kísérletileg kell igazolni.
7. Hogyan kell értelmezni a molekuláris dokkolási pontszámokat a gyógyszer/enzim tervezésben?
- A) Abszolút kötési affinitásnak kell tekinteni.
- B) Biztosítja, hogy egy molekula soha ne kötődjön
- C) Ez egy viszonylagos eszköz a molekulák rendezésére a kísérletezés előtt; A végső döntést kísérleti affinitásméréssel hozzák meg ✔
- D) Egyedül elegendő a klinikai jóváhagyáshoz
Megjegyzés: A dokkolási pontszámok relatívak, és nem jelzik előre a tényleges kötési affinitást; A hamis pozitív arány magas. A helyes használat az, hogy több ezer molekulát szekvenálnak a kísérletezés előtt, és kiemelik a legígéretesebbeket. A végső döntést kísérleti affinitásmérés, például SPR vagy ITC hozza meg.
8. Mi a fő hibája az „egy változót egy időben” (OFAT) módszernek egy biofolyamat-mérnök számára, aki öt paramétert szeretne optimalizálni?
- A) Kihagyja a paraméterek közötti interakciókat ✔
- B) Mindig kevés kísérletezést igényel
- C) Növeli a statisztikai teljesítményt
- D) Automatikusan megszünteti a kötegelt hatást
Magyarázat: Az OFAT metódus kihagyja a paraméterek közötti interakciókat; talán a magas hőmérséklet csak alacsony pH mellett jó. A kísérletek tervezése (DoE) rögzíti a kölcsönhatásokat, és csökkenti a kísérletek számát a paramétereket együttesen és kiegyensúlyozottan változó faktortervekkel.
9. Mi a helyes megközelítés, amikor egy optimalizálási modell olyan hőmérsékletet javasol, amely elpusztítja a tenyészetet a laboratóriumban?
- A) A javaslat megvalósítása úgy, ahogy van, mert a modell okosabb
- B) Biztonsági és fiziológiai korlátok megadása a modell megkötéseként, és az egyes javaslatok laboratóriumi ismeretekkel történő ellenőrzése ✔
- C) Az optimalizálás teljes elhagyása
- D) Próbálja figyelmen kívül hagyni a hőmérsékleti határértéket
Magyarázat: A modell nem ismer fiziológiai és biztonsági határokat; a matematikai optimum veszélyes vagy lehetetlen lehet. A helyes megközelítés az, hogy biztonsági és fiziológiai korlátokat adunk megkötésként a modellnek, és minden javaslatot laboratóriumi ismeretekkel ellenőrizünk. A fizikai határ felülmúlja a matematikai optimumot.
10. Melyik kötelező az automatizált sejtszámlálás vagy a fluoreszcens válogatás eredményének értékelésekor?
- A) Az eredmény közvetlen elfogadása, mert a modell gyorsabb, mint az ember
- B) Csak a képek számának közlése
- C) Csak a legmagasabb jelű képet nézzük
- D) Manuálisan ellenőrizze a kimenetet egy mintán, és érvényesítse a megfelelő kontrollokkal (beleértve a negatív, festetlen) ✔
Leírás: Az automatikus kimenetet manuálisan kell ellenőrizni egy mintán, és minden mérést a megfelelő kontrollokkal (pozitív, negatív, vak, festetlen) kell érvényesíteni. Például, ha van jel a festetlen kontrollban, ez lehet autofluoreszcencia; Vezérlések nélkül az automatikus elemzés nem tudja megkülönböztetni a valódi jelet a műterméktől.
11. Mi a teendő, ha egy biofolyamat optimalizálási javaslata növeli a hozamot, de kivesz egy kritikus minőségi jellemzőt (CQA) a specifikációból?
- A) Mivel a hatékonyság fontos, a nagy hatásfokú opciót részesítjük előnyben
- B) A hatékonyságot a CQA határérték lazítása tartja fenn
- C) A döntés a mesterséges intelligenciára van bízva
- D) A minőséget élvezik a hatékonysággal szemben; A tervezési térbe eső minőségi opció előnyben részesítendő ✔
Leírás: A biofeldolgozásban a minőség felülmúlja a hozamot; A CQA határértékeit (tisztaság, glikoziláció, aktivitás) be kell tartani ahhoz, hogy a termék biztonságos és hatékony legyen. Ha a hatékonyság maximalizálása rontja a minőséget, akkor a tervezési téren belül maradó minőségi opciót részesítjük előnyben.
12. Mi a fő kockázat, ha egy nyelvi modellnek azt mondják, hogy „keressen 10 cikket erről a témáról, és foglalja össze őket”?
- A) A modell nagyon lassan fut
- B) A modell valósághű, de nem létező (kitalált) hivatkozásokat tud generálni valódi keresés nélkül ✔
- C) A modell mindig túl sok cikket talál
- D) A modell csak régi cikkeket ad vissza
Magyarázat: Az egyszerű csevegőeszközök gyakran nem hajtanak végre tényleges keresést; statisztikailag „valószínűnek tűnő” válaszokat generál emlékezetből. Ez valósághű, de hamis utalásokat jelent (kitalált szerző, folyóirat, DOI). Minden hivatkozást ellenőrizni kell a tényleges adatbázissal (PubMed, DOI), és lehetőség szerint tényleges dokumentumokhoz kapcsolódó RAG-alapú eszközöket kell használni.
13. Mi a helyes viselkedés, amikor a felhasználó olyan mutációkat kér az MI-től, amelyek növelik egy bakteriális toxin hatékonyságát?
- A) A kérés részletes megválaszolása, mert az tudományos
- B) A kockázat csökkentése csak részleges információk megadásával
- C) A kérelem elutasítása, magyarázata, hogy az DURC hatálya alá tartozik, és jelentse az intézményi biológiai biztonsági csatornán ✔
- D) Hagyja figyelmen kívül a kérést, és térjen át egy másik témára
Magyarázat: Ez a kérelem egy kettős felhasználású (DURC) alatti kártékony kérelem. Az AI-nak vissza kell utasítania az ilyen kéréseket, meg kell magyaráznia, miért jelent kettős felhasználású kockázatot, és jelentenie kell a helyzetet a vállalati biológiai biztonsági/etikai csatornán. Semmilyen műszaki tanácsot nem szabad adni, amely növelné a károsodás lehetőségét.
14. Milyen következtetés helyes, ha egy mesterséges intelligencia által írt Python elemző szkript hiba nélkül működik?
- A) Az eredmény teljesen helyes, mert a kód működik
- B) Nincs szükség a kód tesztelésére, mert az AI írta
- C) A hibák hiánya is garantálja a reprodukálhatóságot.
- D) Előfordulhat, hogy a futó kód nem megfelelő; A várható kimenetet az ismert tesztadatokkal kell igazolni ✔
Magyarázat: „Hiba nélkül működött” és a „helyes eredményt adta” két különböző dolog. Előfordulhat, hogy a kód csendben rossz eredményt ad vissza egységhiba, rossz oszlop vagy kihagyott szűrő miatt. Minden kódot egy kis tesztadatokkal kell tesztelni, amelyek bemenete és kimenete ismert; Azonban megbízhatónak kell tekinteni, ha a várt eredményt adja.