Eining 2 / 11

Grundvallaratriði líffræðilegrar gagnagreiningar með Python

Hagnaður:

  • Geta til að treysta ákveðinni framleiðsla með því að skrifa kóðann sem les og hreinsar líffræðileg gögn yfir í gervigreind og keyra það sjálft með Pandas, NumPy og Biopython
  • Að geta forðast hættuna á að „rangur kóði virki án villna“ með því að prófa kóðann með litlum aðstæðum þar sem niðurstaðan er þekkt og fullyrðingarpróf.
  • Geta til að koma á endurtekinni greiningu með útgáfu festingu, tilviljunarsáningu og varðveisluvenjum hrágagna

Tungumál nútímalíffræði er sífellt að verða Python. Handvirk vinnsla í minnisbók á rannsóknarstofu breytist nú í línur af kóðavinnslu tugþúsunda lína af töflum á sekúndu. Í þessari einingu munum við læra að nota gervigreind sem meðforritara sem prentar Python kóða sem les, hreinsar og tekur saman líffræðileg gögn þín. Það sem skiptir máli er að skrifa kóðann á gervigreindina, keyra hann sjálfur og sannreyna niðurstöðuna; Þetta er vegna þess að það byggir ekki á munnlegri spá líkansins, heldur á deterministic (sem gefur sömu niðurstöðu í hverri keyrslu) úttak kóðans.

Þú þarft ekki að vita hvernig á að kóða í þessari einingu; Þú munt læra að tjá ætlunina rétt og gefa út afraksturinn.

Af hverju Python og hvaða bókasöfn?

Mest notuðu Python bókasöfnin (safn: pakki af tilbúnum aðgerðum) í líffræði eru:

  • pöndur: Til að lesa gögn í töfluformi (CSV, Excel) og framkvæma röð-dálkaaðgerðir. Grunntól til að sía, flokka, sameina genatjáningartöflu.
  • NumPy: Fyrir talnafylki og fylkisaðgerðir; Það gengur undir pöndum.
  • Biopython: Til að vinna með DNA/RNA/prótein raðir, lesa FASTA skrár, þýðingar (þýða DNA í prótein).
  • matplotlib / seaborn: Til að plotta lóðir.
  • SciPy/statsmodels: Fyrir tölfræðipróf.

Gervigreind þekkir þessi bókasöfn mjög vel. Starf þitt er að tilgreina greinilega hvað þú vilt gera við hvaða bókasafn og keyra og staðfesta kóðann sem myndast.

Ábending: Líkanið getur stundum "búið til" (ofskynjað) safnfall sem er ekki til. Ef kóðinn gefur villu, ekki örvænta; að líma villuna aftur inn í líkanið eins og venjulega lagar hana. Ef það virkar samt ekki skaltu athuga opinberu skjölin.

Skref fyrir skref: hreinsa talningartöflu

Segjum að þú sért með counts.csv: raðir eru gen, dálkar eru sýnishorn, frumur eru óunnin lestur. Dæmigert fyrstu skref:

  1. Hleðsla: Lestu töfluna með pöndum.
  2. Uppgötvun: Athugaðu stærð (hversu mörg gen, hversu mörg sýni), gildi sem vantar, tvöföld genanöfn.
  3. Sía: Fleygðu genum sem eru ekki lesin í neinu sýni (heildarfjöldi 0); þetta eru hávaði.
  4. Tekið saman: Reiknaðu heildarfjölda lestra á sýnishorn (stærð bókasafns); Úrtakið sem er of lágt gæti hafa mistekist.

Þú getur útvistað þessu verkflæði til gervigreindar á eftirfarandi hátt:

Hlutverk: Þú ert Python aðstoðarmaður með áherslu á lífupplýsingafræði. Verkefni: Lestu counts.csv skrána með pöndum. Gögn: línur eru gen (index=gene_id), dálkar eru 24 sýni, gildi eru heiltölu óunnin talning. Ég vil: (1) prenta stærðina, (2) fleygja genunum sem aldrei voru lesin, (3) sýna heildarlestur á sýni á súluriti. Bættu stuttum tyrkneskum athugasemdum við hverja línu. Gefðu bara vinnukóða.

Býr til líkankóða; þú keyrir það. Ef þú sérð 24 dálka og hæfilegan fjölda gena (t.d. 15.000-25.000) í úttakinu ertu á réttri leið. Ef eitt sýnishorn inniheldur tíunda fleiri lestur en hin, skrifaðu það sýnishorn niður.

þrjú smámál

Tilvik 1 - Gildisgildra vantar: Nemandi lét reikna meðaltalið í 30 sýnistöflu um efnaskiptafræði; Niðurstaðan var fáránleg. Vandamál: hólfin sem vantaði voru fyllt með textanum „ND“ í stað NaN (ekki tölu), svo dálkurinn var lesinn sem texti. Það var lagað þegar ég lét gervigreindina segja „Gerðu ND gildi NaN og breyttu dálknum í tölur“. Lexía: kanna alltaf hrá gögn fyrst.

Tilvik 2 - Sameinunarvilla: Rannsakandi sameinaði tvær töflur (tjáning og genaskýring) en 2.000 gen týndust. Orsök: í annarri töflunni voru auðkennin „ENSG00000141510“, í hinni voru þau „ENSG00000141510.14“ (með útgáfunúmeri). Model skrifaði eina línu af kóða sem hreinsaði útgáfunúmerið; Tapið var minnkað í 40 gen. Lexía: samræma auðkennissnið áður en þau eru sameinuð.

Tilfelli 3 — Hljóðlaust gagnatap: Tæknimaður tók ekki eftir því að eftir síun fækkaði genum úr 22.000 í 8.000; þröskuldurinn var rangt stilltur (>10 samtals í stað >10 álestra í hverju sýni). Þekkt gen (húshaldsgen: gen eins og GAPDH sem eru stöðugt tjáð í hverri frumu) vantaði á endanum. Lexía: athugaðu hvort „verður að hafa“ geni eftir síun.

Próf með þekktum aðstæðum (mikilvægasta venja)

Öruggasta leiðin til að treysta nákvæmni kóðans sem skrifaður er af gervigreind er að prófa hann með litlu sýnishorni sem þú veist fyrirfram. Til dæmis, gefðu dummy töflu með 5 línum; reiknaðu heildartöluna handvirkt; Athugaðu hvort kóðinn gefur sömu niðurstöðu.

Bættu prófi við síunarkóðann sem þú skrifaðir: Búðu til lítinn DataFrame sem samanstendur af 5 genum, 3 sýnum, stilltu 2 gen vísvitandi á núll, staðfestu með því að fullyrða að sían henti nákvæmlega þessum 2 genum. Gerðu prófið keyranlegt.

assert varar þig við ef kóðinn víkur frá væntanlegri hegðun. Þetta er sterkasti skjöldurinn gegn hættunni á "þöglu röngu niðurstöðunni".

Veik kvaðning / Sterk kvaðning

Veik: "Hreinsaðu töfluna mína."

Öflugt: "counts.csv: rows gen (gene_id index), 24 dálka sýnishorn, gildi hrá heiltala. Gerðu eftirfarandi: tilkynntu um gildi sem vantar, fleygðu genum sem eru 0 í öllum sýnum, prentaðu heildarlestur fyrir hvert sýni, berðu saman genafjölda fyrir/eftir síu. Gefðu bara virkan, skrifaðan Python kóða."

Mismunur: Sterk hvetja tilgreinir gagnaskipulag, skref og staðfestingarúttak (fyrir/eftir samanburð). Fyrirmyndin þarf ekki að giska.

Samanburðarkort: gervigreind eða handvirk?

viðskipti

Prentaðu til gervigreindar

staðfestu það sjálfur

CSV lestur, sniðbreyting

Athugaðu stærð og gerðir

Sía, flokkun

Telja fyrir/eftir

Tölfræðipróf

Já (kóði)

Staðfestu forsendur og prófaðu

"Hvað eru margar línur eftir?"

Nei (látum kóðann telja)

Lestu útkomuna

Líffræðileg merking niðurstöðunnar

að hluta

Umsagnar sérfræðinga er krafist

Algeng mistök

  • Með því að treysta á töluna sem líkanið framleiðir: „Hver ​​er meðaltjáningin? Spyrðu spurninguna við kóðann, ekki líkanið.
  • Ekki athugað gagnategundir: Dálkar með tölum sem lesnir eru eins og texti skila röngum niðurstöðum hljóðlaust.
  • Athugar ekki eftirsíu: Staðfestu að væntanlegt gen sé enn til staðar.
  • Að gleyma fræi handahófs: Ef fræið er ekki fast í kóðanum sem inniheldur tilviljunarkenndar aðgerðir breytist niðurstaðan í hvert skipti; endurtekningarhæfni er skert.
  • Að keyra kóðann án þess að lesa hann: Lestu að minnsta kosti athugasemdirnar og fylgdu rökfræðinni.
Athugið: Þó að kóðinn virki þýðir það ekki að kóðinn sé réttur. "Rangur kóði sem virkar án villna" er hættulegasta ástandið í líffræði; vegna þess að röng niðurstaða er framleidd í hljóði. Próf með þekktu ástandi útilokar þessa áhættu.

Endurgerðanleiki: vísindalegt gildi kóðans

Í líffræði er vísindalegt gildi niðurstöðu háð getu annarra (og framtíðarsjálfs þíns) til að endurskapa hana. Handvirkar töfluaðgerðir eru ekki skráðar; Enginn veit hvaða fruma breytist og hvernig. Kóðinn skráir hvert skref. Hugsaðu því um greininguna sem þú framleiðir með gervigreind sem geymda og sameiginlega skrá, ekki sem einskiptisbox.

Þrjár venjur eru mikilvægar fyrir endurtekna greiningu. Í fyrsta lagi er útgáfa festing: athugaðu hvaða bókasafnsútgáfu þú ert að nota (t.d. pandas 2.2); Mismunandi útgáfa getur gefið mismunandi niðurstöður. Annað er handahófsfræið: lagaðu fræið í hverjum kóða sem inniheldur handahófskenndar aðgerðir þannig að niðurstaðan verði sú sama í hverri keyrslu. Í þriðja lagi skaltu aldrei breyta hrágögnunum: ekki snerta upprunalegu skrána, gerðu allar umbreytingar á kóða svo hægt sé að snúa honum til baka.

Bættu við línum sem prenta útgáfur af bókasöfnum sem notaðar voru í upphafi greiningarkóðans sem þú skrifaðir, og ef það er tilviljunarkennt ferli, lagaðu fræið með sanp.random.seed(42). Ekki breyta hráu CSV, vistaðu allt úttak í sérstakri skrá.

Jupyter minnisbók: sambland af greiningu og frásögn

Mest notaða umhverfið í lífupplýsingafræði er Jupyter minnisbókin (notabók: tól sem sameinar kóða, úttak og lýsingu í sama skjalinu). Með því að láta gervigreindina búa til kóðann í samræmi við fartölvufrumur, með hverju skrefi aðskilið með Markdown skýringu, auðveldar bæði þér og samstarfsfólki þínu að fylgjast með greiningunni. Þetta gerir greininguna að læsilegri glósubók á rannsóknarstofu, ekki "svartum kassa".

Að þekkja líffræðileg skráarsnið

Þegar þú vinnur úr líffræðilegum gögnum með Python muntu stöðugt lenda í vissum skráarsniðum. Áður en líkanið getur lesið skrá rétt verður það að vita á hvaða sniði hún er; Ef þú misskilur sniðið fellurðu í „rangan kóða sem virkar án villna“ gildru. Algengustu eru:

sniði

Efni

viðeigandi farartæki

CSV/TSV

Töflugögn (tjáning, mæling)

pöndur

FASTA (.fa/.fasta)

DNA/RNA/prótein röð

biopython

FASTQ (.fq)

Hrá raðarlestur + gæði

Biopython, sérsniðin verkfæri

VCF

Afbrigði (stökkbreytingar) listi

pöndur/pysam

GFF/GTF

Erfðamengiskýring (genastöður)

pöndur, gffutils

Ef þú þekkir ekki snið skaltu fyrst láta líkanið bera kennsl á það með því að sýna nokkrar sýnislínur, biðja síðan um leskóðann:

Ég gef upp fyrstu 5 línurnar í skránni hér að neðan. Hvaða biofile snið er þetta? Útskýrðu merkingu dálkanna/reitanna, gefðu síðan kóða sem les á öruggan hátt (sniðathugun) þessa skrá í Python. Fyrstu 5 línurnar: [líma]

Þessi nálgun kemur í veg fyrir þöglar villur sem myndast fyrst af forsendunni.

Í stuttu máli

Python er aðalvinnslutungumál líffræðilegra gagna; pöndur, NumPy og Biopython eru grunnverkfærin. Gervigreindin skrifar þennan kóða fljótt, en þú keyrir hann og staðfestir hann. Mikilvægasta venjan er að prófa kóðann með litlu sýnishorni sem þú þekkir niðurstöðuna og fella væntingarnar inn í kóðann með fullyrðingu. Treystu á afgerandi úttak kóðans sem þú keyrir, ekki munnlegar getgátur.

Umsóknarverkefni

Prentaðu kóða sem lætur gervigreindina lesa CSV töfluna sem þú hefur (eða sýnishorn), prentaðu út stærð hans og síaðu út tóm gen. Bættu síðan við fullyrðingarprófi úr líkaninu með 5 línum af dummy gögnum. Keyra kóðann; Athugaðu fjölda gena fyrir og eftir síuna. Athugaðu hvort heimilisgen (t.d. GAPDH/ACTB) sé enn til staðar í niðurstöðunni.

gátlisti

  • [ ] Ég athugaði stærð og gerð gagnanna áður en ég vann úr þeim.
  • [ ] Ég hef beinlínis séð um gildi sem vantar.
  • [ ] Ég bar saman fjölda raða fyrir/eftir síu.
  • [ ] Ég bætti við fullyrðingarprófi með þekktu ástandi.
  • [ ] Ég skildi talningu/útreikning eftir kóðann, ekki líkanið.
  • [ ] Ég las athugasemdir kóðans og fylgdi rökfræðinni.