Wst ep do obliczeniowej biologii molekularnej (J. Tiuryn, wykĺad nr.3-4, 8 listopada 2005) Spis treści 2 Podobieństwo dwóch sekwencji 15 2.1 Globalne uliniowienie....................... 16 2.1.1 Metoda dynamicznego programowania......... 18 2.1.2 Odtwarzanie optymalnych uliniowań.......... 20 2.1.3 Odleg lość edycyjna.................... 23 2 Podobieństwo dwóch sekwencji Motywacje Odkrywanie podobieństw pomiedzy dwoma sekwencjami ma fundamentalne znaczenie w biologii molekularnej. Jest to zwiazane z obserwacja. że wiele podobnych sekwencji ma podobne cechy funkcjonalne lub strukturalne (odwrotna implikacja nie jest prawdziwa istnieja bia lka majace podobne cechy funkcjonalne i strukturalne, ktorych sekwencje aminokwasów sa zupe lnie niepodobne). Na przyk lad, znane sa geney wystepuj ace u różnych gatunków (np. muszka owocowa i cz lowiek) majace zadziwiajace podobieństwo. Bia lka kodowane przez te geny pe lnia podobne funkcje i maja podobny kszta lt 3D. Geny u różnych gatunków moga być podobne jeśli obydwa gatunki wywodza sie ze wspólnego korzenia. Wówczas geny praprzodka, w procesie ewolucji, mog ly sie przekszta lcić w podobne, ale nie identyczne, geny osobników różnych odga l ezień. Przyjmuje sie, że wieksze podobieństwo pomiedzy genami (genomami) różnych gatunków jest wskazówka na to, że te gatunki znajduja sie bliżej w drzewie ewolucji. Ponieważ genomowy DNA danego gatunku jest ca l a informacja (genetyczna) o tym gatunku, zatem ewolucja jest zwiazana ze zmianami DNA. Procesy zwiazane z tymi zmianami sa przedmiotem badań nowej dziedziny zwanej ewolucja molekularna. Najprostsze zjawiska prowadzace do zmian DNA to mutacje punktowe polegajace na zamianie jednego nukleotydu na inny, wypadnieciu badź wstawieniu nowego nukleotydu. Podobne zjawiska zachodza na poziomie RNA. Zjawiska te sa wywo lane b l edami w kopiowaniu badź zewnetrznymi warunkami (np. promieniowanie radioaktywne). W tej cześci wyk ladu bedziemy sie zajmować dwoma typami problemów. Dane mamy dwa ciagi S 1 i S 2, 15
globalne uliniowienie porównujemy ze soba S 1 i S 2 (możemy wstawiać spacje do obydwu ciagów) tak, aby zmaksymalizować ich podobieństwo. lokalne uliniowienie poszukujemy fragmentów ciagów S 1 i S 2 o maksymalnym podobieństwie (do badanych fragmentów możemy wstawiać spacje). Troche notacji dotyczacej s lów Niech Σ oznacza skończony zbiór. Przez Σ bedziemy oznaczać zbiór wszystkich skończonych ciagów (czyli s lów) o elementach z Σ. Zbiór Σ bedzie nazywany alfabetem a jego elementy literami. Szczególnym s lowem jest puste s lowo, oznaczane ε. Dla dowolnego s lowa S Σ, przez S bedziemy oznaczać d lugość tego s lowa, czyli liczbe liter w nim wystepuj acych. Dla s lów S 1, S 2 Σ, przez S 1 S 2 bedziemy oznaczać wynik dopisania S 2 z prawej strony do S 1. Dla 1 i S, przez S(i) bedziemy oznaczać i-ta litere s lowa S. 2.1 Globalne uliniowienie Pojecie globalnego uliniowienia zosta lo wprowadzone w 1970 przez Needleman a i Wunsch a. Opiera sie ono na pojeciu uliniowienia oraz funkcji podobieństwa. Dane dwa s lowa S 1, S 2 Σ. Bedziemy zak ladać, że jest specjalnym symbolem (spacja) nie należacym do Σ. 1 Globalne uliniowienie dla pary s lów (S 1, S 2 ) to każda taka para s lów (S # 1, S# 2 ) (Σ { }) (Σ { }), która spe lnia nastepuj ace trzy warunki: S 1 otrzymuje sie z S # 1 przez usuniecie wszystkich symboli. Podobnie S 2 otrzymuje sie z S # 2. S # 1 = S# 2. Dla każdego 1 i S # 1, symbole S# 1 (i) oraz S# 2 (i) nie s a jednocześnie równe. Liczba możliwych uliniowień dla danych s lów rośnie wyk ladniczo wraz z ich rozmiarem. Alfabety wystepuj ace w zastosowaniach w biologii to: Σ = {A, C, G, T } (dla porównywania sekwencji DNA); Σ = {A, C, G, U} (dla porównywania sekwencji RNA) oraz Σ = aminokwasy (dla porównywania bia lek). 1 Nazwy spacja b edziemy używać dla zaznaczenia, że chodzi o miejsce po wypadni etym nukleotydzie (lub aminokwasie). 16
Funkcja podobieństwa to pewna funkcja s : (Σ { }) (Σ { }) R majaca charakter kary/nagrody za odpowiadajace sobie symbole. W zastosowaniach zwykle przyjmuje sie, że dla x, y Σ { }, s(x, x) > 0, o ile x, s(x, y) = s(y, x), s(x, y) < s(x, x), o ile x y oraz x, s(x, ) < 0. Nie istnieje jedna funkcja podobieństwa dobra dla wszystkich zastosowań. W literaturze jest dużo prac na temat jak dobierać s dla porównywania bia lek lub DNA, dla różnych zastosowań. Przyk lad 2.1.1 Prostym przyk ladem funkcji podobieństwa jest s zdefiniowane nastepuj aco: s(x, ) = 2, dla x Σ oraz dla x, y Σ, { 1, gdy x = y s(x, y) = 1, gdy x y B edziemy tej funkcji używać w przyk ladach. Majac dana funkcje podobieństwa oraz uliniowienie (S # 1, S # 2 ) definiujemy podobieństwo tego uliniowienia jako n s(s # 1 (i), S# 2 (i)), i=1 gdzie n = S # 1 = S # 2. Uwaga: gdy n = 0, to powyższa suma przyjmuje wartość 0. Przyk lad 2.1.2 Weźmy, na przyk lad s lowa S 1 = CACT GT oraz S 2 = CAGGT G. Jedno możliwe uliniowienie to S # 1 = S 1 oraz S # 2 = S 2. Podobieństwo tego uliniowienia wynosi -2. Natomiast dla uliniowienia S # 1 = CAC T GT oraz S # 2 = CAGGT G dostajemy podobieństwo -1. 17
Globalne podobieństwo dwóch ciagów S 1, S 2 Σ to maksymalne podobieństwo uliniowienia, brane po wszystkich uliniowieniach: sim(s 1, S 2 ) = max{ n s(s # 1 (i), S # 2 (i)) (S # 1, S # 2 ) jest uliniowieniem dla i=1 (S 1, S 2 ) oraz n = S # 1 = S# 2 }. Globalne podobieństwo dwóch ciagów nazywa sie też wartościa optymalnego uliniowienia, a każde uliniowienie realizujace te wartość nazywa sie optymalnym uliniowieniem. W ogólności dana para s low może mieć wiecej niż jedno optymalne uliniowienie. 2.1.1 Metoda dynamicznego programowania Metoda ta pos luży nam do znalezienia szybkiego algorytmu obliczajecego wartość globalnego podobieństwa dla dowolnych dwóch s lów S 1, S 2. Zadanie to bedziemy rozwiazywać dla dowolnej funkcji podobieństwa s. G lówna idea tej metody polega na sukcesywnym obliczaniu poszukiwanej wartości, opierajac sie na wartościach obliczonych dla pewnych mniejszych podzadań. Te pośrednie wartości sa przechowywane w tablicy. Dla 0 i S 1, niech S 1 [1..i] oznacza pods lowo s lowa S 1 sk ladajace sie z pierwszych i liter, czyli S 1 (1)... S 1 (i). Podobnie dla S 2 [1..i]. Niech V (i, j) bedzie globalnym podobieństwem dla s lów S 1 [1..i] oraz S 2 [1..j]. Niech m = S 1, n = S 2. Jak obliczyć V (i, j)? Oczywiście mamy V (0, 0) = 0 oraz V (0, j) = j s(, S 2 (k)), k=1 V (i, 0) = i s(s 1 (k), ). k=1 Kluczowa obserwacja polega na zauważeniu, że aby policzyć V (i, j) dla i > 0 oraz j > 0, wystarczy znać wartości V (i 1, j), V (i 1, j 1) oraz V (i, j 1). Twierdzenie 2.1.1 Dla 0 < i m oraz 0 < j n, mamy: V (i, j) = max[v (i 1, j 1) + s(s 1 (i), S 2 (j)), V (i 1, j) + s(s 1 (i), ), V (i, j 1) + s(, S 2 (j))]. 18
Dowód: Niech V oznacza liczbe po prawej stronie równości w tezie twierdzenia. Niech (T 1, T 2 ) bedzie dowolnym uliniowieniem dla (S 1 [1..i], S 2 [1..j]). Jeśli ostatni symbol w T 1 i w T 2 jest litera z Σ, to podobieństwo tego uliniowienia jest nie wieksze od V (i 1, j 1) + s(s 1 (i), S 2 (j)) V. Jeśli, na przyk lad, ostatnim symbolem w T 1 jest, to ostatnim symbolem w T 2 musi być S 2 (j). Zatem podobieństwo tego uliniowienia jest nie wieksze od V (i, j 1) + s(, S 2 (j)) V. Podobnie postepujemy w przypadku, gdy ostatnim symbolem w T 2 jest. Tak wiec udowodniliśmy, że V (i, j) V. Na odwrót, jeśli weźmiemy optymalne uliniowienie (T 1, T 2 ) dla par kolejnych s lów S 1 [1..i 1], S 2 [1..j 1]; S 1 [1..i 1], S 2 [1..j]; S 1 [1..i], S 2 [1..j 1], to dopisujac z prawej strony: w pierszym przypadku: S 1 (i) do T 1 oraz S 2 (j) do T 2 ; w drugim przypadku: S 1 (i) do T 1 oraz do T 2 ; w trzecim przypadku: do T 1 oraz S 2 (j) do T 2, otrzymamy w każdym przypadku uliniowanie dla s lów (S 1 [1..i], S 2 [1..j]), a zatem wartość podobieństwa tego uliniowania jest nie wieksza od V (i, j). Zatem V, bed ace maksimum z tych wartości, jest nie wieksze od V (i, j). Poprawność poniższego algorytmu jest oparta na Twierdzeniu 2.1.1. 19
Wejście: s lowa S 1, S 2 Σ Wynik: globalne podobieństwo, sim(s 1, S 2 ) m := S 1 ; n := S 2 ; V (0, 0) := 0; for i = 1 to m do V (i, 0) := V (i 1, 0) + s(s 1 (i), ); for j = 1 to n do V (0, j) := V (0, j 1) + s(, S 2 (j)); for i = 1 to m do for j = 1 to n do V (i, j) := max[v (i 1, j 1)+s(S 1 (i), S 2 (j)), V (i 1, j)+s(s 1 (i), ), V (i, j 1) + s(, S 2 (j))]; return V (m, n); Algorytm 2.1.1: Oliczanie globalnego podobieństwa. Obliczmy czas dzia lania Algorytmu 2.1.1. Pierwsza petla for wykonywuje m 1 kroków. Druga petla wykanuje n 1 kroków. Natomiast trzecia petla (ze wzgledu na zagnieżdżenie petli) wykonuje (m 1)(n 1) kroków. Zatem l acznie program wykona O(mn) kroków. Pamieć użyta przez ten program jest O(mn), bo tyle miejsca zajmuje tablica V. Można latwo poprawić użycie pamieci do O(min(m, n)), zapamietuj ac tylko ca ly porzedni wiersz (badź kolumne) w celu obliczenia nastepnego nowego wiersza (kolumny). alg.4.1 2.1.2 Odtwarzanie optymalnych uliniowień Aby odtworzyć optymalne rozwiazanie, w miejscu (i, j) w tablicy V wystarczy umieścić informacje o miejscach, z których pochodzi obliczane maksimum. Z Twierdzenia 2.1.1 wynika, że V (i, j) jest równe maksimum z nastepuj acych trzech wartości: V (i 1, j 1) + s(s 1 (i), S 2 (j)), V (i 1, j) + s(s 1 (i), ), V (i, j 1) + s(, S 2 (j)). Jeśli V (i, j) jest równe pierwszej z powyższych trzech wartości, to wpisujemy w miejscu (i, j) symbol, 20
drugiej z powyższych trzech wartości, to wpisujemy w miejscu (i, j) symbol, trzeciej z powyższych trzech wartości, to wpisujemy w miejscu (i, j) symbol. Oczywiście może sie tak zdażyć, że w tablicy w jednym miejscu znajda sie dwa (a nawet trzy) symbole. Dodatkowo w pozycjach (i, 0), dla i > 0, wpisujemy symbol. Natomiast w pozycjach (0, j), dla j > 0, wpisujemy. Po wpisaniu strza lek we wszystkie miejsca tablicy optymalne uliniowienie otrzymuje sie przez wybranie dowolnej drogi z miejsca (m, n) do miejsca (0, 0). Przy czym przejście z miejsca (i, j) do (i, j ) jest możliwe tylko wtedy, gdy w miejscu (i, j) znajduje sie strza lka pokazujaca na miejsce (i, j ). Na przyk lad, gdy pozycja (i, j) zawiera strza lki oraz, to możemy przejść z (i, j) tylko do (i 1, j 1) lub do (i 1, j). Na razie za lóżmy, że taka droga istnieje. Majac wybrana taka droge D, 2 uliniowienie odpowiadajace D konstruujemy od prawej do lewej w nastepuj acy sposób. Na poczatku mamy dwa puste ciagi (tworzace sufiksy konstruowanego uliniowienia) oraz aktualna pozycja (najbardziej prawa pozycja jeszcze nie rozpatrywana) w D jest (m, n). W ogólności za lóżmy, że T 1, T 2 sa już skonstruowanymi sufiksami uliniowienia oraz (i, j) jest najbardziej prawa pozycja w D dotad nie rozpatrywana. Jeśli i = 0 = j, to T 1, T 2 jest poszukiwanym uliniowieniem. W przeciwnym przypadku, jeśli nastepn a pozycja w D jest (i, j ) to mamy nastepuj ace możliwości: i = i 1 oraz j = j 1. Wówczas do T 1 dopisujemy z lewej strony S 1 (i), a do T 2 dopisujemy z lewej strony S 2 (j). i = i 1 oraz j = j. Wówczas do T 1 dopisujemy z lewej strony S 1 (i), a do T 2 dopisujemy z lewej strony. i = i oraz j = j 1. Wówczas do T 1 dopisujemy z lewej strony, a do T 2 dopisujemy z lewej strony S 2 (j). Otrzymujemy w ten sposób nowa pare s lów, a nastepn a pozycja, która bedziemy rozważać w nastepnym kroku jest (i, j ). Twierdzenie 2.1.2 Jeśli D jest droga od (m, n) do (0, 0) zbudowana przy użyciu strza lek, to uliniowienie wyznaczone przez te droge jest optymalne. 2 Czyli taki ciag par (i, j) od (m, n) do (0, 0), że jeśli (i, j ) stoi bezpośrednio za (i, j) to pozycja (i, j) w tablicy V musi zawierać strza lke skierowana w strone (i, j ). 21
Dowód: Niech (T 1, T 2 ) bedzie uliniowieniem wyznaczonym przez D. Dowodzimy nastepuj ac a, nieco ogólniejsza w lasność. Dla każdego 0 k D, jeśli para (i, j) stoi na k-tym miejscu w D, to wartość podobieństwa dla uliniowienia (T 1 [1..k], T 2 [1..k]) jest równa V (i, j). Oczywista indukcje ze wzgledu na k pozostawiamy czytelnikowi. Zatem wartość podobieństwa dla (T 1, T 2 ) wynosi V (m, n), czyli uliniowienie to jest optymalne. Zauważmy, że z powyższego twierdzenia nie wynika czy taka droga od (m, n) do (0, 0) musi istnieć. Również nie jest oczywiste czy każde optymalne uliniowienie dla S 1, S 2 możemy otrzymać ta metoda. Twierdzenie 2.1.3 Dla każdego optymalnego uliniowienia (S # 1, S # 2 ) dla s lów (S 1, S 2 ) istnieje droga D od (m, n) do (0, 0), wyznaczona przy pomocy w/w regu l i taka, że (S # 1, S# 2 ) jest wyznaczone przez D. Przyk lad 2.1.3 Znajdziemy wszystkie optymalne uliniowienia dla s lów S 1 = AT T GC oraz S 2 = AT GC. Używamy funkcji podobieństwa z Przykladu 2.1.1. A T G C 0-2 -4-6 -8 A -2 1-1 -3-5 T -4-1 2 0-2 T -6-3 0 1-1 G -8-5 -2 1 0 C -10-7 -4-1 2 Mamy wi ec dwa optymalne uliniowienia o wartości 2: S # 1 S # 2 S # 1 S # 2 = AT T GC = A T GC, oraz = AT T GC = AT GC Zadanie 2.1.1 Wyznaczyć wszystkie optymalne uliniowienia dla s lów z Przyk ladu 2.1.2. 22
Zadanie 2.1.2 Obliczyć globalne podobieństwo s lów S 1 = CAGT AT T CGCA, S 2 = AAGT T AGCAG dla funkcji podobieństwa s(x, ) = 1, { 1 gdy x = y, s(x, y) = 1 gdy x y. Zadanie 2.1.3 Udowodnić Twierdzenie 2.1.3. Zadanie 2.1.4 (Hirschberg) Algorytm znajdujacy optymalne uliniowienie, opisany w notatkach używa pamieci O(mn). Znaleźć algorytm znajdujacy optymalne uliniowienie, dzia lajacy w czasie O(mn) i w pamieci liniowej od rozmiaru s lów. 2.1.3 Odleg lość edycyjna Pojecie odleg lości edycyjnej pomiedzy s lowami zosta lo zaproponowane przez Levensteina w 1966r. Pojecie to jest oparte na minimalnej liczbie mutacji, które przeprowadzaja jedno s lowo w drugie. Rozważamy cztery typy operacji na s lowach: Wstawienie litery (I); Usuni ecie litery (D); Zamiana liter (R); Pozostawienie litery nie zmienionej (M). Niech T {D, I, M, R} bedzie danym ciagiem operacji na s lowach oraz niech S 1, S 2 Σ bed a dowolnymi s lowami. Zdefiniujemy relacje T : S 1 S 2 (czytamy: T przekszta lca S 1 w S 2 ) przez indukcje ze wzgledu na T. ε : S 1 S 2 S 1 = S 2 = ε; IT : S 1 S 2 istnieja x Σ oraz S 2 Σ takie, że S 2 = xs 2 oraz T : S 1 S 2; DT : S 1 S 2 istnieja x Σ oraz S 1 Σ takie, że S 1 = xs 1 oraz T : S 1 S 2 ; RT : S 1 S 2 istnieja x, y Σ oraz S 1, S 2 Σ takie, że S 1 = xs 1, S 2 = ys 2 oraz T : S 1 S 2 ; MT : S 1 S 2 istnieja x Σ oraz S 1, S 2 Σ takie, że S 1 = xs 1, S 2 = xs 2 oraz T : S 1 S 2. 23
Niech T oznacza liczbe wystapień symboli I, D, R w T (nie liczymy wystapiń litery M). Odleg lość edycyjna pomiedzy dwoma s lowami S 1, S 2 Σ definiuje sie nastepuj aco: δ(s 1, S 2 ) = min{ T T : S 1 S 2 }. Twierdzenie 2.1.4 Dla dowolnych S 1, S 2, S 3 Σ zachodzi, (i) δ(s 1, S 2 ) 0, oraz δ(s 1, S 2 ) = 0 S 1 = S 2. (ii) δ(s 1, S 2 ) = δ(s 2, S 1 ). (iii) δ(s 1, S 2 ) δ(s 1, S 3 ) + δ(s 3, S 2 ). Każda funkcja δ : Σ Σ R spe lniajaca warunki (i)-(iii) Twierdzenia 2.1.4 nazywa sie odleg lościa. Zadanie 2.1.5 Znaleźć algorytm, który oblicza δ(s 1, S 2 ), dla dowolnych s lów S 1, S 2 Σ w czasie O( S 1 S 2 ). Zadanie 2.1.6 Określić funkcj e podobieństwa s : (Σ { }) (Σ { }) R, tak aby dla dowolnych S 1, S 2 Σ zachodzi lo δ(s 1, S 2 ) = sim(s 1, S 2 ). Zadanie 2.1.7 Uogólnić definicje odleg lości edycyjnej, tak aby mia la nastepuj ac a w lasność. Dla dowolnej funkcji podobieństwa s : (Σ { }) (Σ { }) R istnieje odleg lość edycyjna ˆδ taka, że dla dowolnych S 1, S 2 Σ, ˆδ(S 1, S 2 ) = sim(s 1, S 2 ). (Uwaga: uogólnienie powinno polegać na tym, że cena operacji I oraz D jest taka sama, ale może zależeć od litery wstawianej/usuwanej. Natomiast cena R może zależeć od liter zamienianych.) Zadanie 2.1.8 Niech s bedzie funkcja podobieństwa z Przyk ladu 2.1.1. Niech n 1 bedzie dowolna liczba naturalna i niech Σ n oznacza zbiór wszystkich s lów d lugości n. Definiujemy funkcje d : Σ n Σ n R nastepuj acym wzorem d(s 1, S 2 ) = sim(s 1, S 1 ) + sim(s 2, S 2 ) 2sim(S 1, S 2 ). Czy d jest odleg lościa? 24