Overview

ŘEŠENÍ

Řešení úkolu, které budu dále popisovat jsem vygeneroval pomocí přiloženého skriptu "align.py" příkazem: $ python align.py > result.log

Zadáním úkolu bylo spočítat globální a lokální alignment pro DNA sequence. DNA sequence uložené v souberech H.fasta, I.fasta a J.fasta byly poskytnuté. Zbylé sequence jsem stáhl do souborů sequence h.fasta, r.fasta, m.fasta. Všechny soubory s DNA obsahují pouze 1 řádku s danou DNA sequencí. S takto naformátovanými soubory pracuje "align.py" skript.

TABULKA zdrojů pro stažené soubory: h.fasta: Homo sapiens insulin (INS), transcript variant 1, mRNA Downloaded from http://www.ncbi.nlm.nih.gov/nuccore/109148525?report=fasta r.fasta: Rattus norvegicus insulin 1 (Ins1), mRNA Downloaded from http://www.ncbi.nlm.nih.gov/nuccore/297374813?report=fasta m.fasta: Mus musculus insulin II (Ins2), transcript variant 1, mRNA Downloaded from http://www.ncbi.nlm.nih.gov/nuccore/297374793?report=fasta

Globální alignment byl spočítán pro dvě nastavení. S afinnímy parametry (gapopen = -2, gapext = -1) ve funkci "task2" a s parametry (gapopen = gapext = -2) ve funkci "task1ab". Naimplementoval jsem jak afinní variantu, tak neafinní verzi, přestože poprvé jsem vyřešil neaffiní variantu pomocí affiní s gapopen = gapext. Výhoda zvláštního řešení je především paměťová úspora zhruba o polovinu oproti affinímu algoritmu s dvěma tabulkama.

VÝSLEDKY

Tabulka níže ukazuje globální a za lomítkem lokální alignment pro dvojce sequencí. Z tabulky je jasně vidět, že sekvence mohou být globálně poměrně stejně NEpodobné, ale mohou obsahovat velmi dlouhé podobné podsekvence (sekvence {I,H} vs {J,H}).

====== Needleman-Wunsch and Smith-Watermann ====== glob/loc H.fasta I.fasta J.fasta H.fasta skip I.fasta -214/1292 skip J.fasta -206/727 1020/1042 skip

====== Afinne Needleman-Wunsch ====== glob h.fasta m.fasta r.fasta h.fasta skip m.fasta 229 skip r.fasta 215 352 skip

Pro alignmenty se podívejte do souboru "results.log". V sekci "====== Details ... =====" najdete pro každý pár sekvencí jejich skóre, začátek, konec v jednotlivých aligmentů v sequencích a také alignment. Alignment se nachází na dvou po sobě jdoucích řádkách, které jsou velmi dlouhé. Je proto vhodné nastavit textový editor, aby dlouhé řádky nezalamoval. (Ve Vimu příkazem :set nowrap). Mezera v alignmentu je naznačená pomlčkou. Poznámka: Indexy do sequencí, kde se nachází alignment jsou indexovány od 0!