Algorithmische Bioinformatik

Ähnliche Dokumente
Aufgabenblatt 4. Silke Trißl Wissensmanagement in der Bioinformatik

Bioinformatik. Dynamische Programmierung. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

Grundlagen der Bioinformatik

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

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

Bioinformatik. Approximative Stringvergleiche. Ulf Leser Wissensmanagement in der. Bioinformatik

Algorithmen auf Sequenzen Paarweiser Sequenzvergleich: Alignments

Algorithmen auf Sequenzen

Bioinformatik. Approximatives Stringmatching Editabstand. Ulf Leser Wissensmanagement in der. Bioinformatik

Algorithmische Anwendungen WS 2005/2006

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

Bioinformatik Für Biophysiker

Bioinformatik für Lebenswissenschaftler

Pairwise Alignment. Steffen Forkmann. Proseminar: BioInformatik

Anwendungen dynamischer Programmierung in der Biologie

Bioinformatik für Biochemiker

Bioinformatik Für Biophysiker

Algorithmen auf Sequenzen

Algorithmische Bioinformatik

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

6. Algorithmen auf Zeichenketten

Dynamische Programmierung

Algorithmische Bioinformatik 1

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

Informatik II, SS 2018

HS: Angewandte Linguistische Datenverarbeitung Prof. Dr. Rolshoven Universität zu Köln. Edit distance. Referentinnen: Alena Geduldig, Kim Opgenoorth

Effiziente Algorithmen und Komplexitätstheorie

Algorithmische Bioinformatik

Range-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?

Informatik II, SS 2018

Algorithmische Bioinformatik

Kapitel 7: Sequenzen- Alignierung in der Bioinformatik

Algorithmische Bioinformatik

Informatik II, SS 2016

Zentrum für Bioinformatik. Übung 4: Revision. Beispielfragen zur Klausur im Modul Angewandte Bioinformatik (erste Semesterhälfte)

Algorithmen für paarweise Sequenz-Alignments. Katharina Hembach

Informatik II, SS 2014

Sequenzen-Alignierung in der Bioinformatik. VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11

Bioinformatik Für Biophysiker

Algorithmische Bioinformatik 1

Algorithmen und Komplexität

19. Dynamic Programming I

19. Dynamic Programming I

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Kombinatorische Optimierung

Übungsaufgaben zur Einführung in die Bioinformatik - Lösungen

Informatik II, SS 2016

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

Algorithmen auf Sequenzen

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Algorithmen und Datenstrukturen 2

Aufgabenblatt 5. Silke Trißl Wissensmanagement in der Bioinformatik

Effiziente Algorithmen 2

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

Bioinformatik. BLAST Basic Local Alignment Search Tool. Ulf Leser Wissensmanagement in der. Bioinformatik

Approximatives (2D-)Pattern-Matching

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Algorithmische Bioinformatik 1

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Wann sind Codes eindeutig entschlüsselbar?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Algorithmen und Datenstrukturen 2

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Algorithmen I. Tutorium Sitzung. Dennis Felsing

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Einführung in die Bioinformatik

Kapitel 3: Sortierverfahren Gliederung

Algorithmen und Datenstrukturen 1 Kapitel 3

ADS: Algorithmen und Datenstrukturen 2

Das Problem des Handlungsreisenden

Informatik II, SS 2018

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

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

Dynamisches Programmieren - Problemstruktur

Datenstrukturen & Algorithmen

Vorlesung 4 BETWEENNESS CENTRALITY

FOLDALIGN und sein Algorithmus. Nadine Boley Silke Szymczak

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Editierdistanz Autor: Sven Schuierer

Wie komme ich von hier zum Hauptbahnhof?

Algorithmen und Datenstrukturen 2

Theoretische Grundlagen der Informatik

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Bioinformatik für Lebenswissenschaftler

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

Aufgabe 3: Erste Versuche im Indexieren des Templates. Ulf Leser Wissensmanagement in der Bioinformatik

Informatik II, SS 2018

Bioinformatik. Substitutionsmatrizen BLAST. Ulf Leser Wissensmanagement in der. Bioinformatik

ADS: Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Algorithmische Methoden für schwere Optimierungsprobleme

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Informatik II, SS 2016

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen & Programmierung. Rekursive Funktionen (1)

Transkript:

Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik

Inhalt dieser Vorlesung Rekursive Definition des Editabstands Lösung durch Dynamische Programmierung Varianten Editgraphen Gewichtete Editabstände Ähnlichkeit Ulf Leser: Algorithmische Bioinformatik 2

Weiteres Vorgehen der Vorlesung Diese Stunde: Effiziente Lösung des Alignmentproblems Rekursive Formulierung Dynamische Programmierung: Bottom-Up statt Top-Down Andere Sichtweisen auf dasselbe Problem Nächste Stunde: Eng verwandte Probleme End-Free Alignment, Lokales Alignment, Alignment mit Gaps, Alignment mit Substitutionsmatrizen Danach Datenbanksuche und heuristisches Alignment Mehr Sequenzen: Multiples Alignment Von Sequenzen zu Bäumen: Phylogenie Ulf Leser: Algorithmische Bioinformatik 3

Rekursive Betrachtung AGGTCG AGTC AGGTC G AGTC _ AGGTCG _ AGT C AGGTC G AGT C AGGT CG AGTC AGGTC _G AGT C_ AGGT CG AGT C_ Ulf Leser: Algorithmische Bioinformatik 4

Editabstände Definition Gegeben zwei Strings A, B mit A =n, B =m Funktion dist(a,b) berechne den Editabstand von A, B Funktion d(i,j), 0 i n und 0 j m, berechne den Editabstand zwischen A[1..i] und B[1..j] Bemerkungen Offensichtlich gilt: d(n,m)=dist(a,b) d(i,j) dient zur rekursiven Berechnung von dist(a,b) Ulf Leser: Algorithmische Bioinformatik 5

Rekursive Berechnung 1 Wir betrachten die Berechnung von d(i,j) für A,B Wir haben die optimalen Editskript für A[1..i 0 ] mit B[1..j 0 ], i 0 i j 0 j (i 0 =i j 0 =j), berechnet Wie kann das Editskript weitergeführt werden? Fallunterscheidung 1. Insertion in A (oder Deletion in B) Situation:...I XXX_ XXXT Also benutzen wir ein Zeichen mehr von B d(i,j-1) ist der Editabstand von A[1..i] zu B[1..j-1] Symbolisiert durch die XXX Damit: d(i,j) = d(i, j-1) + 1 Ulf Leser: Algorithmische Bioinformatik 6

Rekursive Berechnung 2 Wir betrachten die Berechnung von d(i,j) für A,B Wir haben die optimalen Editskript für A[1..i 0 ] mit B[1..j 0 ], i 0 i j 0 j (i 0 =i j 0 =j), berechnet Wie kann das Editskript weitergeführt werden? Fallunterscheidung 2. Deletion in A (oder Insertion in B) Situation:...D XXXT XXX_ Umgekehrte Situation Wir benutzen ein Zeichen mehr von A d(i-1,j) ist der Editabstand von A[1..i-1] zu B[1..j] Damit: d(i,j) = d(i-1, j) + 1 Ulf Leser: Algorithmische Bioinformatik 7

Rekursive Berechnung 3 Wir betrachten die Berechnung von d(i,j) für A,B Wir haben die optimalen Editskript für A[1..i 0 ] mit B[1..j 0 ], i 0 i j 0 j (i 0 =i j 0 =j), berechnet Wie kann das Editskript weitergeführt werden? Fallunterscheidung 3. Match Situation:...M XXXY XXXY Wir benutzen ein Zeichen mehr von A und eines mehr von B Match kostet nichts Damit: d(i,j) = d(i-1, j-1) Ulf Leser: Algorithmische Bioinformatik 8

Rekursive Berechnung 4 Wir betrachten die Berechnung von d(i,j) für A,B Wir haben die optimalen Editskript für A[1..i 0 ] mit B[1..j 0 ], i 0 i j 0 j (i 0 =i j 0 =j), berechnet Wie kann das Editskript weitergeführt werden? Fallunterscheidung 4. Mismatch Situation:...R XXXY XXXZ Wir benutzen ein Zeichen mehr von A und eines mehr von B Mismatch kostet 1 Damit: d(i,j) = d(i-1, j-1) + 1 Ulf Leser: Algorithmische Bioinformatik 9

Ulf Leser: Algorithmische Bioinformatik 10 Rekursionsgleichung Wir leiten das nächste Symbol im Editskript aus schon bekannten Editabständen ab Wir suchen das kürzeste Skript, also + + + = ), ( 1) 1, ( 1 ) 1, ( 1 1), ( min ), ( j i t j i d j i d j i d j i d = sonst j B A i wenn j i t 0 : ] [ ] [ 1: ), (

Randbedingungen Randbedingungen nicht vergessen d(i,0) = i Um A[1..i] zu zu transformieren braucht man i Deletions d(0,j) = j Um A[1..0] zu B[1..j] zu transformieren braucht man j Insertions Ulf Leser: Algorithmische Bioinformatik 11

Zusammen Theorem Der Editabstand zweier Strings A,B mit A =n, B =m berechnet sich mit Startbedingung d ( i,0) = i d(0, j) = j als d(n,m) mit folgender Rekursionsgleichung d( i, Beweis Per Konstruktion j) = min d( i d( i, j 1) + 1 d( i 1, j) + 1 1, j 1) + t( i, j) Ulf Leser: Algorithmische Bioinformatik 12

Rekursiver Algorithmus function d(i,j) { if (i = 0) return j; else if (j = 0) return i; else return min ( d(i-1,j) + 1, d(i,j-1) + 1, d(i-1,j-1) + t(a[i],b[j])); } function t(c 1, c 2 ) { if (c 1 = c 2 ) return 0; else return 1; } Komplexität? Für n,m erfolgen 3 Aufrufe, die wiederum jeweils 3 Aufrufe auslösen, die... Komplexität damit mindestens O(3 min(n,m) ) Ulf Leser: Algorithmische Bioinformatik 13

Inhalt dieser Vorlesung Rekursive Definition des Editabstands Lösung durch Dynamische Programmierung Varianten Editgraphen Gewichtete Editabstände Ähnlichkeit Ulf Leser: Algorithmische Bioinformatik 14

Sicher nicht optimal Aufrufbaum mit Parametern D(2,2) D(2,1) D(1,2) D(1,1) D(2,0) D(1,0) D(1,1) D(0,1) D(1,0) D(0,0) D(1,1) D(0,2) D(0,1) Optimierungspotential? Ulf Leser: Algorithmische Bioinformatik 15

Sicher nicht optimal Durch die Rekursionsgleichung werden viele Teillösungen mehrfach berechnet D(2,2) D(2,1) D(1,2) D(1,1) D(2,0) D(1,0) D(1,1) D(0,1) D(1,0) D(0,0) D(1,1) D(0,2) D(0,1) Es gibt nur (n+1)*(m+1) verschiedene Aufrufe Wie kann man die redundanten Berechnungen sparen? Ulf Leser: Algorithmische Bioinformatik 16

Tabellarische Berechnung Grundidee Speichern der Teillösungen in Tabelle Bei Berechnung Wiederverwendung wo immer möglich Aufbau der Tabelle: Bottom-Up (statt rekursiv Top-Down) Initialisierung mit festen Werten d(i,0) und d(0,j) Sukzessive Berechnung von d(i,j) mit steigendem i,j Für d(i,j) brauchen wir d(i,j-1), d(i-1,j) und d(i-1,j-1) Verschiedene Reihenfolgen möglich A T G C G G T G C A A T A T G C G G T G C A A T A T G G T G C A A T G G T G C A Ulf Leser: Algorithmische Bioinformatik 17

Beispiel d( i, j) = d( i, j 1) + 1 min d( i 1, j) + 1 d( i 1, j 1) + t( i, j) A 1 T 2 G 3 G 4 A T G C G G T 0 1 2 3 4 5 6 7 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 T 2 G 3 G 4 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 G 3 G 4 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 G 4 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 Ulf Leser: Algorithmische Bioinformatik 18

Was ist gewonnen? A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 Editabstand von ATGG, ATGCGGT ist 3 Wo ist das Alignment? Traceback Bei Berechnung von d(i,j) behalte Pointer auf Vorgängerzelle(n) mit Minimum Die muss nicht eindeutig sein Alle Wege führen zu gültigen Alignments A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 Ulf Leser: Algorithmische Bioinformatik 19

Vom Pfad zum Alignment A T G C G G T 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 G 4 3 2 1 1 1 2 3 Jeder Pfad von (n,m) nach (0,0) ist ein optimales Alignment Starte von (n,m) Nach links: Deletion in A Nach oben: Insertion in A Diagonal: Match/Replace A T G C G G T A T G C G G T 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 ATGCGGT ATG_G A 1 0 1 2 3 4 5 6 T 2 1 0 1 2 3 4 5 G 3 2 1 0 1 2 3 4 ATGCGGT AT GG_ G 4 3 2 1 1 1 2 3 G 4 3 2 1 1 1 2 3 Ulf Leser: Algorithmische Bioinformatik 20

Beispiel 2 WRIT_ERS VINTNER_ WRI_T_ERS V_INTNER_ WRI_T_ERS _VINTNER_ Ulf Leser: Algorithmische Bioinformatik 21

Komplexität Aufbau der Tabelle Zur Berechnung einer Zelle muss man genau drei andere Zellen betrachten Konstante Zeit pro Betrachtung m*n Zellen Insgesamt: O(m*n) Traceback (für ein Alignment) Man kann einen beliebigen Pfad wählen Es muss einen Pfad von (n,m) nach (0,0) geben Jede Zelle hat mindestens einen Pointer Keine Zelle zeigt aus der Tabelle hinaus Worst-Case Pfadlänge ist O(m+n) Zusammen O(m*n) (für m*n > m+n) Ulf Leser: Algorithmische Bioinformatik 22

Verbesserung Brauchen wir die Pointer? Algorithmus ohne Pointer 1. Setze i=n, j=m 2. Bestimme alle Herkunftszellen von (i,j) Je nachdem ob d(i,j)=d(i-1,j)+1 oder d(i,j)=d(i-1,j)+1 oder... Es gibt immer eine oder mehrere Herkunftszellen geben 3. Wähle eine Herkunftszelle aus Setze i,j neu Baue simultan Alignment auf Pfade haben keine Sackgassen 4. Solange (i,j) (0,0) springe zu 2 Komplexität bleibt unverändert O(m+n) Schritte mit jeweils max. 3 Berechnungen Ulf Leser: Algorithmische Bioinformatik 23

Needleman-Wunsch S.B. Needleman, C.D. Wunsch, A general method applicable to the search for similarities in the amino acid sequence of two proteins, J. of Molecular Biology, 48, 1970 Der originale Algorithmus hat aber Komplexität O(n 3 ) Einen Trick übersehen Needleman-Wunsch wird trotzdem oft als Synonym für die Idee der dynamischen Programmierung zur Berechnung des Edit-Abstands verwendet Ulf Leser: Algorithmische Bioinformatik 24

Inhalt dieser Vorlesung Rekursive Definition des Editabstands Lösung durch Dynamische Programmierung Varianten Editgraphen Gewichtete Editabstände Ähnlichkeit Ulf Leser: Algorithmische Bioinformatik 25

Analogie: Kürzeste Wege in Editgraphen Definition Ein Editgraph für A,B mit A =n, B =m ist Graph mit (m+1)*(n+1) Knoten Jeder Knoten ist beschriftet mit Label (i,j) für 0 i n, 0 j m Kanten und Gewichte Es gilt (i,j-1) (i,j) mit Gewicht 1 (i-1,j) (i,j) mit Gewicht 1 (i-1,j-1) (i,j) mit Gewicht 0 gdw. A[i]=B[j]; sonst 1 Alle leichtesten Wege von (1,1) bis (n,m) sind optimale Alignments Umkehrung gilt auch Ulf Leser: Algorithmische Bioinformatik 26

Gewichtete Editabstände Unser Bewertung von Abstand liegt zugrunde Matching ist umsonst Löschen / Einfügen / Vertauschen ist gleich teuer (1) Das muss nicht so sein Aminosäuren sind mehr oder weniger ähnlich Vertauschungen haben unterschiedlich starke Wirkung Ersetzungen (R) sollten unterschiedliche Gewichte haben Lange Gaps wegen Crossing-Over-Events nicht linear schlimmer als kurze Gaps I/D auf DNA bewirkt Frameshift viel schlimmer als R Man braucht flexiblere Bewertungsschemata Ulf Leser: Algorithmische Bioinformatik 27

Allgemeines Bewertungsschema Operationen werden unterschiedlich bestraft Einfügen: c i Löschen: c d Match: m Replace: r(x,y), wobei x=a[i] und y=b[j] r(x,y) entnimmt man einer Substitutionsmatrix Beispiel Bemerkung A C G T A 0 1 1 1 C 1 0.5 1 G 1.5 0 1 T 1 1 1 0 r(x,y) sollte immer kleiner als c i +c d sein, da I+D ein R simulieren Ulf Leser: Algorithmische Bioinformatik 28

Bewertungsschema im Algorithmus Algorithmus muss nur marginal verändert werden d ( i,0) = i * c d(0, j) = j * d c i d( i, j) = d( i, j 1) + ci min d( i 1, j) + cd d( i 1, j 1) + r( i, j) Alle Eigenschaften bleiben erhalten Optimalität, tabellarische Berechnung, Pfade,... Ulf Leser: Algorithmische Bioinformatik 29

Beispiel Scoring r=2, i/d=3 Scoring r=1, i/d=1 VINTNER_ WRIT_ERS VINTNER WRITERS _VINTNER_ WRI_T_ERS V_INTNER_ WRI_T_ERS VINTNER_ WRIT_ERS Ulf Leser: Algorithmische Bioinformatik 30

Ähnlichkeit Welche Frage will man eigentlich beantworten? Wie weit entfernt sind diese beiden Sequenzen Wie ähnlich sind sich zwei Sequenzen Ähnlichkeit ist die andere Seite der Medaille Je ähnlicher zwei Strings, desto geringer ist der Abstand Gut ist also: kleiner Abstand, große Ähnlichkeit Man maximiert für die Ähnlichkeit und Minimiert für den Abstand Logisch ist Ähnlichkeit und Abstand äquivalent Differenzierte Betrachtung Ähnlichkeit einzelner Zeichen / Basen / Aminosäuren Ähnliche Zeichen positive Werte Unähnliche Zeichen negative Werte Ulf Leser: Algorithmische Bioinformatik 31

Formal Definition Gegeben Alphabet Σ =Σ _ und ein Alignment zweier Strings A,B der Länge n Eine Scoringfunktion ist eine Funktion s: Σ xσ Integer Die Ähnlichkeit des Alignments von A und B bzgl. s ist Bemerkung sim( A, B) = n i= 1 s ( A[ i], B[ i] ) Wir suchen im Allgemeinen wieder das Alignment mit der größten Ähnlichkeit Die Parameter c i, c d und m sind nun Teil der Tabelle Ulf Leser: Algorithmische Bioinformatik 32

Beispiel = {A,C,G,T,_} A C G T _ A 4-2 -2-2 0 A C A G _ G T C G T _ C = 3 C 4-2 -2-2 G 4-1 0 T 4-2 _ A C A G G T C G T C = 14 Ulf Leser: Algorithmische Bioinformatik 33

Rekursionsgleichung Wieder nur kleine Veränderung Welche? d( i,0) = i k = 1 s ( A[ k], _) d(0, j) = s( _, B[ k] ) j k = 1 d( i, j) = d( i, j 1) + s(_, B[ j]) max d( i 1, j) + s( A[ i], _) d( i 1, j 1) + s( A[ i], B[ j]) Ulf Leser: Algorithmische Bioinformatik 34

Zusammenfassung Berechnung des optimalen globalen Alignments ist O(m*n) Mittels dynamischer Programmierung Platzbedarf ist auch O(m*n) Wir werden Algorithmen mit linearem Platzbedarf kennen lernen Diverse Erweiterungen Biologie: Mutationswahrscheinlichkeiten, Aminosäureähnlichkeiten, Evolutionsmodell,... Erst diese Erweiterungen machen approximatives Stringmatching sinnvoll verwendbar in der Bioinformatik Ändern aber oftmals kaum was am Algorithmus Ulf Leser: Algorithmische Bioinformatik 35