2 Podobieństwo dwóch sekwencji. 2.2 Lokalne uliniowienie Przerwy w uliniowieniach Dowolna wartość kary za przerwe

Podobne dokumenty
2 Podobieństwo dwóch sekwencji

Podobieństwo dwóch sekwencji. Motywacje

warunek (tzn. macierz M musi być stochastyczna): dla każdego k Q mamy

Wyk lad 3 Wyznaczniki

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

2 Uliniowienie wielu sekwencji Miara typu suma par (SP) Uliniowienie gwiazdowe dla SP... 24

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Wyk lad 11 1 Wektory i wartości w lasne

Wyk lad 2 Podgrupa grupy

Wyk lad 7 Baza i wymiar przestrzeni liniowej

P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

Optymalizacja Rozpoczniemy od przedstawienia kilku charakterystycznych przyk ladów zadań optymalizacji liniowej.

ep do obliczeniowej biologii molekularnej (J. Tiuryn, wykĺady nr. 12 i 13; 25 stycznia 2006) 8 Konstrukcja drzew filogenetycznych

Wyk lad 1 Podstawowe struktury algebraiczne

Dyskretne modele populacji

celu przyjmijmy: min x 0 = n t Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt, czyli n

Wyk lad 6 Podprzestrzenie przestrzeni liniowych

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

Statystyka w analizie i planowaniu eksperymentu

Wyk lad 9 Przekszta lcenia liniowe i ich zastosowania

Statystyka w analizie i planowaniu eksperymentu

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

WYK LAD 5: GEOMETRIA ANALITYCZNA W R 3, PROSTA I P LASZCZYZNA W PRZESTRZENI R 3

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Wyk lad 4 Warstwy, dzielniki normalne

Dyskretne modele populacji

3 Przeszukiwanie baz danych

Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Statystyka w analizie i planowaniu eksperymentu

Normy wektorów i macierzy

SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:

Statystyka w analizie i planowaniu eksperymentu

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Wyk lad 3 Wielomiany i u lamki proste

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

Indeks odwzorowania zmiennej zespolonej wzgl. krzywej zamknietej

Wyk lad 14 Formy kwadratowe I

Statystyka w analizie i planowaniu eksperymentu

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 3 Tablice trwania życia 2

FUNKCJE LICZBOWE. x 1

Wyk lad 14 Cia la i ich w lasności

Niesimpleksowe metody rozwia zywania zadań PL. Seminarium Szkoleniowe Edyta Mrówka

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Zastosowanie Robotów. Ćwiczenie 6. Mariusz Janusz-Bielecki. laboratorium

Schemat programowania dynamicznego (ang. dynamic programming)

Układy równań i nierówności liniowych

Wyk lad 5 Grupa ilorazowa, iloczyn prosty, homomorfizm

Zadania o liczbach zespolonych

Niezmienniki i pó lniezmienniki w zadaniach

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

Programowanie celowe #1

Wykład z równań różnicowych

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Wzory Viete a i ich zastosowanie do uk ladów równań wielomianów symetrycznych dwóch i trzech zmiennych

Aproksymacja kraw. Od wielu lokalnych cech (edge elements) do spójnej, jednowymiarowej. epnej aproksymacji

Wyk lad 4. Grafy skierowane

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

MiNI Akademia Matematyki na Politechnice Warszawskiej

13 Zastosowania Lematu Szemerédiego

Algorytmy i struktury danych.

Architektura systemów komputerowych

1 Działania na zbiorach

P (x, y) + Q(x, y)y = 0. g lym w obszrze G R n+1. Funkcje. zania uk ladu (1) o wykresie przebiegaja

danych jest Swiss-Prot. Przeszukiwanie baz danych jest jedna

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Jak matematyka pomaga w wyszukiwanie wzorca

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Jeden przyk lad... czyli dlaczego warto wybrać MIESI.

Geometria odwzorowań inżynierskich rzut środkowy 06A

Wyk lad 3. Natalia Nehrebecka Dariusz Szymański. 13 kwietnia, 2010

Dwa równania kwadratowe z częścią całkowitą

Strategia "dziel i zwyciężaj"

KOMBINATORYKA 1 WYK LAD 9 Zasada szufladkowa i jej uogólnienia

ANALIZA II 15 marca 2014 Semestr letni. Ćwiczenie 1. Czy dan a funkcjȩ da siȩ dookreślić w punkcie (0, 0) tak, żeby otrzymana funkcja by la ci ag la?

Ekonomia matematyczna i dynamiczna optymalizacja

Statystyka w analizie i planowaniu eksperymentu

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:

Algorytmy w teorii liczb

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

Rozdzia l 3. Laboratorium 3. danych zawierajac

WNIOSKOWANIE W MODELU REGRESJI LINIOWEJ

Procesy Stochastyczne - Zestaw 1

ZAGADNIENIE TRANSPORTOWE

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Uproszczony dowod twierdzenia Fredricksona-Maiorany

Rozdzia l 10. Najważniejsze normalne logiki modalne

Statystyka w analizie i planowaniu eksperymentu lista nr 7

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Algorytmy i Struktury Danych, 2. ćwiczenia

Sterowalność liniowych uk ladów sterowania

Nierówność Krafta-McMillana, Kodowanie Huffmana

Geometria odwzorowań inżynierskich. 1. Perspektywa odbić w zwierciad lach p laskich 06F

Transkrypt:

Wst ep do obliczeniowej biologii molekularnej (J. Tiuryn, wykĺad nr.5, 22 listopada 2005) Spis treści 2 Podobieństwo dwóch sekwencji 25 2.2 Lokalne uliniowienie....................... 25 2.3 Przerwy w uliniowieniach..................... 27 2.3.1 Dowolna wartość kary za przerwe............ 29 2.3.2 Afiniczna funkcja kary za przerwe............ 31 2.4 Porównywanie podobnych sekwencji............... 32 2 Podobieństwo dwóch sekwencji 2.2 Lokalne uliniowienie W wielu zastosowaniach w biologii mamy do czynienia z sytuacja, gdy sekwencje S 1 i S 2 nie sa podobne ale interesuje nas znalezienie par fragmentów (po jenym z S 1 i S 2 ) wykazujacych duże podobieństwo. Chcemy znaleźć fragmenty sekwencji S 1 i S 2 tak, aby podobieństwo pomiedzy nimi by lo maksymalne, spośród wszystkich innych par fragmentów. Problem poszukiwania takich fragmentów nazywa sie problemem lokalnego uliniowienia. Typowe zastosowanie globalnego uliniowienia to porównywanie bia lek (jako ciagów aminokwasów) z tej samej rodziny bia lek (np. globiny), chociaż niekoniecznie pochodzacych z organizmów tego samego gatunku. Lokalne uliniowienie jest bardziej znaczace dla porównywania bia lek z różnych rodzin, lub porównywania dużych fragmentów DNA pochodzacych z różnych organizmów. Lokalne uliniowienia, w przypadku bia lek, pozwala odkryć powtarzajace sie ważne fragmenty (motywy, domeny) majace istotny wp lyw na funkcjonalność bia lka. 1 Biolodzy uważaja, że badanie lokalnego uliniowienia czesto daje biologicznie bardziej znaczace wyniki niż badanie globalnego uliniowienia. Za lóżmy, że mamy pewna ustalona funkcje podobieństwa s : (Σ { }) (Σ { }) R. Niech S 1, S 2 Σ. Lokalne uliniowienie dla S 1, S 2 jest to każde globalne uliniowienia dla pewnych pods lów s lów S 1, S 2. 1 Fragmenty te sa czesto poprzedzielane d lugimi obszarami nie wykazujacymi żadnego podobieństwa, których rola biologiczna nie jest tak istotna, np. fragmenty zwane petlami, l acz ace ze soba domeny. 25

Przyk lad 2.2.1 Niech S 1 = pqraxabcstvq oraz S 2 = xyaxbacsll. Podkreślone fragmenty oznaczaja wybrane pods lowa. wówczas axab cs ax bacs jest lokalnym uliniowieniem dla S 1, S 2. Optymalne lokalne uliniowienie dla s lów S 1, S 2, to taka para pods lów: T 1 w S 1 oraz T 2 w S 2, że sim(t 1, T 2 ) jest wartościa maksymalna spośród wszystkich wartości sim(t 1, T 2 ), gdzie T 1 przebiega wszystkie pods lowa s lowa S 1, T 2 przebiega wszystkie pods lowa s lowa S 2. Bedziemy sie zajmować problemem znajdowania optymalnego lokalnego uliniowienia (oraz wyznaczania jego wartości). Zauważmy, że dla każdego s lowa S, liczba pods lów w S jest O( S 2 ). Zatem liczba możliwych par pods lów dla S 1 i S 2 jest O( S 1 2 S 2 2 ). Zatem, na pierwszy rzut oka może sie wydawać, że problem lokalnego uliniowienia jest algorytmicznie trudniejszy od problemu globalnego uliniowienia. Zauważmy też, że ponieważ zawsze możemy wziać T 1 = T 2 = ε, to wartść optymalnego uliniowienia jest liczba nieujemna. Po trzecie zauważmy, że o ile optymalne globalne uliniowienia można wyrazić używajac pojecia odleg lości edycyjnej (zamiast podobieństwa), to dla optymalnego lokalnego uliniowienia trudniej jst podać taka definicje, opierajac sie na pojeciu odleg lości (bo zawsze wybierajac równe pods lowa, np. ε, otrzymujemy odleg lość 0). Zastosujemy metode dynamicznego programowania, która pozwoli szybko obliczać (i konstruować) optymalne lokalne uliniowienia. Oczywiście potrzebne sa modyfikacje metody dla globalnego uliniowienia. Niech S 1 = m, S 2 = n. Dla 0 i m oraz 0 j n, niech v(i, j) bedzie wartościa maksymalnego globalnego uliniowienia pomiedzy pewnym sufiksem s lowa S 1 [1..i] oraz pewnym sufiksem s lowa S 2 [1..j]. Oczywiście mamy v(i, 0) = v(0, j) = 0, dla i m, j n (bo spacje wnosza wartości ujemne). Twierdzenie 2.2.1 Wartość optymalnego lokalnego uliniowienia dla S 1 i S 2 jest równa max{v(i, j) 0 i m, 0 j n}, gdzie v(i, j) jest zdefiniownane wyżej. Dowód: Niech v bedzie wartościa optymalnego lokalnego uliniowienia dla S 1, S 2. Oczywiście v v(i, j) zachodzi dla wszystkich i, j (bo sufiksy w S 1 [1..i] i w S 2 [1..j] wyznaczaja pods lowa w S 1 i S 2 ). Z drugiej strony, jeśli weźmiemy optymalne lokalne uliniowienie T 1, T 2 dla s lów S 1 i S 2, to T 1 można 26

przedstawić jako sufiks S 1 [1..i] (dla pewnego i) oraz podobnie dla T 2. To dowodzi równości v = max{v(i, j) i m, j n}. Poniższe twierdzenie daje sposób szybkiego liczenia v(i, j). Twierdzenie 2.2.2 Dla 0 < i m oraz 0 < j n mamy v(i, j) = max[0, 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))]. Dowód: Jest podobny do dowodu Twierdzenia 2.1.1. Twierdzenie 2.2.3 Metoda dynamicznego programowania oparta na Twierdzeniach 2.2.1 oraz 2.2.2 wyznacza wartość optymalnego lokalnego uliniowienia dla s lów S 1, S 2 w czasie O( S 1 S 2 ) oraz w pami eci O( S 1 S 2 ). Dowód: Wynika natychmiast z Twierdzeń 2.2.1 oraz 2.2.2. Zadanie 2.2.1 Dopracować szczegó ly pozwalajace odtworzyć optymalne lokalne uliniowienie dla dowolnej pary s lów S 1, S 2. Zadanie 2.2.2 Czy lokalne uliniowienie z Przyk ladu 2.2.1 jest optymalne dla funkcji s z Przykladu 2.1.1? Zadanie 2.2.3 Znaleźć optymalne lokalne uliniowienie dla s lów S 1 = pawheae oraz S 2 = heagawghee, przy funkcji podobieństwa z Przyk ladu 2.1.1. 2.3 Przerwy w uliniowieniach Przerwa w s lowie S (Σ { }) nazwiemy każde niepuste pods lowo T { } s lowa S, o maksymalnej d lugości. Pojecie przerwy w sekwencji zosta lo wprowadzone jako wynik istnienia pewnych procesów biologicznych prowadzacych do wstawień/usunieć d luższych fragmentów (DNA): 27

Zwyk le mutacje czesto maja efekt wstawienia badź usuniecia d luższego fragmentu. Translokacje DNA pomi edzy chromosomami. Poślizg DNA (DNA slippage) w trakcie replikacji (pewne fragmenty sa powtarzane w kopii, gdy mechanizm replikacyjny zgubi aktualna pozycje replikacji na matrycy). Tzw. skaczace geny powoduja wstawienia DNA. Wstawienia DNA moga być też wynikiem dzia lania retrowirusów. Tak wiec, zaistnienie przerwy (lub wstawienia d luższego fragmentu) w wyniku jednostkowego procesu powinno być inaczej mierzone dla obliczania podobieństwa niż zwyk le dodawanie kar za każda spacje z osobna. Pojecie przerwy znajduje też oczywiste zastosowania gdy chcemy porównać genomowe DNA z komplementarnym DNA (powsta lym z genomowego DNA przez usuniecie intronów). W takiej sytuacji chcemy mieć ma le kary za przerwy, dość duże kary za niedopasowane symbole i dodatnie wartości za pasujace symbole. Ogólne sformu lowanie zadania wyglada nastepuj aco. Niech w : N + R bedzie funkcja kary za przerwy, 2 tzn. w(k) jest kara za przerwe d lugości k. Niech s : (Σ { }) (Σ { }) R bedzie funkcja podobieństwa. Ponieważ spacje teraz stanowia cześć przerw, to oczywiście przyjmujemy, że s(x, ) = s(, x) = 0. Niech S 1, S 2 Σ. Uliniowienie (S # 1, S# 2 ) dla (S 1, S 2 ) definiujemy tak samo jak w Sekcji 2.1. Inaczej natomiast liczymy wartość podobieństwa dla takiego uliniowienia. Jest to liczba n m s(s # 1 (i), S# 2 (i)) + w(k j ), i=1 gdzie n = S # 1 = S # 2, m jest liczba przerw w S # 1 i w S # 2 oraz j-ta przerwa ma d lugość k j. Przyk lad 2.3.1 Przyjmijmy s(x, x) = 1 oraz s(x, y) = 1 dla x, y Σ, x y. Natomiast funkcja kary za przerwy jest sta la i przyjmuje wartość w(k) = 5, dla k N +. Wówczas uliniowienie qq abab rst qsrrra brr ma wartość podobieństwa 12 (bo mamy cztery przerwy w powyższym uliniowieniu.) j=1 2 Przez N + oznaczamy zbiór liczb naturalnych dodatnich. 28

2.3.1 Dowolna wartość kary za przerw e Najpierw zajmiemy si e algorytmem wyznaczania optymalnego globalnego uliniowienia, gdy nie mamy żadnych dodatkowych za lożeń o funkcji w. Zauważmy, że w ogólności, przy za lożeniu, że co najmniej jedno ze s lów S 1, S 2 jest niepuste, mamy trzy rodzaje uliniowień S # 1, S # 2 : 1. S # 1 kończy sie przerwa. 2. S # 2 kończy sie przerwa. 3. S # 1 i S # 2 kończa sie litera. Uliniowienie z Przyk ladu 2.3.1 jest rodzaju 2. Niech m = S 1 oraz n = S 2. Niech 0 i m, 0 j n. Wprowadzimy nastepuj ace oznaczenia: E(i, j) oznacza maksymalna wartościa uliniowienia rodzaju 1 dla S 1 [1..i] oraz S 2 [1..j], wówczas musi być j > 0. F (i, j) oznacza maksymalna wartościa uliniowienia rodzaju 2 dla S 1 [1..i] oraz S 2 [1..j], wówczas musi być i > 0. G(i, j) oznacza maksymalna wartościa uliniowienia rodzaju 3 dla S 1 [1..i] oraz S 2 [1..j], wówczas musi być i > 0 oraz j > 0. V (i, j) oznacza wartość optymalnego globalnego uliniowienia dla S 1 [1..i] oraz S 2 [1..j]. Przyjmujemy nastepuj ace wartości poczatkowe (dla i, j > 0): V (0, 0) = 0, V (i, 0) = w(i), V (0, j) = w(j), E(0, j) = w(j), F (i, 0) = w(i). Ponadto, dla u latwienia rachunków przyjmujemy, że dla i, j > 0, E(i, 0) = F (0, j) = G(i, 0) = G(0, j) =, gdzie należy traktować jako bardzo ma l a liczbe rzeczywista, tzn max{x, } = x. Rekurencyjne zależności pomiedzy powyższymi wartościami opisuje nastepuj ace twierdzenie. 29

Twierdzenie 2.3.1 Niech 0 < i m oraz 0 < j n. Wówczas V (i, j) = max[e(i, j), F (i, j), G(i, j)]; E(i, j) = F (i, j) = max [max[f (i, k), G(i, k)] + w(j k)]; 0 k j 1 max [max[e(k, j), G(k, j)] + w(i k)]; 0 k i 1 G(i, j) = V (i 1, j 1) + s(s 1 (i), S 2 (j)). Dowód: Powód, dla którego w drugim równaniu stoi max[f (i, k), G(i, k)] zamiast V (i, k) jest taki, że rozważamy maksymalne globalne uliniowienia pomiedzy S 1 [1..i] oraz S 2 [1..k] nie bed ace rodzaju 1 (aby nie dzielić przerwy na dwie cześci). Zadanie 2.3.1 Czy Twierdzenie 2.3.1 pozostanie prawdziwe gdy przyjmiemy nastepuj ace równania rekurencyjne? V (i, j) = max[e(i, j), F (i, j), G(i, j)]; E(i, j) = F (i, j) = max [V (i, k) + w(j k)]; 0 k j 1 max [V (k, j) + w(i k)]; 0 k i 1 G(i, j) = V (i 1, j 1) + s(s 1 (i), S 2 (j)). Twierdzenie 2.3.2 Jeśli S 1 = m oraz S 2 = n, to wartość optymalnego uliniowienia dla S 1, S 2 (z dowolna funkcja kary za przerwy) można obliczyć w czasie O(mn 2 + m 2 n). Dowód: Aby wyznaczyć ca l a j-ta kolumne w F musimy odwiedzić m i=1 i = O(m 2 ) pozycji w E oraz G. Zatem do wyznaczenia ca lej tablicy F potrzebujemy O(m 2 n) kroków. Podobnie, aby wyznaczyć ca ly i-ty wiersz w E musimy odwiedzić n j=1 j = O(n2 ) pozycji w F oraz G. Zatem do wyznaczenia ca lej tablicy E potrzebujemy O(mn 2 ) kroków. L acznie, dostajemy wynik w czasie O(mn 2 + m 2 n). 30

2.3.2 Afiniczna funkcja kary za przerw e Funkcja kary w : N + R jest afiniczna, 3 gdy istnieja takie sta le A, B, że w(k) = A+kB, dla k N +. Oczywiście jeśli każda spacje karzemy tak samo, to odpowiada to funkcji kary w(k) = kb. Inny szczególny i ważny przypadek afinicznej funkcji to tzw. sta la kara: w(k) = A, dla k N +. Pokażemy, że uogólnienie funkcji kary za przerwy w(k) = kb (co mia lo miejsce w Sekcji 2.2) na ogólny przypadek w(k) = A + kb nie prowadzi do zwiekszenia z lożoności czasowej. Zauważmy, że przyjecie afinicznej funkcji kary oznacza, że pierwsza spacja w przerwie (tzw. otwarcie przerwy) kosztuje A + B, a każda nastepna spacja kosztuje B. Obserwacja ta bedzie pomocna przy wyznaczaniu postaci równań pozwalajacych wyznaczać wartość optymalnego uliniowienia. Poniżej używamy oznaczeń z Sekcji 2.3.1. Twierdzenie 2.3.3 Niech 0 < i m oraz 0 < j N. Wówczas V (i, j) = max[e(i, j), F (i, j), G(i, j)]; E(i, j) = max[e(i, j 1), F (i, j 1) + A, G(i, j 1) + A] + B; F (i, j) = max[f (i 1, j), E(i 1, j) + A, G(i 1, j) + A] + B. G(i, j) = V (i 1, j 1) + s(s 1 (i), S 2 (j)); Dowód: Równanie opisujace E(i, j) przedstawia dwie możliwości: kiedy ostatnia spacja w uliniowieniu (rodzaju 1.) jest kontynuacja przerwy wówczas ta wartość jest równa E(i, j 1) + B. kiedy ostatnia spacja w uliniowieniu rozpoczyna przerwe. mamy dwa przypadki dotyczace krótszego uliniowienia: Wówczas jest to uliniowienia rodzaju 2. Wówczas wartość jest F (i, j 1) + A + B. jest to uliniowienie rodzaju 3. Wówczas wartość jest G(i, j 1) + A + B. Oczywiście wybieramy najwieksz a w w/w wartości. Dyskusja pozosta lych równań wyglada podobnie. Poniższe twierdzenie mówi, że koszt obliczania uliniowienia z afiniczna funkcja kary jest stosunkowo niski. Z tego wzgledu takie funkcje kary sa powszechnie stosowane w biologii. 3 Jest to nazwa zwyczajowo przyjeta w obliczeniowej biologii. 31

Twierdzenie 2.3.4 Jeśli S 1 = m oraz S 2 = n, to wartość optymalnego uliniowienia dla S 1, S 2, z afiniczna funkcja kary za przerwy, można obliczyć w czasie O(mn). Dowód: Wynika natychmiast z Twierdzenia 2.3.3. 2.4 Porównywanie podobnych sekwencji Teraz zajmiemy sie problemem znalezienia globalnego podobieństwa dwóch s lów, majac dodatkowa informacje, że s lowa te nie różnia sie zbytnio. Taki problem może pojawić sie w pewnych zastosowaniach biologicznych: Umiejscowianie genów, których mutacje sa odpowiedzialne za pewne choroby o pod lożu genetycznym (porównuje sie odpowiadajace sobie geny osobników chorych i zdrowych wówczas porównywane sekwencje sa bardzo podobne). W procesie sekwencjonowania dużych genomów zwykle, dla poprawienia pewności prawid lowości odczytanej sekwencji, zleca sie sekwencjonowanie tego samego chromosomu kilku różnym laboratoriom. Nastepnie porównuje sie wynikowe sekwencje, które oczywiście sa bardzo podobne. Tworzenie nieredundantnych baz danych dla bia lek pochodzacych od bakterii. Redukcja rozmiaru takiej bazy danych ma oczywisty wp lyw na poprawe szybkości wyszukiwania, badź też na lepsze oszacownaie statystycznej istotności znalezionych wyników poszukiwań. Usuwanie redundancji polega na znajdowaniu bardzo podobnych sekwecji i l aczeniu ich w klasy podobieństw, lub nawet usuwaniu z bazy danych. Bedziemy sie zajmować globalnym uliniowieniem. Przyjmijmy, że s lowa S 1, S 2 maja te sama d lugość n. Przyjmijmy, że funkcja podobieństwa s ma te ceche, że kara za spacje nie jest dużo wieksza niż kara za niedopasowanie liter. Wówczas jeśli droga wyznaczajaca optymalne uliniowienie dla S 1, S 2 leży w pobliżu przekatnej tablicy V wyznaczonej przez algorytm optymalnego uliniowienia, to możemy uznać, że S 1 i S 2 sa podobne. Zajmiemy sie nastepuj acym problemem: dane sa s lowa S 1, S 2 o tej samej d lugości oraz k > 0. Szukamy optymalnego globalnego uliniowienia (oraz wartości ich podobieństwa), przy dodatkowym za lożeniu, że droga w V wyznaczajaca to uliniowienie nie wykracza poza pas [ k, k] wokó l przekatnej tablicy V. 4 4 Czyli (i, j) należy do takiej drogi, gdy i j k. 32

Oczywiście w zadaniu tym chodzi o to by zminimalizować czas. Poniższy algorytm rozwiazuje to zadanie w czasie O(kn), co jest dużym zyskiem wobec ogólnej metody dzia lajacej w czasie O(n 2 ) (oczywiście, gdy k jest dużo mniejsze od n). Dzia lanie poniższego algorytmu polega na tym, że wype lnia on, stosujac te same regu ly co ogólny algorytm programowania dynamicznego, jedynie pas [ k, k] wokó l przekatnej. Oczywiście nie bierze on pod uwage wartości, które w V znajduja sie poza pasem [ k, k]. Jeśli optymalne uliniowienie znajduje sie w tym pasie, to algorytm go znajdzie wystarczy zapamietywać w tablicy strza lki pokazujace skad wzie la sie wartość w aktualnej pozycji w tablicy a. Ponieważ rozmiar tego pasa jest O(kn), to taki jest czas dzia lania tego algorytmu. Algorytm ten można bez trudu uogólnić dla s lów S 1, S 2 o d lugościach m, n, pod warunkiem, że m n k (bo tylko wtedy (m, n) należy do pasa [ k, k]). Zadanie 2.4.1 Znaleźć algorytm, który dla danego k N + oraz s lów S 1, S 2, takich że S 1 S 2 k, znajduje optymalne uliniowienie (a nie tylko wartość jego podobieństwa) dla S 1, S 2 leżace w pasie [ k, k], w czasie O(k max[m, n]). 33

Wejście: s lowa S 1, S 2 Σ, ( S 1 = S 2 ), k N + Wynik: wartość najlepszego globalnego uliniowienia dla S 1, S 2, leżacego w pasie [ k, k] wokó l g lównej przekatnej w V. n := S 1 ; a(0, 0) := 0; for i = 1 to k do a(i, 0) := a(i 1, 0) + s(s 1 (i), ); for j = 1 to k do a(0, j) := a(0, j 1) + s(, S 2 (j)); for i = 0 to n do for d = k to k do if 1 i + d n then {j := i + d; a(i, j) := a(i 1, j 1) + s(s 1 (i), S 2 (j)); if i j 1 k then //(i 1, j) należy do pasa [ k, k] a(i, j) := max[a(i, j), a(i 1, j) + s(s 1 (i), )]; if i j + 1 k then //(i, j 1) należy do pasa [ k, k] a(i, j) := max[a(i, j), a(i, j 1) + s(, S 2 (j))]; } return a(n, n); Algorytm 2.4.1: Obliczanie globalnego podobieństwa dla podobnych s lów. Zauważmy, że jeśli optymalne globalne uliniowienie dla S 1, S 2 nie leży w pasie [ k, k], to Algorytm 2.4.1 znajdzie uliniowienie (w w/w pasie), którego wartość podobieństwa jest mniejsza od sim(s 1, S 2 ). Jeśli nie znamy wartości k, to możemy iterować Algorytm 2.4.1, aproksymujac wartość optymalnego uliniowienia: zaczynamy dla k = 1, niech a 1 bedzie wartościa zwrócona przez algorytm. Nastepnie podwajamy k i ponownie wykonujemy algorytm, itd. Niech a p bedzie wartościa zwracana przez algorytm dla k = p. Oczywiście mamy a 1 a 2 a 4.... Jeśli dla pewnego p mamy a p < a 2p, to na pewno a p nie jest wartościa optymalna. Jeśli jednak a p = a 2p, to nie możemy stwierdzić czy a p jest wartościa optymalna, o czym świadczy poniższy przyk lad. 5 Przyk lad 2.4.1 Niech S 1 = aaacc, S 2 = ccttt. Jako funkcj e podobieństwa weźmiemy s(x, x) = 5, s(x, y) = 1 (dla x y) oraz s(x, ) = 2, gdzie x, y {a, c, t}. 5 Wbrew temu co twierdza na str. 68 autorzy podrecznika Introduction to Computational Molecular Biology (Meidanes, Setubal). 34

Wartość uliniowienia S 1, S 2 bez spacji jest równa -5 (jest to sytuacja odpowiadajaca k = 0). Dla k = 1 oraz dla k = 2, stosujac Algorytm 2.4.1, dostajemy wartość -5. Natomiast optymalne uliniowienie, mieszczace sie w pasie dla k = 3, ma wartość -2. Uliniowienie to podajemy poniżej a a a c c c c t t t Zadanie 2.4.2 Zbudować tablice dla k = 1, 2, 3 z Przyk ladu 2.4.1. Nastepuj ace zadanie pokazuje, że odleg lość edycyjna możemy obliczać szybciej niż by to wynika lo z ogólnego algorytmu opartego na dynamicznym programowaniu (por. Zadanie 2.1.5). Zadanie 2.4.3 Niech S 1 = S 2 = n. Metoda dynamicznego programowania obliczajaca δ(s 1, S 2 ) dzia la w czasie O(n 2 ). Znaleźć algorytm dzia lajacy w czasie O(k n), który odpowiada, że albo δ(s 1, S 2 ) > k i wtedy nie oblicza odleg lości δ(s 1, S 2 ), lub oblicza δ(s 1, S 2 ), o ile ta odleg lość jest nie wieksza od k. 35