Enhet 2 / 11

DNA/RNA-sekvensanalys: justering, motiv, öppen läsram och grundläggande bioinformatik

Vinster:

  • Förstå begreppen sekvensanpassning, motivsökning och öppen läsram (ORF) och få den artificiella intelligensen att producera körbar, verifierbar Biopython/analyskod.
  • Förmåga att kontrollera ram-, sträng- och genomversionsantaganden i sekvensen och koden som produceras av artificiell intelligens och jämföra resultatet med en känd referens
  • Förmåga att tillämpa disciplinen att inte använda några sekvenser som ges av artificiell intelligens från huvudet och bekräfta varje sekvens från en primär källa som NCBI / Ensembl

Sekvensanalys är molekylärbiologins mest grundläggande uppgift: att läsa en DNA-sträng (eller U i RNA) som består av bokstäverna A, T, G, C, jämföra den och hitta meningsfulla regioner (gener, motiv, regulatoriska sekvenser) inom den. I den här enheten får du lära dig hur du använder artificiell intelligens (AI) som kodskrivande och tolkande partner i dessa arbeten; men du kommer att lära dig varför du alltid bör verifiera resultatet med körbar kod och primär källa. Vårt kärnverktyg kommer att vara Biopython (ett Python-bibliotek skrivet för att arbeta med biologiska sekvenser) och officiella anpassningsverktyg.

Först en varning: LLM kan producera fel från minnet, även en kort sekvens. Den kan blanda ihop en bokstav när den ombeds att beräkna det omvända komplementet av en sekvens direkt. Utför därför aldrig strängoperationer genom att förlita dig på AI:s textsvar, utan med koden som AI:n skriver och du kör.

Grundbegrepp: vad arbetar vi med?

  • Baspar (bp): bokstavsenheten för DNA. Det mänskliga genomet är cirka 3,2 miljarder bp.
  • Strand: DNA är en dubbelhelix; De två strängarna är varandras antikomplement. Det spelar roll i vilken tråd en variant deklareras.
  • Kodon: Grupp med tre baser; varje kodon motsvarar en aminosyra (proteinets byggsten). Till exempel är ATG vanligtvis startkodonet (metionin).
  • Öppen läsram (ORF): Den sekvensregion som kan koda för ett protein, som sträcker sig från startkodonet till stoppkodonet (TAA, TAG, TGA).
  • Motiv: Upprepad kort sekvensmönster som har en specifik funktion; till exempel regionen till vilken en transkriptionsfaktor binder.
  • Justering: Ordna två eller flera sekvenser under varandra för att se deras likheter.

Steg för steg: arbetsflöde för sekvensanalys

1. Skaffa serien från en pålitlig källa. Få inte AI:n att säga "påminna" sekvensen; Ladda ner den som FASTA (standardtextformat som lagrar sekvenser) från en källa som NCBI, Ensembl, etc. och ge denna sekvens till AI.

2. Gör transaktionen med kod. Låt operationer som omvänt komplement, transkription (DNA→RNA), translation (RNA→protein), GC-förhållande göras av Biopython-kod och kör koden själv.

3. Kontrollera ram- och trådantaganden. Be honom/henne att tydligt ange i kommentarsraden vilken tråd och i vilken läsram koden körs.

4. Jämför resultatet med den kända referensen. Matcha proteinet eller ORF du producerade med den kända posten i databasen. Längd och initial oöverensstämmelse fångar de vanligaste felen.

5. Bekräfta inriktningen med det officiella verktyget. Låt inte AI "öga" likheten mellan två serier; Få en numerisk poäng med BLAST (sequence similarity search tool) eller ett anpassningsbibliotek.

Tips: Låt alltid stränglängden vara din första kontroll. Antalet aminosyror i ett protein är ungefär en tredjedel av antalet baser i den kodande sekvensen (exklusive stoppkodonet). Om längden inte passar är ramen eller tråden fel.

tre minifodral

Fall 1 — Omvänt komplementfel. En student frågade AI om det omvända komplementet av sekvensen 5'-GATTACA-3'; AI gav "TGTAATC" (korrekt). Men i en längre sekvens på 20 baser hoppade AI över en bas och resultatet blev 19 baser. När studenten körde den med Seq("...").reverse_complement() i Biopython tog den 20 baser och fångade felet. Tidsförlust: 2 minuter.

Fall 2 — Ramförskjutning. En forskare hade en kodande sekvens på 900 baser översatt till protein; AI:en "läser" ett protein på 280 aminosyror via text. Det förväntade var 299 aminosyror (900/3 − 1 stopp). Skillnaden var att AI startade från den andra nukleotiden. Rätt längd erhölls när koden startades från den första bilden.

Fall 3 — Bekräftelse erhållen. En laboratorietekniker undersökte 16S rRNA-sekvenserna för två bakteriestammar genom att fråga "är de samma?" han frågade AI:n; "Möjligen detsamma", sa AI:n. När teknikern körde BLAST såg han 97,8 % likhet och 12 basskillnader - en kritisk skillnad för diskriminering på artnivå. Om det inte fanns någon numerisk poäng skulle fel "samma" resultat anges i rapporten.

Exempel: en verifierbar Biopython-ström

från Bio.Seq import Seq# Importera sekvensen från den FASTA du laddade ner från NCBI; Få inte AI:n att säga "påminn mig". dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")print("Längd (bp):", len(dna))print("GC rate (%):", round(100 * (dna.count("G") + dna.count("C")) / len(dna), 1))print("GC rate (%):" ram 1; up to stop codonprotein = dna.translate(to_stop=True)print("Protein:", protein, "| Length (mm):", len(protein))

Även om AI:n skriver den här koden ser du noggrannheten i utdata genom att köra den. Längd, GC-förhållande och protein är jämförbara med den kända referensen.

Fyra kopierbara mallar

1) Verifierbar arrayoperation:

Skriv en körbar Biopython-kod för följande FASTA-sekvens: [sekvens/uppgift]. Beräkna längden, GC-förhållandet, omvänt komplement och translation från ram 1. Kommentera vilken tråd och ram som antas. Producera inte sekvensen; Använd bara sekvensen jag gav dig.

2) ORF-screening:

Skriv en Python-kod som hittar alla öppna läsramar i den givna sekvensen (och alla tre på den valfria omvända strängen). Rapportera startposition, längd och översatt protein för varje ORF. Markera även den längsta ORF.

3) Inriktningsbekräftelse:

Jag vill jämföra två arrayer. "Liknande?" Döm inte efter ögat; skriv en parvis anpassningskod och rapportera likhetsprocenten och skillnadstalet numeriskt. Källa: [serie 1], [serie 2].

4) Motivsökning:

Sök efter följande motiv (även som ett reguljärt uttryck) i den givna strängen: [motiv]. Lista platsen (1-baserad) för alla matcher. Skriv och specificera även överlappande matchningar.

Svag prompt / Stark prompt

Svag: "Skriv proteinet i denna sekvens: ATGGCC..."

Problem: AI översätter med text, kan blanda ihop ram/tråd, kan inte verifiera längden.

Stark: "Skriv en körbar Biopython-kod som översätter följande sekvens från ram 1, rapporterar längd och stoppkodon; ändra inte sekvensen, använd bara den jag gav: ATGGCC..."

Varför det är kraftfullt: Bearbetning sker i kod, ramverket är tydligt, utdata kan verifieras numeriskt.

Quest

fel tillvägagångssätt

rätt tillvägagångssätt

omvänt komplement

Låt AI skriva med text

Biopython reverse_complement()

översättning

Låt AI översätta från minnet

Kod, som anger ramverket

likhet

"Liknande?" ögonbeslut

BLAST/alignment-poäng

motiv

Låt AI:n räkna för hand

Kod, med platslista

Arraykälla

Låt AI komma ihåg

FASTA från NCBI/Ensembl

Vanliga misstag

  • Specificerar inte ramverket. Översättning från fel ram ger ett kort eller felaktigt protein.
  • Trasslar ihop garnet. Varianten eller motivet kan vara i omvänd gänga; trådantagande bör skrivas.
  • Att få AI att memorera sekvensen. LLM kan inte producera lång sträng utan fel; Du tillhandahåller alltid serien.
  • Att döma efter öga för likhet. Säg inte "samma/liknande" utan en numerisk poäng.
  • RNA/DNA-blandning. Att blanda U med T stör översättningen; förtydliga inmatningstypen.
Varning: Även en hög procentuell likhet i BLAST och liknande verktyg betyder inte nödvändigtvis biologiskt "identiska"; E-värdet (chanssannolikhet) och längden på den justerade regionen bör utvärderas tillsammans.

Djup: läser en BLAST-utgång korrekt

Att låta AI tolka ett BLAST-resultat sparar tid; Men ta inga beslut förrän du själv läst de tre numren. Den första är e-värdet (förväntat värde): det förväntade antalet gånger denna poäng kan inträffa av en slump; Ett mycket litet värde som 1e-50 betyder starkt, ett värde som 0,1 är nästan brus. Den andra är frågetäckning: vilken procentandel av frågesekvensen matchningen täcker; 98% likhet men endast 20% täckning betyder att en liten del av sekvensen är likartad och är missvisande. Den tredje är procent identitet. Utan dessa tre läser tillsammans bevisar en hög andel ensam ingenting.

Ett konkret exempel: en forskare sprängde ett fragment av en gen som han just hade sekvenserat; "99% matchar mänsklig BRCA2, samma gen," sa AI. När forskaren tittade på resultatet såg han att täckningen bara var 15 % - den matchande delen var bara en kort, upprepad region av tusentals baser av BRCA2. Den korrekta tolkningen var inte "samma gen" utan "har ett gemensamt återkommande motiv". Genom att läsa omfattningen förhindrades en fullständig felaktig identifiering.

BLAST kolumn

vad står det

fälla

E-värde

sannolikheten för tillfälligheter

Om den är hög kan matchen vara meningslös

Fråga täckning

Täckt frågefrekvens

Om den är låg är andelen missvisande

procent identitet

Matchande baspris

ensam är inte tillräckligt

bitscore

Normaliserad inriktningsstyrka

Tolkas efter längd

5) BLAST-utgångstolkningsmall:

Tolka följande BLAST-tabell, men bestäm dig inte: sammanfatta e-värdet, frågetäckningen och procentidentiteten för varje rad separat och ange vilka trösklar som måste uppfyllas innan du når en slutsats som "samma gen". Tabell: [klistra in].

Sammanfattningsvis

  • Sekvensoperationer (omvänt komplement, översättning, ORF, GC-förhållande) bör göras med koden som AI:n skriver och du kör, inte med AI:s textsvar.
  • Ram- och trådantaganden bör alltid anges uttryckligen; längdkontroll är det snabbaste felsökningsverktyget.
  • Hämta alltid sekvensen från pålitlig källa (NCBI, Ensembl); Låt inte AI memorera det.
  • Likhet och anpassning utvärderas av officiella verktyg och numeriska poäng, inte med ögat.

Applikationsuppgift

Ladda ner en kort kodningssekvens från en pålitlig källa (t.ex. NCBI). Med mall 1 och 2 ovan, fråga AI om en Biopython-kod, kör koden; Jämför längden och sekvensen av proteinet du producerade med den kända posten i databasen. Om du hittar en missmatchning, försök att åtgärda det genom att ändra ram-/trådantagandet och notera processen.

checklista

  • [ ] Jag fick sekvensen från en pålitlig källa, jag hade inte AI:n att memorera den.
  • [ ] Jag utförde arrayoperationer med körbar kod.
  • [ ] Jag har tydligt specificerat ram- och trådantagandet.
  • [ ] Jag jämförde protein/ORF-längden med referensen.
  • [ ] Jag utvärderade likheten med det officiella verktyget och numeriska poäng.
  • [ ] Jag kollade RNA/DNA och U/T-separation.