Njësia 2 / 11

Bazat e analizës së të dhënave biologjike me Python

Fitimet:

  • Aftësia për t'i besuar prodhimit përcaktues duke shkruar kodin që lexon dhe pastron të dhënat biologjike në inteligjencën artificiale dhe duke e drejtuar atë vetë me Pandas, NumPy dhe Biopython
  • Të jesh në gjendje të shmangësh rrezikun e 'kodit të gabuar që funksionon pa gabime' duke testuar kodin me një situatë të vogël rezultati i së cilës dihet dhe një test i pohimit.
  • Aftësia për të krijuar një analizë të përsëritshme me fiksimin e versionit, mbjelljen e rastësishme dhe zakonet e ruajtjes së të dhënave të papërpunuara

Gjuha e biologjisë moderne po bëhet gjithnjë e më shumë Python. Përpunimi manual në një fletore laboratorike tani kthehet në linja kodi që përpunojnë dhjetëra mijëra rreshta tabelash në sekondë. Në këtë njësi, ne do të mësojmë të përdorim AI si një bashkëprogramues që printon kodin Python që lexon, pastron dhe përmbledh të dhënat tuaja biologjike. E rëndësishme është të shkruani kodin në inteligjencën artificiale, ta ekzekutoni vetë dhe të verifikoni rezultatin; Kjo sepse nuk mbështetet në parashikimin verbal të modelit, por në daljen përcaktuese (që siguron të njëjtin rezultat në çdo ekzekutim) të kodit.

Ju nuk keni nevojë të dini se si të kodoni në këtë njësi; Do të mësoni të shprehni saktë qëllimin dhe të jepni rezultatin.

Pse Python dhe cilat biblioteka?

Bibliotekat më të përdorura të Python (biblioteka: paketa e funksioneve të gatshme) në biologji janë:

  • panda: Për të lexuar të dhënat tabelare (CSV, Excel) dhe për të kryer operacione rresht-kolona. Mjet bazë për të filtruar, grupuar, bashkuar një tabelë të shprehjes së gjeneve.
  • NumPy: Për vargjet numerike dhe operacionet e matricës; Ajo shkon nën panda.
  • Biopython: Për të punuar me sekuencat ADN/ARN/proteinike, leximin e skedarëve FASTA, përkthimin (përkthimin e ADN-së në proteinë).
  • matplotlib / seaborn: Për komplotimin e parcelave.
  • SciPy/statsmodels: Për teste statistikore.

Inteligjenca artificiale i njeh shumë mirë këto biblioteka. Detyra juaj është të deklaroni qartë se çfarë doni të bëni me cilën bibliotekë dhe të ekzekutoni dhe verifikoni kodin e krijuar.

Këshillë: Modeli ndonjëherë mund të "krijojë" (halucinojë) një funksion të bibliotekës që nuk ekziston. Nëse kodi jep një gabim, mos u frikësoni; ngjitja e gabimit përsëri në model siç është zakonisht e rregullon atë. Nëse ende nuk funksionon, kontrolloni dokumentacionin zyrtar.

Hap pas hapi: pastrimi i tabelës së numërimit

Le të themi se keni counts.csv: rreshtat janë gjene, kolonat janë mostra, qelizat janë numërime të papërpunuara të leximit. Hapat e parë tipikë:

  1. Duke u ngarkuar: Lexoni tabelën me panda.
  2. Zbulimi: Kontrolloni madhësinë (sa gjene, sa mostra), vlerat që mungojnë, emrat e gjeneve të kopjuara.
  3. Filtrimi: Hidhni gjenet që nuk lexohen në asnjë kampion (numërimi total 0); këto janë zhurmë.
  4. Përmbledhje: Llogaritni numrin total të leximeve për mostër (madhësia e bibliotekës); Mostra që është shumë e ulët mund të ketë dështuar.

Ju mund ta transferoni këtë rrjedhë pune tek inteligjenca artificiale si më poshtë:

Roli: Ju jeni një asistent Python i fokusuar në bioinformatikë. Detyrë: Lexoni skedarin counts.csv me pandat. Të dhënat: rreshtat janë gjen (indeks=gjen_id), kolonat janë 24 mostra, vlerat janë numërime të papërpunuara. Unë dua: (1) të printoj madhësinë, (2) të hedh poshtë gjenet që nuk janë lexuar kurrë, (3) të tregojë leximet totale për mostër në një grafik me shtylla. Shtoni komente të shkurtra turke në çdo rresht. Thjesht jepni kodin e punës.

Gjeneron kodin e modelit; ju e drejtoni atë. Nëse shihni 24 kolona dhe një numër të arsyeshëm gjenesh (p.sh. 15,000-25,000) në dalje, ju jeni në rrugën e duhur. Nëse një mostër përmban një të dhjetën e leximeve sa të tjerat, shkruajeni atë mostër.

tre mini kuti

Rasti 1 — Kurthi i vlerave që mungon: Një studenti ka llogaritur mesataren në një tabelë metabolomike me 30 mostra; Rezultati ishte absurd. Problem: qelizat që mungonin u mbushën me tekstin "ND" në vend të NaN (jo një numër), kështu që kolona u lexua si tekst. U rregullua kur bëra inteligjencën artificiale të thoshte "Bëni vlerat ND të NaN dhe ktheni kolonën në numra". Mësimi: së pari eksploroni gjithmonë të dhënat e papërpunuara.

Rasti 2 - Gabim në bashkim: Një studiues bashkoi dy tabela (shprehja dhe shënimi i gjenit) por 2000 gjene humbën. Shkaku: në njërën tabelë ID-të ishin "ENSG00000141510", në tjetrën ishin "ENSG00000141510.14" (me numër versioni). Modeli shkroi një rresht të vetëm kodi që fshinte numrin e versionit; Humbja u reduktua në 40 gjene. Mësimi: rreshtoni formatet e ID-së përpara se t'i bashkoni.

Rasti 3 — Humbje e heshtur e të dhënave: Një teknik nuk vuri re se pas filtrimit, numri i gjeneve ra nga 22,000 në 8,000; pragu ishte vendosur gabimisht (>10 gjithsej në vend të >10 lexime në çdo kampion). Një gjen i njohur (gjeni i shtëpisë: gjenet si GAPDH që shprehen vazhdimisht në çdo qelizë) përfundimisht mungonte. Mësimi: kontrolloni për një gjen "duhet të ketë" pas filtrit.

Testimi me situatën e njohur (vesi më i rëndësishëm)

Mënyra më e sigurt për të besuar saktësinë e kodit të shkruar nga inteligjenca artificiale është ta testoni atë me një mostër të vogël, rezultatin e të cilit e dini paraprakisht. Për shembull, jepni një tabelë bedel me 5 rreshta; llogaritni totalin me dorë; Shihni nëse kodi jep të njëjtin rezultat.

Shtoni një test në kodin e filtrimit që keni shkruar: Gjeneroni një DataFrame të vogël të përbërë nga 5 gjene, 3 mostra, vendosni qëllimisht 2 gjene në zero, verifikoni me pohimin se filtri i hedh pikërisht këto 2 gjene. Bëni testin të ekzekutueshëm.

assert ju paralajmëron nëse kodi devijon nga sjellja e pritur. Kjo është mburoja më e fortë ndaj rrezikut të “konkluzionit të heshtur të rremë”.

Prompt i dobët / Prompt i fortë

I dobët: "Pastroni grafikun tim".

I fuqishëm: "counts.csv: gjen i rreshtave (indeksi i identifikimit të gjeneve), mostra me 24 kolona, ​​vlerat e numrit të plotë të papërpunuar. Bëni sa më poshtë: raportoni vlerat që mungojnë, hidhni gjenet që shumojnë në 0 në të gjitha mostrat, printoni leximet totale për çdo mostër, krahasoni numrin e gjeneve para/pas filtrit. Thjesht jepni kodin Python të funksionuar, të komentuar."

Diferenca: Prompt Strong specifikon strukturën e të dhënave, hapat dhe daljen e vlefshmërisë (para/pas krahasimit). Modelja nuk ka pse të hamendësojë.

Grafiku i krahasimit: AI apo manual?

transaksion

Printoni në inteligjencën artificiale

verifikojeni vetë

Leximi CSV, konvertimi i formatit

po

Kontrolloni madhësinë dhe llojet

Filtrim, grupim

po

Numëroni para/pas

Test statistikor

Po (kodi)

Konfirmoni supozimet dhe testoni

"Sa rreshta kanë mbetur?"

Jo (le kodin të llogaritet)

Lexoni daljen

Kuptimi biologjik i rezultatit

pjesërisht

Kërkohet komenti i ekspertit

Gabimet e zakonshme

  • Duke u mbështetur në numrin që prodhon modeli: "Cila është shprehja mesatare?" Bëjini pyetjen kodit, jo modelit.
  • Mos kontrollimi i llojeve të të dhënave: Kolonat e numrave të lexuar si tekst japin në heshtje rezultate të pasakta.
  • Mos kontrollimi i filtrit pas: Verifikoni që një gjen i pritshëm është ende atje.
  • Harrimi i farës së rastësisë: Nëse fara nuk është e fiksuar në kodin që përmban operacione të rastësishme, rezultati ndryshon çdo herë; përsëritshmëria është e dëmtuar.
  • Drejtimi i kodit pa e lexuar: Të paktën lexoni komentet dhe ndiqni logjikën.
Kujdes: Vetëm për shkak se kodi funksionon nuk do të thotë që kodi është i saktë. “Kodi i gabuar që funksionon pa gabime” është situata më e rrezikshme në biologji; sepse rezultati i gabuar prodhohet në heshtje. Testimi me një gjendje të njohur e eliminon këtë rrezik.

Riprodhueshmëria: vlera shkencore e kodit

Në biologji, vlera shkencore e një rezultati varet nga aftësia e të tjerëve (dhe vetes suaj të ardhshme) për ta riprodhuar atë. Operacionet manuale të tabelës nuk regjistrohen; Askush nuk e di se cila qelizë ndryshon dhe si. Kodi dokumenton çdo hap. Prandaj, mendoni për analizën që prodhoni me inteligjencën artificiale si një rekord të ruajtur dhe të përbashkët, jo si një kuti një herë.

Tre zakone janë të rëndësishme për një analizë të përsëritshme. E para është fiksimi i versionit: vini re se cilin version të bibliotekës po përdorni (p.sh. pandas 2.2); Versione të ndryshme mund të japin rezultate të ndryshme. E dyta është fara e rastësisë: rregulloni farën në çdo kod që përmban operacione të rastësishme në mënyrë që rezultati të jetë i njëjtë në çdo ekzekutim. Së treti, mos i ndryshoni kurrë të dhënat e papërpunuara: mos e prekni skedarin origjinal, bëni të gjitha transformimet në kod në mënyrë që të mund të rikthehet.

Shtoni rreshta që printojnë versionet e bibliotekave të përdorura në fillim të kodit të analizës që keni shkruar, dhe nëse ka një proces të rastësishëm, rregulloni farën me sanp.random.seed(42). Mos e ndryshoni fare CSV-në e papërpunuar, ruajeni të gjithë daljen në një skedar të veçantë.

Fletorja e Jupyterit: kombinimi i analizës dhe tregimit

Mjedisi më i përdorur në bioinformatikë është fletorja Jupyter (notebook: mjet që kombinon kodin, daljen dhe përshkrimin në të njëjtin dokument). Të kesh AI që të gjenerojë kodin sipas qelizave të fletores, me çdo hap të ndarë nga një shpjegim Markdown, e bën më të lehtë si për ju ashtu edhe për kolegët tuaj të ndiqni analizën. Kjo e bën analizën një fletore laboratorike të lexueshme, jo një "kuti të zezë".

Njohja e formateve të skedarëve biologjikë

Kur përpunoni të dhëna biologjike me Python, do të hasni vazhdimisht disa formate skedarësh. Përpara se modeli të mund të lexojë saktë një skedar, ai duhet të dijë se në çfarë formati është; Nëse e merrni gabim formatin, do të bini në grackën e "kodit të gabuar që funksionon pa gabime". Më të zakonshmet janë:

format

përmbajtja

automjet i përshtatshëm

CSV/TSV

Të dhënat e tabelës (shprehje, matje)

pandat

FASTA (.fa/.fasta)

Sekuencat e ADN/ARN/proteinave

biopitoni

FASTQ (.fq)

Renditja e papërpunuar lexon + cilësi

Biopython, vegla me porosi

VCF

Lista e varianteve (mutacioneve).

panda/pysam

GFF/GTF

Shënimi i gjenomit (pozicionet e gjeneve)

panda, gffutils

Nëse nuk e njihni një format, së pari vini modelin ta identifikojë atë duke treguar disa rreshta mostër, më pas kërkoni kodin e lexuar:

Po jap 5 rreshtat e parë të skedarit më poshtë. Çfarë formati biofili është ky? Shpjegoni kuptimin e kolonave/fushave, më pas jepni kodin që lexon në mënyrë të sigurt (kontrollon formatin) këtë skedar në Python. 5 rreshtat e parë: [ngjit]

Kjo qasje parandalon gabimet e heshtura që dalin nga supozimi i formës në radhë të parë.

Në përmbledhje

Python është gjuha kryesore e përpunimit të të dhënave biologjike; pandat, NumPy dhe Biopython janë mjetet bazë. AI e shkruan shpejt këtë kod, por ju e ekzekutoni dhe e verifikoni. Zakoni më kritik është të testoni kodin me një mostër të vogël, rezultatin e të cilit e dini dhe futni pritshmërinë në kod me pohim. Mbështetuni në rezultatin përcaktues të kodit që përdorni, jo në supozimet verbale.

Detyra e aplikimit

Printoni një kod që AI lexon tabelën CSV që keni (ose një mostër), printoni madhësinë e tij dhe filtroni gjenet boshe. Më pas shtoni një provë të pohimit nga modeli me 5 rreshta të dhënash të rreme. Ekzekutoni kodin; Vini re numrin e gjeneve para dhe pas filtrit. Kontrolloni që një gjen i mirëmbajtjes (p.sh. GAPDH/ACTB) është ende i pranishëm në rezultat.

listë kontrolli

  • [ ] Kontrollova madhësinë dhe llojet e të dhënave përpara se t'i përpunoja.
  • [ ] Unë kam trajtuar në mënyrë të qartë vlerat që mungojnë.
  • [ ] Kam krahasuar numrin e rreshtave para/pas filtrit.
  • [ ] Shtova një test të pohimit me një kusht të njohur.
  • [ ] Numërimin/llogaritjen ia lashë kodit, jo modelit.
  • [ ] Lexova komentet e kodit dhe ndoqa logjikën.