Wykład 5 Dopasowywanie lokalne
Dopasowanie par (sekwencji) Dopasowanie globalne C A T W A L K C A T W A L K C O W A R D C X X O X W X A X R X D X
Globalne dopasowanie Schemat punktowania (uproszczony) If przerwa (ruch nie po skosie) s= s-1 (liniowa kara) Else If a==b s=s+1 Else s=s+0 C A T W A L K 0 C 1 0 O 0 W 1 A 2 Wynik: C A T W A L K C O W A R D 1-1 0 1 1 0 0 R 2 D 2 2 (wynik sumowania:+2)
Szukanie optymalnej ścieżki 37 Programowanie dynamiczne Znajduje optymalną wartość funkcji celu dla całego zagadnienia rozwiązując podproblemy od najmniejszego do największego i zapisując optymalne wartości w tablicy. Pozwala to zastąpić wywołania rekurencyjne odwołaniami do odpowiednich komórek wspomnianej tablicy i gwarantuje, że każdy podproblem jest rozwiązywany tylko raz. wynik: 17165 km
Dopasowanie globalne (Needleman & Wunsch) Znajdowanie optymalnej ścieżki 2 najlepsze dopasowania: C A T W A L K C O W A R D 1-1 0 1 1 0 0 : +2 C A T W A L K C O - W A R D 1 0-1 1 1 0 0 : +2 - C A T W A L K - 0-1 -2-3 -4-5 -6-7 C -1 1 0-1 -2-3 -4-5 O -2 0 1 0-1 -2-3 -4 W -3-1 0 1 1 0-1 -2 A -4-2 0 0 1 2 1 0 R -5-3 -1 0 0 1 2 1 D -6-4 -2-1 0 0 1 2
Dopasowanie lokalne sekwencji: Smith & Waterman Schemat Punkty = 0; If (gap = = true) Else Punkty = Punkty - 1; If (znak1 = = znak2) Punkty = Punkty + 1; Else If (Punkty <0) Punkty = Punkty - 0.5; Punkty =0; Cofnij ścieżką od największej wartości aż do zera - C A T W A L K - 0 0 0 0 0 0 0 0 C 0 O 0 W 0 A 0 R 0 D 0
Smith & Waterman Global alignment: C A T W A L K C O W A R D or C A T W A L K C O - W A R D Local alignment: CATWALK COWARD - C A T W A L K - 0 0 0 0 0 0 0 0 C 0 1 0 0 0 0 0 0 O 0 0.5 0 0 0 0 0 W 0 0 0 0 1 0 0 0 A 0 0 1 0 0 2 1 0 R 0 0 0.5 0 1 1.5.5 D 0 0 0 0 0 0.5 1
Kara za przerwy (gap) - schemat 2 score = 0; If (gap = = true) If nowa Punkty=Punkty - duza_kara else (przedłużenie przerwy) Punkty = Punkty - mala_kara end Else If (znak1 = = znak2) Punkty = Punkty + 1; Else Punkty = Punkty - 0.5; If (Punkty <0) Punkty =0;
Różne kary za przerwy (gap penalty) A) wysoka, B) niska
Globalne vs. lokalne
Białka o niskiej złożoności sekwencji i niejednoznacznej strukturze Takie białka komplikują wyznaczanie homologii
Niska złożoność sekwencji Prion
E-wartość Problem: Jak duża jest szansa, że 2 sekwencje niehomologiczne zostaną przypadkowo wskazane jako dobrze dopasowane przez algorytm lokalnego dopasowania? Inaczej mówiąc: Jak wartościowa jest jakaś znaleziona sekwencja, wskazana w oparciu o algorytm dopasowania jako homologiczna do sekwencji zapytania (query seq.)? Np. Im dłuższa sekwencja zapytania tym łatwiej coś lokalnie trafić.
E-wartość Przyrównywana jest para sekwencji, o długościach odpowiednio m i n Zakłada się, że przeprowadzone byłoby dopasowanie lokalne segmentów pomiędzy parą sekwencji, bez przerw (nie ma delecji lub insercji) W granicy (dla dużych wartości m i n) oczekiwana liczba segmentów sekwencji E, które uzyskają wysoką punktację algorytmu dopasowania, równą co najmniej S, wynosi (wartość oczekiwana): E = K m n e -a S gdzie K i a są pewnymi parametrami, zależnymi od rozmiaru przeszukiwanej przestrzeni i algorytmu oceniania. Liczbę E nazywamy E-wartością dla punktacji (score) S.
BLAST - Basic Local Alignment Search Tool Altschul SF1, Gish W, Miller W, Myers EW, Lipman DJ. Basic local alignment search tool. J Mol Biol. 1990 Oct 5;215(3):403-10. NCBI Resources / Homology /BLAST http://blast.ncbi.nlm.nih.gov/blast.cgi http://www.ebi.ac.uk/tools/sss/ncbiblast/
BLAST BLAST bazuje na znajdowaniu bardzo podobnych krótkich segmentów. Nie stosuje programowania dynamicznego. Zwycięstwo szybkości nad dokładnością, uproszczenie algorytmu Smitha & Watermana. S&W zapewniał najlepsze rozwiązanie przy danym zużyciu czasu komputerowego BLAST NIE. Zysk: ok. 50 x
Jak to robi BLAST? Wykonuje dopasowanie lokalne parami - pomiędzy sekwencją zapytania i poszczególnymi sekwencjami ze zbioru przeszukiwanego Porządkuje malejąco sekwencje ze zbioru, wg. wartości dopasowania lokalnego S w stosunku do sekwencji zapytania Dla każdego S, uwzględniając długości sekwencji zapytania i wyniku, wylicza E-wartość. Jest to oczekiwana liczba segmentów sekwencji, które uzyskają wynik dopasowania większy lub równy S. Użytkownik bierze pod uwagę tylko takie sekwencje, dla których E<<1. Wtedy nie ma szansy, że jakikolwiek segment (choćby jeden) wcale nie jest homologiczny, a wyłącznie przypadkowo podobny.
*Wówczas jest więcej niż jedno dopasowanie lokalne i TotalScore=MaxScore+Inny_Score+ Sytuacja * może oznaczac pseudo-gen.
BLAST drzewo