Python programozás - példák
1. Véletlenszerű DNS/RNS szekvencia előállítása.
Állítsunk elő L hosszúságú RNS/DNS szekvenciát.
a. Első feladatként azonos valószínűséggel legyen jelen benne minden nukleotid (A-C-G-T).
b. Próbáljuk meg megoldani ezt a feladatot úgy, hogy az 1:1:1:1 aránytól eltérő nukelotidgyakoriságú szekvenciát is elő tudjuk állítani.
c. Mindezt egy függvénykét írjuk meg.
2. DNS szekvencia komplementerének megadása
Az előbb előállított véletlen szekvenciának készítsük el a komplementerét. Ne feledjük, hogy az új szekvencia is 5'-3' irányban legyen!
Oldjuk meg a feladatot függvényként is!
3. DNS szekvencia lefordítása fehérjévé
Fordítsunk le egy DNS szekvenciát fehérjévé! A genetikai kódot egy könyvtárként adjuk meg, amelynek kulcsai a tripletek.
Ennek megfelelően a szekvenciát hármassával kell végignézni.
dnacodon = {"TTT":"F", "TTC":"F", "TTA":"L", "TTG":"L", "TCT":"S", "TCC":"S", "TCA":"S", "TCG":"S", "TAT":"Y", "TAC":"Y", "TAA":"#", "TAG":"#", "TGT":"C", "TGC":"C", "TGA":"#", "TGG":"W", "CTT":"L", "CTC":"L", "CTA":"L", "CTG":"L", "CCT":"P", "CCC":"P", "CCA":"P", "CCG":"P", "CAT":"H", "CAC":"H", "CAA":"Q", "CAG":"Q", "CGT":"R", "CGC":"R", "CGA":"R", "CGG":"R", "ATT":"I", "ATC":"I", "ATA":"I", "ATG":"M", "ACT":"T", "ACC":"T", "ACA":"T", "ACG":"T", "AAT":"N", "AAC":"N", "AAA":"K", "AAG":"K", "AGT":"S", "AGC":"S", "AGA":"R", "AGG":"R", "GTT":"V", "GTC":"V", "GTA":"V", "GTG":"V", "GCT":"A", "GCC":"A", "GCA":"A", "GCG":"A", "GAT":"D", "GAC":"D", "GAA":"E", "GAG":"E", "GGT":"G", "GGC":"G", "GGA":"G", "GGG":"G"}
4. Mutációs telítés vizsgálata
Két kezdetben azonos szekvenciába rakosgassunk mutációkat. Mindig mindkettőbe egyet-egyet. Vigyázzunk, hogy a mutáció egy véletlenül kiválasztott elemet biztosan megváltoztasson!
Legyen a szekvenciánk hossza 50 és 500 mutációt helyezzünk el mindegyikben. 10 mutánciónként írjuk ki egy állományba az akutálisan már behelyezett mutációk számát és a két szekvencia távolságát. A távolság itt egyszerűen legyen azon pozíciók száma, amelyben különbözik a két szekvencia.
Amit megtanultátok alkalmazni a Matplotlib-et rajzoljátok ki az eredményt!
5. Mutációs telítés vizsgálata fehérjeszekvenciák összehasonlításával
Végezzük el az előző feladatot úgy, hogy a különbségnél a kódolt fehérjében való különbséget számoljuk ki. Vigyázzunk, hogy STOP kodonok ne kerüljenek egyik szekvenciába se (vegyük úgy, hogy ez kiszelektálódna).
6. DNS motívumok keresése
Keressünk motívumokat egy véletlenszerű DNS szekvenciában! a motivum egy rövidebb szekvencia, amiről meg kell állapítani, hogy előfordul-e, s ha igen hányszor a szekvenciában. Vigyázzunk, hogy átfedő előfordulásokat ne számoljunk. Például a CGCTATATATATATACAA szekvenciában a TATA csak háromszor van meg és nem többször.
7. Konszenzus szekvencia előállítása
a. Legyen N darab L hosszú szekvenciám. Ezeknek a konszenzus szekvenciája az amely minden pozíciójában az a betűt tartalmazza, amiből a legtöbb van. Egyenlőség esetén alkalmazzuk a többi egybetűs kódot.
b. A konszenzus lehet ennél megszorítóbb is. Most csak akkor fogadjunk el egy nukleotidot ott levőnek, ha a szekvenciák legalább 90%-ban jelen van. Máskülönben egy - (gap) rakjunk adott pozícióra.
c. Adjuk meg a hiány konszenzus szekvenciáját, azaz azt, hogy mely nukleotid nincs adott pozícióban.