Anwendungen dynamischer Programmierung in der Biologie

Ähnliche Dokumente
Bioinformatik. Alignment mit linearem Platzbedarf K-Band Alignment. Ulf Leser Wissensmanagement in der. Bioinformatik

Algorithmische Bioinformatik 1

Methoden für den Entwurf von Algorithmen

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

19. Dynamic Programming I

19. Dynamic Programming I

19. Dynamic Programming I

3.3 Optimale binäre Suchbäume

Algorithmische Bioinformatik

Informatik II: Algorithmen und Datenstrukturen SS 2013

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Drittes Übungsblatt WS 05/06 Musterlösung

Approximationsalgorithmen. 19. Dezember / 28

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

Algorithmen und Datenstrukturen (für ET/IT)

Effiziente Algorithmen und Komplexitätstheorie

Datenstrukturen & Algorithmen

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Algorithmen auf Sequenzen

Algorithmen und Komplexität

Algorithmen und Datenstrukturen (für ET/IT)

1 Einführung. 2 Grundlagen von Algorithmen. 3 Grundlagen von Datenstrukturen. 4 Grundlagen der Korrektheit von Algorithmen

Informatik II, SS 2016

Algorithmen & Komplexität

Algorithmen auf Sequenzen

1.Aufgabe: Minimal aufspannender Baum

Algorithmen und Datenstrukturen

Informatik II, SS 2018

Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen

16. All Pairs Shortest Path (ASPS)

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Datenstrukturen und Algorithmen

Aufgabenblatt 4. Silke Trißl Wissensmanagement in der Bioinformatik

Wiederholung. Divide & Conquer Strategie

15. Elementare Graphalgorithmen

Dynamische Programmierung. Problemlösungsstrategie der Informatik

2. Das single-source-shortest-path-problem

Lernmodul 7 Algorithmus von Dijkstra

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Algorithmische Techniken für Geometrische Probleme

19. Dynamic Programming I

Algorithmen auf Sequenzen Paarweiser Sequenzvergleich: Alignments

Algorithmen für paarweise Sequenz-Alignments. Katharina Hembach

Algorithmen I - Tutorium 28 Nr. 12

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Praktikum Algorithmischen Anwendungen WS 2006/07 Bioinformatik Sequence-Aligment Team C rot Ala0607

Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9

Theoretische Informatik 1

Dynamische Programmierung

Lösungsvorschläge zur Hauptklausur Datenstrukturen

Theoretische Informatik 1

6. Algorithmen auf Zeichenketten

Minimalpolynome und Implikanten

Abschnitt 19: Sortierverfahren

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Karlsruher Institut für Technologie. Klausur Algorithmen I

Wenn wir zudem a ii = 1 für 1 i n setzen, dann gilt für A k (boolesches Produkt, A 0 = I) 0 falls es im Graphen keinen Pfad von v i nach v j,

Das Problem des Handlungsreisenden

Algorithmen & Datenstrukturen Midterm Test 2

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Algorithmen für Geographische Informationssysteme

Datenstrukturen und Algorithmen (SS 2013)

Algorithmen und Datenstrukturen

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Datenstrukturen 1 Kapitel 3

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Informatik II, SS 2018

Effiziente Algorithmen (SS2015)

Algorithmische Bioinformatik

Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. Noch einmal TSP

DAP2-Klausur

Algorithmen und Datenstrukturen

Kapitel 3: Sortierverfahren Gliederung

Kombinatorische Optimierung

Algorithmen und Datenstrukturen 2

Vorlesung Datenstrukturen

Datenstrukturen und Algorithmen D-INFK

Map Matching. Problem: GPS-Punkte der Trajektorie weisen einen relativ großen Abstand zueinander auf.

Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen 2

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

Algorithmische Geometrie: Delaunay Triangulierung (Teil 1)

Formulierung mittels Dynamischer Programmierung

Rückblick: divide and conquer

Average-Case-Komplexität

Dynamische Programmierung

Datenstrukturen und Algorithmen D-INFK

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Datenstrukturen und Algorithmen D-INFK

Optimierung. Vorlesung 9

Transkript:

Anwendungen dynamischer Programmierung in der Biologie

Überblick Algorithmus zum Finden der wahrscheinlichsten Sekundärstruktur eines RNS Moleküls Sequence Alignment Verbesserung von Sequence Alignment auf O(n+m) Platzbedarf

RNS Sekundärstruktur: dynamisches Programmieren über Intervallen

Basen und Parungen DNS: zwei Stränge, die sich paaren RNS: ein Strang, der eine Sekundärstruktur bildet Vier Basen : Adenin, Guanin, Cytosin, Uracil Parungen: A U und C G

Sekundärstruktur von RNS Matching nur A U und C G Paarungen keine Überkreuzungen keine scharfen Knicke Für jedes Paar (i,j) gilt i < j-4.

Ziel des Algorithmus Finden der wahrscheinlichsten Sekundärstruktur Finden eines Matchings, das die Regeln erfüllt und maximale Anzahl an Basenpaaren hat.

Idee (1) OPT(j): maximale Anzahl von Basenpaaren in einer Sekundärstruktur von b 1,..,b j sein gesucht ist OPT(n) OPT(j)=0 für j<=5 zwei Möglichkeiten für j: j gehört nicht zu einem Paar j ist gepaart mit einem t<j-4

Idee (2) j gehört nicht zu einem Paar Dann brauchen wir nur die Lösung OPT(j-1) betrachten. Sie ist identisch mit OPT(j) j ist gepaart mit einem t<j-4 Auf Grund der Kreuzungsfreiheit haben wir unser Problem in zwei Teilprobleme zerlegt: Das erste kann formuliert werden als OPT(t-1). Das zweite lässt sich so nicht formulieren. <Abbildung 6.15 a)>

Dynamische Programmierung über Intervallen Es reicht also nicht Teilprobleme der Form b1,...,bj zu betrachen Stattdessen müssen wir alle Teilprobleme bi,...,bj für i<=j berücksichtigen <Abbildung 6.15 b)> Nennen wir die größte Anzahl an möglichen Basenpaaren für ein Teilproblem bi,...,bj OPT(i,j)

Algorithmus Nun können wir OPT(i,j) =0 initialisieren für alle Paare i,j mit i>=j-4 Für bi,...,bj gibt es die gleichen Möglichkeiten wie zuvor. Für den Fall, dass j nicht gepaart ist, gilt wieder: OPT(i,j)=OPT(i,j-1) Für den Fall, dass j ein Paar mit einem t bildet, können wir jetzt beide Teilprobleme benennen: OPT(i,t-1) und OPT(t+1,j-1)

Rekursionsformel OPT(i,j)= max( OPT(i,j-1) j ist nicht gepaart, max(1+opt(i,t-1)+opt(t+1,j-1)) Das Paar das j enthält Der optimale Wert vor t Der optimale Wert zwischen t und j )

Laufzeit und Platzbedarf Es sind O(n2 ) Teilprobleme zu lösen jedes benötigt O(n) Zeit Laufzeit insgesamt O(n 3 ) Ein n x n Feld reicht aus um alle benötigten Werte zu speichern -> Platzbedarf O(n 2 ) Finden der Paare durch Backtracing

Sequence Alignment

Warum Sequence Alignment? Wörterbücher addresse ad-resse DNS Vergleich...ATCCGG_A......A_CCAGTA...

Abstandsmaß gap penality mismatch cost Gesamtkosten: Summe der beiden

Der Algorithmus Für die letzten beiden Stellen der Wörter gilt: entweder ist (m,n) im Matching oder (m,n) ist nicht im Matching Das reicht nicht um einen Ansatz zur dynamischen Programmierung zu formulieren Es gilt auch die schärfere Aussage: Ist (m,n) nicht im Matching, ist die m-te Stelle in X nicht gepaart oder n-te Stelle in Y.

Der Algorithmus (2) Seien OPT(i,j) die minimalen Kosten eines Alignments zwischen x 1,...,x i und y 1,...,y j drei Fälle (i,j) ist im Matching Kosten für (i,j) werden bezahlt, OPT(i-1,j-1) bestimmt i ist nicht gematcht gap Kosten werden bezahlt, OPT(i-1,j) bestimmt j ist nicht gematcht gap Kosten werden bezahlt, OPT(i,j-1) bestimmt

Rekursionsgleichung OPT(i,j)= min( Mismatch Kosten für x i und y j a(i,j)+opt(i-1,j-1), Optimum ohne i und j Gap Kosten d+opt(i-1,j), d+opt(i,j-1) ) Optimum ohne i Optimum ohne j

Darstellung als Graphenproblem Kürzester Weg in einem Graphen von links unten nach rechts oben horizontalen und vertikalen Kanten : gap penality diagonale Kanten: mismatch Kosten

Laufzeit und Platzbedarf O(mn) Paare, jeweils in konstanter Zeit ein mxn Feld reicht aus um alle nötigen Werte zu speichern -> Platzbedarf O(nm)

Problem bei DNS Vergleich Laufzeit bei modernen Prozessoren kein Problem mehr riesiger Platzbedarf z.b. bei 100.000 Symbolen: 10 Millionen primitive Operationen 10 gigabyte array

Sequence Alignment mit linearem Platzbedarf

Wiederverwertung der Zellen Statt einem mxn Feld wird nur ein mx2 Feld verwendet. Die Werte, die mehr als einen Schritt zurück liegen werden nicht mehr benötigt und können überschrieben werden Wert kann berechnet werden mit O(m) Platz kein backtracing mehr möglich der Weg auf dem dieser Wert erreicht wurde ist nicht bekannt

Rückwärtsformulierung f(i,j)= min(a(i,j) + f(i-1,j-1), d+f(i-1,j), d+f(i,j-1)) g(i,j)=min(a(i+1,j+1)+g(i+1,j+1),d+g(i,j+1),d+g(i+1,j))

Zusammenhang zwischen f und g Der kürzeste Pfad durch (i,j) hat die Länge f(i,j) +g(i,j) Sei k eine beliebige Zahl zwischen 0 und n und q ein Index, der den Ausdruck f(q,k)+g(q,k) minimiert. Dann gibt es einen Pfad von (0,0) nach (n,m) der minimale Länge hat und durch (i,j) läuft.

Divide and Conquer Der Graph wird an der mittleren Spalte geteilt und f(i,n/2) und g(i,n/2) für jedes i berechnet Der Knoten (i,n/2) mit dem optimalen Wert wird gespeichert. Rekursiv werden beide Teile des Graphen wieder halbiert

Laufzeit und Platzbedarf Jeder Aufruf braucht nur O(m) Platz Der Weg hat maximal O(m+n) Länge Insgesamt O(m+n) Platzbedarf Aber bleibt die Laufzeit O(mn)?

Beweis an der Tafel...

Quellen J. Kleinberg, E. Tardos, Algorithm Design, Pearson Education 2006 (Kapitel 6.5-6.7) http://de.wikipedia.org/wiki/desoxyribonukleins%c3%a4ure http://de.wikipedia.org/wiki/ribonukleins%c3%a4ure