Vienība 2 / 11

Bioloģisko datu analīzes pamati ar Python

Ieguvumi:

  • Spēja uzticēties deterministiskajai izvadei, rakstot kodu, kas nolasa un attīra bioloģiskos datus mākslīgajam intelektam, un pats palaižot to ar Pandas, NumPy un Biopython
  • Spēja izvairīties no riska, ka “nepareizs kods darbosies bez kļūdām”, pārbaudot kodu ar nelielu situāciju, kuras rezultāts ir zināms, un apstiprinājuma testu.
  • Spēja izveidot atkārtojamu analīzi ar versiju piespraušanu, nejaušības sēšanu un neapstrādātu datu saglabāšanas paradumiem

Mūsdienu bioloģijas valoda arvien vairāk kļūst par Python. Manuālā apstrāde laboratorijas piezīmjdatorā tagad pārvēršas par koda rindām, kas apstrādā desmitiem tūkstošu tabulu rindu sekundē. Šajā nodaļā mēs iemācīsimies izmantot AI kā līdzprogrammētāju, kas izdrukā Python kodu, kas nolasa, attīra un apkopo jūsu bioloģiskos datus. Svarīgi ir uzrakstīt kodu mākslīgajam intelektam, palaist pats un pārbaudīt rezultātu; Tas ir tāpēc, ka tas nepaļaujas uz modeļa verbālo prognozēšanu, bet gan uz koda deterministisko (nodrošinot vienādu rezultātu katrā izpildē) izvadi.

Jums nav jāzina, kā kodēt šajā vienībā; Jūs iemācīsities pareizi izteikt nodomu un nodrošināt rezultātu.

Kāpēc Python un kuras bibliotēkas?

Bioloģijā visbiežāk izmantotās Python bibliotēkas (bibliotēka: gatavu funkciju pakotne) ir:

  • pandas: lai lasītu tabulas datus (CSV, Excel) un veiktu rindu-kolonnu darbības. Pamata rīks gēnu ekspresijas tabulas filtrēšanai, grupēšanai un sapludināšanai.
  • NumPy: skaitļu masīvu un matricu operācijām; Tas darbojas zem pandām.
  • Biopython: darbam ar DNS/RNS/olbaltumvielu sekvencēm, FASTA failu lasīšanai, tulkošanai (DNS pārveidošanai proteīnā).
  • matplotlib / seaborn: zemes gabalu plānošanai.
  • SciPy/statsmodels: statistikas testiem.

Mākslīgais intelekts ļoti labi pārzina šīs bibliotēkas. Jūsu uzdevums ir skaidri norādīt, ko vēlaties darīt ar kuru bibliotēku, un palaist un pārbaudīt ģenerēto kodu.

Padoms: modelis dažreiz var "izveidot" (halucinēt) bibliotēkas funkciju, kas neeksistē. Ja kods rada kļūdu, nekrītiet panikā; ielīmējot kļūdu atpakaļ modelī, kā tas parasti tiek novērsts. Ja tas joprojām nedarbojas, pārbaudiet oficiālo dokumentāciju.

Soli pa solim: skaitīšanas tabulas notīrīšana

Pieņemsim, ka jums ir counts.csv: rindas ir gēni, kolonnas ir paraugi, šūnas ir neapstrādāts lasīšanas skaits. Tipiski pirmie soļi:

  1. Ielādē: Izlasiet tabulu ar pandām.
  2. Atklāšana: pārbaudiet izmēru (cik gēnu, cik paraugu), trūkstošās vērtības, dublētos gēnu nosaukumus.
  3. Filtrēšana: izmetiet gēnus, kas nav nolasīti nevienā paraugā (kopējais skaits 0); tie ir troksnis.
  4. Apkopojiet: Aprēķiniet kopējo nolasījumu skaitu vienā paraugā (bibliotēkas lielums); Pārāk zems paraugs, iespējams, neizdevās.

Varat izmantot šo darbplūsmu mākslīgajam intelektam šādi:

Loma: Jūs esat Python palīgs, kas koncentrējas uz bioinformātiku. Uzdevums: Izlasiet failu counts.csv ar pandām. Dati: rindas ir gēns (index=gene_id), kolonnas ir 24 paraugi, vērtības ir veseli skaitļi, neapstrādāti. Es vēlos: (1) izdrukāt izmēru, (2) izmest gēnus, kas nekad netika nolasīti, (3) parādīt kopējo nolasījumu skaitu paraugā joslu diagrammā. Katrai rindai pievienojiet īsus komentārus turku valodā. Vienkārši ievadiet darba kodu.

ģenerē modeļa kodu; tu to vadi. Ja izvadā redzat 24 kolonnas un saprātīgu skaitu gēnu (piemēram, 15 000–25 000), jūs esat uz pareizā ceļa. Ja vienā paraugā ir par vienu desmito daļu vairāk rādījumu nekā citos, pierakstiet šo paraugu.

trīs mini futrāļi

1. gadījums — trūkstošo vērtību slazds: skolēnam vidējā vērtība tika aprēķināta 30 paraugu metabolomikas tabulā; Rezultāts bija absurds. Problēma: trūkstošās šūnas tika aizpildītas ar tekstu "ND", nevis NaN (nevis skaitlis), tāpēc kolonna tika lasīta kā teksts. Tas tika labots, kad es liku mākslīgajam intelektam teikt "Make ND vērtības ​​NaN un konvertējiet kolonnu skaitļos". Nodarbība: vienmēr vispirms izpētiet neapstrādātus datus.

2. gadījums — sapludināšanas kļūda: pētnieks apvienoja divas tabulas (ekspresiju un gēnu anotāciju), bet tika zaudēti 2000 gēnu. Cēlonis: vienā tabulā ID bija "ENSG00000141510", otrā tie bija "ENSG00000141510.14" (ar versijas numuru). Modelis uzrakstīja vienu koda rindiņu, kas notīra versijas numuru; Zaudējums tika samazināts līdz 40 gēniem. Nodarbība: izlīdziniet ID formātus pirms to sapludināšanas.

3. gadījums — kluss datu zudums: tehniķis nepamanīja, ka pēc filtrēšanas gēnu skaits samazinājās no 22 000 līdz 8 000; slieksnis tika iestatīts nepareizi (kopā > 10, nevis > 10 katrā paraugā). Galu galā trūka zināma gēna (saimniecības gēns: gēni, piemēram, GAPDH, kas pastāvīgi tiek ekspresēti katrā šūnā). Nodarbība: pārbaudiet, vai pēcfiltra nav gēna "must have".

Pārbaude ar zināmu situāciju (svarīgākais ieradums)

Visdrošākais veids, kā uzticēties mākslīgā intelekta rakstītā koda precizitātei, ir pārbaudīt to ar nelielu paraugu, kura rezultāts jums ir zināms iepriekš. Piemēram, dodiet manekena tabulu ar 5 rindām; aprēķināt kopējo summu manuāli; Pārbaudiet, vai kods dod tādu pašu rezultātu.

Pievienojiet jūsu rakstītajam filtrēšanas kodam testu: ģenerējiet nelielu datu rāmi, kas sastāv no 5 gēniem, 3 paraugiem, apzināti iestatiet 2 gēnus uz nulli, pārbaudiet, apstiprinot, ka filtrs izmet tieši šos 2 gēnus. Padariet testu izpildāmu.

assert brīdina, ja kods atšķiras no paredzētās darbības. Tas ir spēcīgākais vairogs pret "klusā viltus secinājuma" risku.

Vāja uzvedne / spēcīga uzvedne

Vāji: "Notīriet manu diagrammu."

Jaudīgi: "counts.csv: rindu gēns (gēna_id indekss), 24 kolonnu paraugs, vērtības neapstrādāts vesels skaitlis. Rīkojieties šādi: ziņojiet par trūkstošajām vērtībām, izmetiet gēnus, kuru summa ir 0 visos paraugos, izdrukājiet katra parauga kopējo nolasījumu skaitu, salīdziniet gēnu skaitu pirms/pēc filtra. Vienkārši norādiet strādājošu, komentētu Python kodu."

Atšķirība: spēcīga uzvedne norāda datu struktūru, darbības un validācijas izvadi (pirms/pēc salīdzināšanas). Modelim nav jāuzmin.

Salīdzinājuma diagramma: AI vai manuāla?

darījums

Drukāt uz mākslīgo intelektu

pārbaudi pats

CSV lasīšana, formātu konvertēšana

Pārbaudiet izmēru un veidus

Filtrēšana, grupēšana

Skaitīt pirms/pēc

Statistikas tests

Jā (kods)

Apstipriniet pieņēmumus un pārbaudiet

"Cik rindas ir atlikušas?"

Nē (ļaujiet kodam skaitīt)

Izlasiet izvadi

Rezultāta bioloģiskā nozīme

daļēji

Nepieciešams eksperta komentārs

Biežas kļūdas

  • Paļaujoties uz modeļa radīto skaitli: "Kāda ir vidējā izteiksme?" Uzdodiet jautājumu kodam, nevis modelim.
  • Netiek pārbaudīti datu tipi: skaitļu kolonnas, kas tiek lasītas kā teksts, klusi atgriež nepareizus rezultātus.
  • Netiek pārbaudīts pēcfiltrs: pārbaudiet, vai joprojām ir paredzētais gēns.
  • Aizmirstot nejaušības sēklu: Ja sēkla nav fiksēta kodā, kas satur nejaušības darbības, rezultāts mainās katru reizi; atkārtojamība ir traucēta.
  • Koda palaišana, to neizlasot: vismaz izlasi komentārus un seko loģikai.
Uzmanību: tas, ka kods darbojas, nenozīmē, ka kods ir pareizs. "Nepareizs kods, kas darbojas bez kļūdām" ir visbīstamākā situācija bioloģijā; jo nepareizs rezultāts tiek radīts klusi. Pārbaude ar zināmu stāvokli novērš šo risku.

Reproducējamība: koda zinātniskā vērtība

Bioloģijā rezultāta zinātniskā vērtība ir atkarīga no citu (un jūsu nākotnes es) spējas to reproducēt. Manuālās tabulas darbības netiek reģistrētas; Neviens nezina, kura šūna mainās un kā. Kods dokumentē katru soli. Tāpēc uzskatiet par analīzi, ko veicat, izmantojot mākslīgo intelektu, kā uzglabājamu un kopīgu ierakstu, nevis kā vienreizēju kastīti.

Trīs ieradumi ir svarīgi atkārtojamai analīzei. Pirmā ir versijas piespraušana: atzīmējiet, kuru bibliotēkas versiju izmantojat (piemēram, pandas 2.2); Dažāda versija var dot atšķirīgus rezultātus. Otrais ir nejaušības sēkla: labojiet sēklu katrā kodā, kurā ir nejaušas darbības, lai rezultāts būtu vienāds katrā izpildē. Treškārt, nekad nemainiet neapstrādātos datus: nepieskarieties oriģinālajam failam, veiciet visas koda transformācijas, lai to varētu atvilkt atpakaļ.

Pievienojiet rindas, kas drukā jūsu rakstītā analīzes koda sākumā izmantoto bibliotēku versijas, un, ja notiek nejaušs process, izlabojiet sākumu ar sanp.random.seed(42). Nemainiet neapstrādāto CSV vispār, saglabājiet visu izvadi atsevišķā failā.

Jupyter piezīmju grāmatiņa: analīzes un stāstījuma kombinācija

Bioinformātikā visbiežāk izmantotā vide ir Jupyter piezīmju grāmatiņa (piezīmju grāmatiņa: rīks, kas apvieno kodu, izvadi un aprakstu vienā dokumentā). Ja mākslīgais intelekts ģenerē kodu atbilstoši piezīmjdatora šūnām, katru darbību atdalot ar Markdown skaidrojumu, gan jums, gan jūsu kolēģiem ir vieglāk sekot līdzi analīzei. Tas padara analīzi par lasāmu laboratorijas piezīmju grāmatiņu, nevis "melno kasti".

Bioloģisko failu formātu atpazīšana

Apstrādājot bioloģiskos datus ar Python, jūs pastāvīgi saskarsities ar noteiktiem failu formātiem. Lai modelis varētu pareizi nolasīt failu, tam ir jāzina, kādā formātā tas ir; Ja formatējat nepareizi, jūs nonāksit slazdā "nepareizs kods, kas darbojas bez kļūdām". Visizplatītākie ir:

formātā

Saturs

piemērots transportlīdzeklis

CSV/TSV

Tabulas dati (izteiksme, mērījumi)

pandas

FASTA (.fa/.fasta)

DNS/RNS/olbaltumvielu sekvences

biopitons

FASTQ (.fq)

Neapstrādāti secības nolasījumi + kvalitāte

Biopython, pielāgoti rīki

VCF

Variantu (mutāciju) saraksts

pandas/pysam

GFF/GTF

Genoma anotācija (gēnu pozīcijas)

pandas, gffutils

Ja neatpazīstat formātu, vispirms lieciet modelim to identificēt, parādot dažas rindiņas, pēc tam pieprasiet nolasīto kodu:

Tālāk es sniedzu faila pirmās 5 rindiņas. Kāds ir šis biofaila formāts? Izskaidrojiet kolonnu/lauku nozīmi, pēc tam ievadiet kodu, kas droši nolasa (formāta pārbaudes) šo failu Python. Pirmās 5 rindas: [ielīmēt]

Šī pieeja novērš klusās kļūdas, kas rodas, pirmkārt, formas pieņēmuma dēļ.

Rezumējot

Python ir galvenā bioloģisko datu apstrādes valoda; Pandas, NumPy un Biopython ir pamata rīki. AI ātri raksta šo kodu, bet jūs to palaižat un pārbaudiet. Vissvarīgākais ieradums ir pārbaudīt kodu ar nelielu paraugu, kura rezultāts jums ir zināms, un iegult cerības kodā ar apgalvojumu. Paļaujieties uz palaistā koda deterministisko izvadi, nevis verbāliem minējumiem.

Lietojumprogrammas uzdevums

Izdrukājiet kodu, kurā mākslīgais intelekts nolasa jūsu CSV tabulu (vai paraugu), izdrukājiet tā izmēru un izfiltrējiet tukšos gēnus. Pēc tam pievienojiet apstiprinājuma testu no modeļa ar 5 fiktīvu datu rindiņām. Palaidiet kodu; Ievērojiet gēnu skaitu pirms un pēc filtra. Pārbaudiet, vai rezultātos joprojām ir mājturības gēns (piemēram, GAPDH/ACTB).

kontrolsaraksts

  • [ ] Pirms datu apstrādes es pārbaudīju datu lielumu un veidus.
  • [ ] Esmu skaidri apstrādājis trūkstošās vērtības.
  • [ ] Es salīdzināju rindu skaitu pirms/pēc filtra.
  • [ ] Es pievienoju apgalvojuma testu ar zināmu nosacījumu.
  • [ ] Es skaitīšanu/aprēķinu atstāju koda, nevis modeļa ziņā.
  • [ ] Izlasīju koda komentārus un sekoju loģikai.