Enhet 2 / 11

DNA/RNA-sekvensanalyse: justering, motiv, åpen leseramme og grunnleggende bioinformatikk

Gevinster:

  • Forstå begrepene sekvensjustering, motivsøking og åpen leseramme (ORF) og la den kunstige intelligensen produsere kjørbar, verifiserbar Biopython/analysekode.
  • Evne til å sjekke ramme-, streng- og genomversjonsantakelser i sekvensen og koden produsert av kunstig intelligens og sammenligne resultatet med en kjent referanse
  • Evne til å bruke disiplinen med å ikke bruke noen sekvenser gitt av kunstig intelligens fra hodet og bekrefte hver sekvens fra en primærkilde som NCBI / Ensembl

Sekvensanalyse er den mest grunnleggende oppgaven til molekylærbiologi: å lese en DNA-streng (eller U i RNA) som består av bokstavene A, T, G, C, sammenligne den og finne meningsfulle regioner (gener, motiver, regulatoriske sekvenser) i den. I denne enheten lærer du hvordan du bruker kunstig intelligens (AI) som kodeskrivings- og tolkepartner i disse arbeidene; men du vil lære hvorfor du alltid bør verifisere resultatet med kjørbar kode og primærkilde. Kjerneverktøysettet vårt vil være Biopython (et Python-bibliotek skrevet for å jobbe med biologiske sekvenser) og offisielle justeringsverktøy.

Først en advarsel: LLM kan produsere feil fra minnet, selv en kort sekvens. Den kan blande sammen en bokstav når den blir bedt om å beregne det motsatte komplementet til en sekvens direkte. Utfør derfor aldri strengoperasjoner ved å stole på AI-ens tekstrespons, men med koden som AI-en skriver og du kjører.

Grunnleggende begreper: hva jobber vi med?

  • Basepar (bp): Bokstavenheten til DNA. Det menneskelige genomet er omtrent 3,2 milliarder bp.
  • Strand: DNA er en dobbel helix; De to trådene er antikomplement til hverandre. Det har betydning i hvilken tråd en variant er deklarert.
  • Kodon: Gruppe på tre baser; hvert kodon tilsvarer en aminosyre (byggesteinen til protein). For eksempel er ATG vanligvis startkodonet (metionin).
  • Åpen leseramme (ORF): Sekvensregionen som kan kode for et protein, som strekker seg fra startkodonet til stoppkodonet (TAA, TAG, TGA).
  • Motiv: Repeterende kort sekvensmønster som har en bestemt funksjon; for eksempel regionen som en transkripsjonsfaktor binder seg til.
  • Justering: Ordne to eller flere sekvenser under hverandre for å se likhetene deres.

Trinn for trinn: arbeidsflyt for sekvensanalyse

1. Få serien fra pålitelig kilde. Ikke få AI-en til å si "minn på" sekvensen; Last den ned som FASTA (standard tekstformat som lagrer sekvenser) fra en kilde som NCBI, Ensembl, etc. og gi denne sekvensen til AI.

2. Få transaksjonen utført med kode. Få operasjoner som omvendt komplement, transkripsjon (DNA→RNA), translasjon (RNA→protein), GC-forhold utført av Biopython-kode og kjør koden selv.

3. Sjekk ramme- og trådforutsetninger. Be ham/henne tydelig angi i kommentarfeltet hvilken tråd og i hvilken leseramme koden kjører.

4. Sammenlign resultatet med den kjente referansen. Match proteinet eller ORF du produserte med den kjente posten i databasen. Lengde og innledende misforhold fanger opp de vanligste feilene.

5. Bekreft justering med offisielt verktøy. Ikke la AI "øyeeplet" likheten til to serier; Få en numerisk poengsum med BLAST (søkeverktøy for sekvenslikhet) eller et justeringsbibliotek.

Tips: La alltid strenglengde være din første kontroll. Antall aminosyrer i et protein er omtrent en tredjedel av antall baser i den kodende sekvensen (ekskludert stoppkodonet). Hvis lengden ikke passer, er rammen eller tråden feil.

tre minisaker

Tilfelle 1 — Invers komplementfeil. En student spurte AI om det omvendte komplementet til sekvensen 5'-GATTACA-3'; AI gav "TGTAATC" (riktig). I en lengre sekvens på 20 baser hoppet imidlertid AI over en base og resultatet ble 19 baser. Da studenten kjørte den med Seq("...").reverse_complement() i Biopython, tok den 20 baser og fanget opp feilen. Tapt tid: 2 minutter.

Tilfelle 2 — Rammeforskyvning. En forsker hadde en 900-baser kodende sekvens oversatt til protein; AI "leser" et protein på 280 aminosyrer med tekst. Forventet var 299 aminosyrer (900/3 − 1 stopp). Forskjellen var at AI startet fra det andre nukleotidet. Riktig lengde ble oppnådd når koden ble startet fra den første rammen.

Sak 3 – Bekreftelse oppnådd. En laboratorietekniker undersøkte 16S rRNA-sekvensene til to bakteriestammer ved å spørre "er de like?" spurte han AI; "Sannsynligvis det samme," sa AI. Da teknikeren kjørte BLAST, så han 97,8 % likhet og 12 baseforskjeller - en kritisk forskjell for diskriminering på artsnivå. Hvis det ikke var noen numerisk poengsum, ville feil "samme" resultat blitt lagt inn i rapporten.

Eksempel: en verifiserbar Biopython-strøm

fra Bio.Seq import Seq# Importer sekvensen fra FASTA du lastet ned fra NCBI; Ikke få AI-en til å si "minn meg". dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")print("Length (bp):", len(dna))print("GC rate (%):", round(100 * (dna.count("G") + dna.count("C")) / len(dna), 1))print("GC rate (%):", round(100 * (dna.count("G") + dna.count("C")) / len(dna), 1)) ramme 1; up to stop codonprotein = dna.translate(to_stop=True)print("Protein:", protein, "| Length (mm):", len(protein))

Selv om AI skriver denne koden, ser du nøyaktigheten til utdataene ved å kjøre den. Lengde, GC-forhold og protein er sammenlignbare med den kjente referansen.

Fire kopierbare maler

1) Verifiserbar array-operasjon:

Skriv en kjørbar Biopython-kode for følgende FASTA-sekvens: [sekvens/oppgave]. Beregn lengde, GC-forhold, reverskomplement og translasjon fra ramme 1. Kommenter hvilken tråd og ramme som er antatt. Ikke lag sekvensen; Bare bruk sekvensen jeg ga deg.

2) ORF-screening:

Skriv en Python-kode som finner alle åpne leserammer i den gitte sekvensen (og alle tre på den valgfrie omvendte tråden). Rapporter startposisjon, lengde og oversatt protein for hver ORF. Merk også den lengste ORF.

3) Justeringsbekreftelse:

Jeg ønsker å sammenligne to matriser. "Lignende?" Ikke døm etter øyet; skriv en parvis justeringskode og rapporter likhetsprosenten og forskjellstallet numerisk. Kilde: [serie 1], [serie 2].

4) Motivsøk:

Søk etter følgende motiv (også som regulært uttrykk) i den gitte strengen: [motiv]. List opp plasseringen (1-basert) for alle treff. Skriv og spesifiser også overlappende treff.

Svak forespørsel / Sterk forespørsel

Svak: "Skriv proteinet i denne sekvensen: ATGGCC..."

Problem: AI oversetter med tekst, kan forvirre ramme/tråd, kan ikke bekrefte lengden.

Sterk: "Skriv en kjørbar Biopython-kode som oversetter følgende sekvens fra ramme 1, rapporterer lengden og stoppkodonet; ikke endre sekvensen, bare bruk den jeg ga: ATGGCC..."

Hvorfor det er kraftig: Behandling gjøres i kode, rammeverket er klart, utdata kan verifiseres numerisk.

Quest

feil tilnærming

riktig tilnærming

omvendt komplement

La AI skrive med tekst

Biopython reverse_complement()

oversettelse

La AI oversette fra minnet

Kode som spesifiserer rammeverket

likhet

"Lignende?" øyeavgjørelse

BLAST/justeringspoeng

motiv

La AI telle for hånd

Kode, med plasseringsliste

Array-kilde

La AI huske

FASTA fra NCBI/Ensembl

Vanlige feil

  • Spesifiserer ikke rammeverket. Oversettelse fra feil ramme gir et kort eller defekt protein.
  • Sammenfiltring av garnet. Varianten eller motivet kan være i omvendt tråd; trådantagelse bør skrives.
  • Får AI til å huske sekvensen. LLM kan ikke produsere lang streng uten feil; Du leverer alltid serien.
  • Dømme etter øye for likhet. Ikke si «samme/lignende» uten en numerisk poengsum.
  • RNA/DNA-blanding. Å blande U med T forstyrrer oversettelsen; avklar inndatatypen.
Forsiktig: Selv en høy prosentvis likhet i BLAST og lignende verktøy betyr ikke nødvendigvis biologisk "identisk"; E-verdien (sannsynlighet) og lengden på den justerte regionen bør evalueres sammen.

Dybde: les en BLAST-utgang riktig

Å la AI tolke et BLAST-resultat sparer tid; Men ikke ta noen avgjørelser før du har lest de tre sakene selv. Den første er e-verdien (forventet verdi): det forventede antallet ganger denne poengsummen kan oppstå ved en tilfeldighet; En veldig liten verdi som 1e-50 betyr sterk, en verdi som 0,1 er nesten støy. Den andre er spørringsdekning: hvor stor prosentandel av søkesekvensen samsvaret dekker; 98 % likhet, men bare 20 % dekning betyr at en liten del av sekvensen er lik og er misvisende. Den tredje er prosent identitet. Uten disse tre lest sammen, beviser ikke en høy prosentandel alene noe.

Et konkret eksempel: en forsker sprengte et fragment av et gen han nettopp hadde sekvensert; "99% samsvarer med menneskelig BRCA2, samme gen," sa AI. Da forskeren så på resultatet, så han at dekningen bare var 15 % - den matchende delen var bare en kort, gjentatt region av tusenvis av baser av BRCA2. Den korrekte tolkningen var ikke "samme gen", men "deler et felles gjentakende motiv". Lesing av omfanget forhindret en fullstendig feilidentifikasjon.

BLAST kolonne

hva står det

felle

E-verdi

sannsynligheten for tilfeldigheter

Hvis den er høy, kan kampen være meningsløs

Forespørselsdekning

Dekket spørrefrekvens

Hvis den er lav, er prosentandelen misvisende

prosent identitet

Matchende grunnrente

alene er ikke nok

bitscore

Normalisert innrettingsstyrke

Tolkes etter lengde

5) BLAST utdatatolkningsmal:

Tolk følgende BLAST-tabell, men ikke bestem deg: oppsummer e-verdien, spørringsdekningen og prosentidentiteten for hver rad separat og angi hvilke terskler som må oppfylles før du kommer til en konklusjon som "samme gen". Tabell: [lim inn].

Oppsummert

  • Sekvensoperasjoner (omvendt komplement, oversettelse, ORF, GC-forhold) bør gjøres med koden som AI-en skriver og du kjører, ikke med AI-ens tekstrespons.
  • Forutsetninger om rammeverk og tråder skal alltid angis eksplisitt; lengdesjekk er det raskeste feilfangingsverktøyet.
  • Få alltid sekvensen fra pålitelig kilde (NCBI, Ensembl); Ikke få AI til å huske det.
  • Likhet og justering vurderes av offisielle verktøy og numeriske poeng, ikke med øye.

Søknadsoppgave

Last ned en kort kodesekvens fra en pålitelig kilde (f.eks. NCBI). Med malene 1 og 2 ovenfor, spør AI om en Biopython-kode, kjør koden; Sammenlign lengden og sekvensen til proteinet du produserte med den kjente posten i databasen. Hvis du finner et misforhold, prøv å fikse det ved å endre rammeverket/trådantagelsen og legg merke til prosessen.

sjekkliste

  • [ ] Jeg fikk sekvensen fra en pålitelig kilde, jeg hadde ikke AI til å huske den.
  • [ ] Jeg utførte array-operasjoner med kjørbar kode.
  • [ ] Jeg har klart spesifisert rammeverket og trådantagelsen.
  • [ ] Jeg sammenlignet protein/ORF-lengden med referansen.
  • [ ] Jeg evaluerte likheten med det offisielle verktøyet og numerisk poengsum.
  • [ ] Jeg sjekket RNA/DNA og U/T-separasjon.