D: Dopasowanie sekwencji. Programowanie dynamiczne

Podobne dokumenty
Przypominajka WYKŁAD E : PROBLEM: OCENA PODOBIEŃSTWA POMIĘDZY SEKWENCJAMI DNA METODA: PROGRAMOWANIE DYNAMICZNE 12/13/2017

Wstęp do programowania

Wstęp do programowania

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Programowanie dynamiczne i algorytmy zachłanne

Filogeneza: problem konstrukcji grafu (drzewa) zależności pomiędzy gatunkami.

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Przyrównywanie sekwencji

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI

a) 7 b) 19 c) 21 d) 34

PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI

Sortowanie topologiczne skierowanych grafów acyklicznych

Dopasowywanie sekwencji (ang. sequence alignment) Metody dopasowywania sekwencji. Homologia a podobieństwo sekwencji. Rodzaje dopasowania

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Przyrównanie sekwencji. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Programowanie dynamiczne

PRZYRÓWNANIE SEKWENCJI

prof. dr hab. inż. Marta Kasprzak Instytut Informatyki, Politechnika Poznańska Dopasowanie sekwencji

Wstęp do Techniki Cyfrowej... Teoria automatów

Dopasowanie sekwencji (sequence alignment)

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Wykład 5 Dopasowywanie lokalne

AiSD zadanie trzecie

Wybrane podstawowe rodzaje algorytmów

Algorytmy kombinatoryczne w bioinformatyce

Matematyczne Podstawy Informatyki

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Digraf. 13 maja 2017

Programowanie dynamiczne cz. 2

Algorytmy i Struktury Danych

Algorytmy kombinatoryczne w bioinformatyce

TEORETYCZNE PODSTAWY INFORMATYKI

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Programowanie dynamiczne

Programowanie dynamiczne

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Politechnika Wrocławska. Dopasowywanie sekwencji Sequence alignment

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Projektowanie i analiza algorytmów

Porównywanie i dopasowywanie sekwencji

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Dopasowanie sekwencji Sequence alignment. Bioinformatyka, wykłady 3 i 4 (19, 26.X.2010)

Macierze. Rozdział Działania na macierzach

Dopasowanie par sekwencji

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Programowanie dynamiczne (optymalizacja dynamiczna).

Bioinformatyka Laboratorium, 30h. Michał Bereta

Graf. Definicja marca / 1

Obliczenia iteracyjne

PODSTAWY BIOINFORMATYKI 8 DOPASOWYWANIE SEKWENCJI AMINOKWASÓW

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Analiza semantyczna. Gramatyka atrybutywna

Klasyczne zagadnienie przydziału

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Wykład 10 Grafy, algorytmy grafowe

3 Przeszukiwanie baz danych

Algorytmy sortujące i wyszukujące

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Algorytmika dla bioinformatyki

Spacery losowe generowanie realizacji procesu losowego

Podejście zachłanne, a programowanie dynamiczne

Algorytmy sztucznej inteligencji

Rozdział 1 PROGRAMOWANIE LINIOWE

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów...

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Zagadnienie transportowe

10. Wstęp do Teorii Gier

Strategia "dziel i zwyciężaj"

Definicja pliku kratowego

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Metody przeszukiwania

Temat: Algorytmy zachłanne

Wykład 3. Metoda dziel i zwyciężaj

Planowanie przedsięwzięć

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Matematyka dyskretna - 7.Drzewa

Dopasowanie sekwencji Sequence alignment. Bioinformatyka, wykłady 3 i 4 (16, 23.X.2012)

Kolorowanie wierzchołków grafu

Porównywanie i dopasowywanie sekwencji

TEORETYCZNE PODSTAWY INFORMATYKI

Złożoność obliczeniowa zadania, zestaw 2

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Planowanie drogi robota, algorytm A*

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

Rozdział 8 PROGRAMOWANIE SIECIOWE

Transkrypt:

D: Dopasowanie sekwencji. Programowanie dynamiczne Problem: jak porównywać sekwencje DNA? Czy te sekwencje są podobne? Jeśli są podobne, to jak mierzyć to podobieństwo? Odpowiedzi są kluczowe dla konstrukcji drzewa filogenetycznego. identyfikacji składowych funkcjonalnych czy też zachowywanych Dopasowanie to takie uporządkowanie dwóch sekwencji DNA czy białek, które umożliwia identyfikację regionów podobieństwa pomiędzy gatunkami, regionów zachowywanych pomiędzy gatunkami Jeszcze nie tak dawno, sekwencje dopasowywano ręcznie. Na czerwono opisano zachowywane regiony 1

Podstawowe mutacje i częstość ich występowania Dopasowanie: co to znaczy, że sekwencje do siebie pasują? 111 Dwie sekwencje DNA: v: A T A T A T A T w: T A T A T A T A Odległość Haminga d H (v,w) = 8!! Ale przesuwając jeden ciąg względem drugiego dostajemy v: A T A T A T A T-- w: --T A T A T A T A Jak traktować / oceniać takie podobieństwa? Propozycja : odległość edycyjna 2

Odległość edycyjna, dopasowanie, graf edycji 112 Odległością edycyjną pomiędzy dwiema sekwencjami DNA nazywamy minimalną liczbę operacji edycji takich jak: -wstawianie jednego symbolu -kasowanie jednego symbolu -zamianę jednego symbolu na inny które przeprowadzają jedną sekwencję w drugą. TGCATAT -> ATCCGAT Odległość edycyjna, dopasowanie, graf edycji 113 Centralne zadanie kombinatoryczne: jak daną sekwencję przetransformować w drugą, stosując możliwie najmniejszą liczbę operacji podstawienia, insercji i delecji. Definicja A.7 (przypomnienie): Przy zadanych sekwencjach A i B zbudowanych ze znaków alfabetu Σ, dopasowaniem sekwencji A i B nazywamy tablicę o wymiarze 2L wypełnioną znakami z Σ {_} ({_} oznacza spację) o następujących własnościach: Nie ma kolumny, gdzie oba znaki to spacje Znaki, poza spacją, z pierwszej linii tworzą sekwencję A; znaki z drugiej linii tworzą sekwencję B. Zatem Dopasowanie dwóch sekwencji DNA V (o n znakach ) i W (o m znakach) to dwuwierszowa macierz, w której pierwszy wiersz zawiera kolejne symbole V a drugi wiersz zawiera kolejne symbole W, przy czym w obu sekwencjach mogą być dowolnie rozmieszczone spacje. 3

Odległość edycyjna, dopasowanie, graf edycji 114 V=ATGTTAT W=ATCGTAC A T G T T A T A T C G T A C matches: trafienia mismatches: pudła insertions: insercje deletions: delecje insercja delecja S t a r t Odległość edycyjna, dopasowanie, graf edycji T T A 1 2 3 4 5 6 7 A T C G T A C 0 1 2 3 4 5 6 7 i 0 A T G T j Dopasowanie jako ścieżka w grafie edycji. Górne dopasowanie 0122345677 v= AT_GTTAT_ w= ATCGT_A_C 0123455667 Dolne dopasowanie 0122345677 v= AT_GTTAT_ w= ATCG_TA_C 0123445667 Graf edycji : zbuduj tablicę M o krawędziach (, ), o wierszach numerowanych przez pierwszą sekwencję, a kolumnach numerowanych przez drugą sekwencję. przydziel tam gdzie litery wiersza i kolumny się zgadzają. Dopasowanie to najdłuższa ścieżka w M od lewego górnego rogu do dolnego prawego rogu, przy czym długość ścieżki wyznacza ilość wykorzystanych krawędzi przekątniowych. S t o p 115 4

Ścieżki w grafie edycji: niejednoznacznośc dopasowania 116 Możliwe ścieżki w tym grafie Macierze dopasowania odpowiadające poszczególnym ścieżkom Problem: wyznaczenie najlepszej ścieżki w grafie edycji 117 Algorytm zachłanny: w każdym kroku wybieraj najlepszą krawędź start 5 3 0 stop ALE: Algorytm zachłanny nie jest optymalny. 5

Problem: wyznaczenie najlepszej ścieżki w grafie edycji 118 Algorytm rekurencyjny: Rekurencja to metoda top-to-down programowania. S(i-1,j) Duży problem dzielimy na mniejsze podproblemy i rozwiązujemy te mniejsze podproblemy. W (i,j) Zauważmy, że ilość możliwości konstrukcji ścieżki w każdym węźle jest taka sama. S(i,j-1) W (i,j) S(i,j) Score(i,j) = max { Score(i,j-1) + w (i,j), Score(i-1,j) +w (i,j)} ALE: Algorytm rekurencyjny jest niewydajny Score(n,m-1) Score(n,m) Score(n-1,m) Score(n,m-2) Score(n-1,m-1) Score(n-1,m-1) Score(n-1,m-1) (organizacja drzewa podobna jak w rekurencji Fibonacciego F(n)=F(n-1)+ F(n-2), F(0)=0, F(1) =1) Problem: wyznaczenie najlepszej ścieżki w grafie edycji 119 Programowanie dynamiczne: wydajna technika rozwiązywania rekurencyjnych relacji poprzez zachowywanie rezultatów pośrednich. Programowanie dynamiczne to metoda bottom-to-top : rozwiązujemy małe podproblemy i z wyników budujemy rozwiązanie dużego problemu. Przykłady: algorytm dynamiczny dla rekurencji Fibonacciego n= 0 1 2 3 4 5 6 F(n)=0 1 1 2 3 5 8. M=0 M=1 M=2 algorytm dynamiczny do problemu kasjera M=3 M=4 M=5 Przepis na programowanie dynamiczne: myśl rekurencyjnie, stosuj dynamicznie M=6 M=7 6

Problem kasjera: rozwiązania 120 Problem kasjera wydawania reszty: O(M d ) O(M d ) Algorytm wyczerpujący Algorytm zachłanny Algorytm rekurencyjny Algorytm dynamiczny O(Md) Problem Turysty na Manhattanie 121 Jak tu się poruszać, by zobaczyć możliwie najwięcej, ale nie kręcić się w kółko po tych samych ulicach? 7

Problem Turysty na Manhattanie (PTM) 122 Poruszając się jedynie na południe i wschód znaleźć drogę o największej liczbie atrakcji. PTM przeniesione na graf - tablicę o krawędziach skierowanych i z wagami Strategia dynamiczna dla PTM 123 start 0 0 1 2 3 3 2 4 3 5 9 S 0,3 = 9 Kolejno wyliczamy najlepszą drogę od źródła do każdego punktu korzystając z wyników już uzyskanych. 1 0 2 1 1 3 4 2 7 S 1,2 = 7 2 3 4 5 4 9 0 6 10 S 2,1 = 10 Drogi w pierwszej kolumnie Drogi w pierwszym wierszu Kolejne punkty kraty S 3,0 = 9 8

Acykliczny graf skierowany Nawet Manhattan nie jest idealną kratą- są tu krawędzie dodatkowe 124 Directed Acyclic Graph Acykliczny graf skierowany: twierdzenie o numeracji 125 Numeracja dowolna wierzchołków Przenumerowanie wierzchołków tak, by wprowadzić porządek topologiczny: 1 2 3 4 5 6 Twierdzenie 1: Skończony DAG ma co najmniej jedno źródło (wierzchołek, z którego można jedynie wyjść) i jeden zlew (wierzchołek do którego można jedynie wejść Twierdzenie 2: Skończony DAG ma porządek topologiczny Mówimy, że wierzchołki v 1, v 2,,v n w grafie są uporządkowane topologicznie, jeżeli dla każdej krawędzi (v i,v j ) mamy i<j. (każda krawędź grafu opisuje się tak, że numer wierzchołka początkowego jest mniejszy niż numer wierzchołka końcowego). 9

Acykliczny graf skierowany: problem porządkowania zadań 126 Poranny dylemat Supermena: W jakiej kolejności nakładać części garderoby: buty kaptur pasek peleryna rajtuzy rękawiczki trykot (kostium) spodenki aby ubrać się kompletnie i funkcjonalnie? Acykliczny graf skierowany: rozwiązania problemu supermana 127 i=n Wybieramy zlew, nadajemy mu numer i Ustalamy listę poprzedników Usuwamy krawędzie łączące zlew z poprzednikami Zmniejszamy numer porządkowy i = i-1 10

Acykliczny graf skierowany: obsługa niejednorodności grafu 128 Poprzednik wierzchołek, z którego v jest osiągalne Następnik - wierzchołek, który jest osiągalny z v Zbiór poprzedników wierzchołka v: {u1, u2, u3} Zbiór następników wierzchołka v: {w1, w2} odległość wyznacza warunek: s v max { s w( u, v)} u zbiór poprzedników Przy czym o kolejności obsługiwania wierzchołków decyduje porządek topologiczny. u Wydajność: O(ilość krawędzi) 130 11

Dopasowanie sekwencji w grafie typu Manhattan 131 1.Zarówno przeglądnie kolejnymi wierszami jak i kolumnami jest zgodne z porządkiem topologicznym. 2. poprzednicy w grafie edycji: szczególne wagi grafu edycji zero dla i jeden dla problem Najdłuższego Wspólnego Podciągu Strategia dynamicznego programowania dla PTM 132 O(nm) Tablica odległości Algorytm odczytania najdłuższego wspólnego podciągu Tablica najlepszego kierunku cofania się 12

LCS na grafie edycji: przykład 133 V= ATCTGAT W =TGCATA max {,, } Wynik: najdłuższy wspólny podciąg v i w to TCTA Konstrukcja najdłuższego wspólnego podciągu 134 13

Odległość edycyjna na grafie edycji: przykład 135 V= ATCTGAT W =TGCATA min {,, } Wynik: dopasowanie A T - C - T G A T - T G C A T - A - d(v,w) =5 V może być przetransferowane do W przez skasowanie A, G i T oraz wstawienie G i A. Dopasowanie sekwencji DNA: tablica punktacji 136 Punkty karne za indele i za nietrafienia W ogólności tablica punktacji może być dowolna (, ) 14

Problem dopasowanie globalnego sekwencji DNA 137 Przykład: Graf dopasowania dla V=TGTTA W=TCGT zgodny z powyższą punktacją Problem dopasowanie globalnego sekwencji aminokwasów 141 Tablice punktacji dla aminokwasów (, ) Eksperymentalnie wyznaczone częstości zastępowania aminokwasu przez bez utraty funkcji białka obserwowane w ewolucji Są tablice podstawień dla aminokwasów: PAM : (Point Accepted Mutations ) macierze oparte na modelu ewolucyjnym akceptowalnych mutacji punktowych -tablice Dayhoff BLOSUM: ( BLOck SUbstitution Matrix) rodzina macierzy do analizy sekwencji daleko spokrewnionych, analizują bloki sekwencji -tablice Henikoff 15

Problem dopasowanie globalnego sekwencji aminokwasów 142 Tablice punktacji są budowane w oparciu o fakty biologiczne O dopasowaniu można sobie myśleć jako o dwóch sekwencjach różniących się przez mutacje Niektóre mutacje mają mały wpływ na funkcje protein. Dlatego punktacje są różne. Zauważ, że R (arginina) i K (lysina) choć to różne aminokwasy, punktacje mają dodatnią. Tak jest, bo oba są dodatnio naładowanymi aminokwasami, co nie wpływa znacząco na funkcjonowanie proteiny. Generalnie, zmiany w aminokwasach są takie, że zachowują własności fizykochemiczne białka. Problem dopasowanie globalnego sekwencji aminokwasów 143 16

Dopasowanie lokalne sekwencji DNA 144 Globalne dopasowanie nie dostrzega fragmentów uporządkowa nych. Dopasowanie lokalne sekwencji DNA 145 1. mamy siatkę n x m, co daje nm wierzchołków 2. Trzeba znaleźć najlepsze dopasowanie każdego wierzchołka z każdym innym wierzchołkiem Problem jest O(n 2 m 2 ) czyli O(n 4 ) 17

Dopasowanie lokalne sekwencji DNA: rozwiązanie Smitha-Watermana 146 Do każdego wierzchołka dołóż krawędź łączącą go z (0,0) i przydziel tej krawędzi wagę 0. Z każdego wierzchołka poprowadź krawędź do (n,m) i przydziel mu wagę 0. Dopasowanie większej ilości sekwencji DNA 147 Strategia analogiczna, ale na grafie edycji 3-wymiarowym 18

Dopasowanie sekwencji DNA : problem pamięci 148 O(n 1 n 2 n 3.. ) wydajność czasowa Dwie duże tablice : s i b problem wydajności pamięciowej! Dopasowanie sekwencji DNA : problem pamięci 149 1. Problem pamięci dla tablicy s Tylko dwie kolumny wystarczą, by obliczyć s(i,j) dla wszystkich pozycji i z kolumny j 2. Konstrukcja najdłuższej ścieżki bez użycia tablicy b Spostrzeżenie: Poszukiwana najdłuższa ścieżka biegnie z (0,0) do (n,m) przez nieznany punkt ( i, m/2) 19

Dopasowanie sekwencji DNA : problem pamięci 150 Mając punkt połówkowy, ustalamy punkty ćwiartkowe, ósemkowe, Itd.. Wydajnośc czasowa: O(n m ) Wydajnośc pamięciowa : O(n) Dziel-izwyciężaj 20