Řezy v sekvenci genových informací

31. Řezy v sekvenci genových informací#

Budeme simulovat proces překladu genové informace (translation). Ten probíhá tak, že z určité úseky RNA vzniklé překopírováním DNA se po trojicích písmen (triplety, kodony) čte kód a každé trojici odpovídá nějaká aminokyselina, která se při syntéze stává součástí proteinu.

Uvažujme následující situaci. V proměnné text je genová informace myši Mus musculus z databáze NIH

Pro přepis do aminokyselin potřebujeme extrahovat trojice písmen, přičemž první trojice začíná dvacátým prvním písmenem (21) a poslední trojice končí 938-ým písmenem. Uložte tyto trojice do proměnné seznam_tripletu.

Jde tedy o to, sestavit seznam obsahující celkem 306 trojic, přičemž první trojice začíná dvacátým prvním písmenem, druhá trojice navazuje atd. atd. Řešení je více, například si můžete připravit počáteční pozice všech trojic do seznamu a poté tento seznam použít k sestavení trojic. Toto řešení je předpřipraveno a stačí dopsat potřebná čísla namísto otazníků.

Možná bude pohodlnější si řešení připravit někde bokem na vlastním textu a s vlastní počáteční a koncovou pozicí a pomocí příkazu print kontrolovat, jestli se kód chová tak, jak potřebujete.

Obrázek: https://upload.wikimedia.org/wikipedia/commons/3/37/Genetic_code.svg

text = "GGTCAGAAAAAGCCCTCTCCATGTCTACTCACGATACATCCCTGAAAACCACTGAGGAAGTGGCTTTTCAGATCATCTTGCTTTGCCAGTTTGGGGTTGGGACTTTTGCCAATGTATTTCTCTTTGTCTATAATTTCTCTCCAATCTCGACTGGTTCTAAACAGAGGCCCAGACAAGTGATTTTAAGACACATGGCTGTGGCCAATGCCTTAACTCTCTTCCTCACTATATTTCCAAACAACATGATGACTTTTGCTCCAATTATTCCTCAAACTGACCTCAAATGTAAATTAGAATTCTTCACTCGCCTCGTGGCAAGAAGCACAAACTTGTGTTCAACTTGTGTTCTGAGTATCCATCAGTTTGTCACACTTGTTCCTGTTAATTCAGGTAAAGGAATACTCAGAGCAAGTGTCACAAACATGGCAAGTTATTCTTGTTACAGTTGTTGGTTCTTCAGTGTCTTAAATAACATCTACATTCCAATTAAGGTCACTGGTCCACAGTTAACAGACAATAACAATAACTCTAAAAGCAAGTTGTTCTGTTCCACTTCTGATTTCAGTGTAGGCATTGTCTTCTTGAGGTTTGCCCATGATGCCACATTCATGAGCATCATGGTCTGGACCAGTGTCTCCATGGTACTTCTCCTCCATAGACATTGTCAGAGAATGCAGTACATATTCACTCTCAATCAGGACCCCAGGGGCCAAGCAGAGACCACAGCAACCCATACTATCCTGATGCTGGTAGTCACATTTGTTGGCTTTTATCTTCTAAGTCTTATTTGTATCATCTTTTACACCTATTTTATATATTCTCATCATTCCCTGAGGCATTGCAATGACATTTTGGTTTCGGGTTTCCCTACAATTTCTCCTTTACTGTTGACCTTCAGAGACCCTAAGGGTCCTTGTTCTGTGTTCTTCAACTGTTGAAAGCCAGAGTCACTAAAAATGCCAAACACAGAAGACAGCTTTGCTAATACCATTAAATACTTTATTCCATAAATATGTTTTTAAAAGCTTGTATGAACAAGGTATGGTGCTCACTGCTATACTTATAAAAGAGTAAGGTTATAATCACTTGTTGATATGAAAAGATTTCTGGTTGGAATCTGATTGAAACAGTGAGTTATTCACCACCCTCCATTCTCT"

seznam_pocatky_trojic = range(??,??,??)
seznam_tripletu = [text[i:i+??] for i in seznam_pocatky_trojic]