Laboratorium nr.3 Algorytm przyrównania globalnego (Algorytm Needleman’a-Wunsch’a) – przyrównuje sekwencje na całej długości; wykorzystuje tak dużo znaków, jak to jest tylko możliwe.
Dopasowywanie sekwencji (ang. sequence alignment) Dopasowywanie (przyrównywanie) sekwencji polega na porównywaniu dwóch (z j. ang. pair-wise alignment) lub wielu sekwencji poprzez poszukiwanie serii pojedynczych znaków (lub wzorców znakowych), które występują w tej samej kolejności w sekwencjach; – najprostszy przypadek: zapisanie dwóch sekwencji obok siebie – identyczne lub podobne znaki są umieszczane w tej samej kolumnie - znaki, których nie można dopasować są ustawiane w jednej kolumnie i oznaczane jako brak dopasowania lub ustawiane naprzeciw przerwy (z j.ang. gap) - w przypadku optymalnego dopasowania, przerwy i braki dopasowania są tak ustawiane aby liczba znaków identycznych lub podobnych była możliwie największa – sekwencje, które bez problemu potrafimy w powyższy sposób ustawić określane są mianem podobnych
W oparciu o algorytm Needlemana-Wunscha przeprowadzimy przyrównanie dwóch sekwencji: GATACTA oraz GATTACCA TWORZYMY MACIERZ Wypełniamy 1 wiersz i 1 kolumnę: -1 pkt za każde przesunięcie w lewo -1 pkt za każde przesunięcie w dół
W oparciu o algorytm Needlemana-Wunscha przeprowadzimy przyrównanie dwóch sekwencji: GATACTA oraz GATTACCA Zasady wypełniania komórek: komórka F(1,1) przesunięcie w prawo -1 pkt -1 – 1 = -2 przesunięcie w dół -1 pkt -1 – 1 = -2 przesunięcie po przekątnej: litery w komórce identyczne G-G więc +1pkt 0 + 1 = 1 Wybierz max wartość wstaw w komórkę F(1,1)
W oparciu o algorytm Needlemana-Wunscha przeprowadzimy przyrównanie dwóch sekwencji: GATACTA oraz GATTACCA Zasady wypełniania komórek: komórka F(1,2) przesunięcie w prawo -1pkt 1 – 1 = 0 przesunięcie w dół -1pkt -2 – 1 = -3 przesunięcie po przekątnej litery w komórkach różne A-G więc -1pkt -1 - 1 = -2 Wybierz max wartość wstaw w komórkę F(1,2) itd……
W oparciu o algorytm Needlemana-Wunscha przeprowadzimy przyrównanie dwóch sekwencji: GATACTA oraz GATTACCA Zasady wypełniania komórek: komórka F(2,4) przesunięcie w prawo -1pkt 1 – 1 = 0 przesunięcie w dół -1pkt -2 – 1 = -3 przesunięcie po przekątnej: litery w komórkach identyczne A - A +1pkt -1+ 1 = 0 Wybierz max wartość wstaw w komórkę F(2,4)
PODSUMOWANIE wypełniania macierzy: F(i,j)- wartość w i,j-tej komórce d- kara za lukę (przesunięcie w dół lub w prawo równa -1) S(xi,yi)= nagroda np. +1 gdy znaki w komórkach xi i yi identyczne lub kara -1 gdy znaki w komórkach xi i yi różne
Konstrukcja dopasowania: W oparciu o algorytm Needlemana-Wunscha przeprowadzimy przyrównanie dwóch sekwencji: GATACTA oraz GATTACCA Konstrukcja dopasowania: od prawego dolnego rogu macierzy poruszamy się w kierunku lewego górnego rogu macierzy po najkrótszej ścieżce, która daje nam max wartość sumy z liczonych komórek.
Teraz szukamy ścieżki/-ek najlepszego dopasowania sekwencji +1-1+1+1+1-1+1+1=4
Zadanie Korzystając z algorytmu przyrównania globalnego Needleman’a-Wunsch’a porównaj dwie sekwencje białek: TTAAG oraz TTTCT dla macierzy podobieństwa s (patrz treści powyżej), wynik wyświetl na ekranie (pamiętaj w miejsce przerw wstaw znak „-”) Uwaga: Zadanie można zrealizować wiele sposobów np. zapisać sekwencje jako listy: dane1 = [' TTAAG '], dane2 = [' TTTCT '] zapisać sekwencje w plikach tekstowych itp. zapisać macierz podobieństwa s jako słownik porównując po 2 litery {'AA': 1, 'AG': -1, ‘AC': -1, ……}, lub zagnieżdżając słownik w słowniku {'A': {'A': 1, 'G': -1, 'C': -1, 'T': -1},……., korzystając z modułu numpy, tworząc macierz w pliku A T G C A 1 -1 -1 -1 T -1 1 -1 -1 G -1 -1 1 -1 C -1 -1 -1 1 itd Warto zajrzeć na: http://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm