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.