Johanna Ploog, Konstantin Clemens Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 – Musterlösung Wir starten mit einer Aufgabe, die bereits einmal in einer Klausur bzw. in einem Review dieser Veranstaltung gestellt wurde. Legen Sie alle Hilfsmittel beiseite, lesen Sie die Aufgabe und lösen sie alleine in max. fünf Minuten. Wenn das klappt, sind Sie auf dem richtigen Weg. 1. alte Klausur-/Reviewaufgabe: Gap–Kosten a) Erklären Sie kurz den Unterschied zwischen Hamming– und Edit–Distanz. b) In der Vorlesung wurde bei affinen Gap–Kosten die gap opening penalty mit d ≥ 0 und die gap extension penalty mit e ≥ 0 bezeichnet. Nennen Sie jeweils ein biologisches Anwendungsbeispiel, wo man d und e zweckmäßigerweise so wählen wird, dass gilt i) d > e ii) e > d a) Bei der Hamming-Distanz sind nur Matches und Mismatches erlaubt, aber keine Gaps. Edit-Distanz : Mismatches, Insertions und Deletions werden mit unit cost (−1) bestraft; Matches kosten nichts. b) d > e : Funktionell ähnliche und verwandte Sequenzen unterscheiden sich des Öfteren durch einen längeren Abschnitt, der der einen Sequenz fehlt. Dabei ist es wahrscheinlicher, dass diese Teilsequenz auf einmal entfernt (z.B. durch Splicing) oder eingefügt wurde (z.B. in Form von viralen Elementen), als dass die Indels“ nach und nach erfolgten. ” 1 d < e : Bei der Sequenzierung von DNA oder auch Proteinen kommt es vor, dass einzelne Basen bzw. Aminosäuren übersprungen werden. Dies erfolgt jedoch so selten, dass eine zufällige Aneinanderreihung von Gaps extrem unwahrscheinlich ist. Daher wird eine solche stärker bestraft als mehrere einzelnes Gaps. 2. Globales Sequenzalignment Berechnen Sie für die Sequenzen GATCG (horizontal) und ACTTC (vertikal) ein globales Sequenzalignment mit dynamischer Programmierung. Ein Match trägt 4 zum Score des Alignments bei, ein Mismatch −4, ein Gap in der horizontalen Sequenz −3 und ein Gap in der vertikalen Sequenz −2. a) Beschreiben Sie die Veränderungen, die Sie am DP–Algorithmus der Vorlesung vornehmen müssen, damit der Algorithmus mit den unterschiedlichen Gap–Kosten funktioniert. b) Berechnen Sie die DP–Matrix inklusive der Traceback–Kanten. c) Heben Sie die beim Traceback benutzten Kanten besonders hervor. d) Wieviele verschiedene und welche optimale globalen Alignments ergeben sich? Statt Verwendung eines Wertes d für die Gap penalty unterscheiden wir je nach Tracebackrichtung. Hierbei ist hervorzuheben, dass ein Gap z.B. in der horizontalen Sequenz“ bedeutet, ” dass der Tracebackpfeil auf die entsprechende Sequenz zeigt, in welcher das Gap eingefügt wird, also in diesem Fall nach oben. Das liegt daran, dass beim Einfügen eines Gaps zwar ein Zeichen der anderen, in diesem Fall vertikalen Sequenz eingefügt wird (j sich also verändert), in der horizontalen Sequenz jedoch gerade nicht. Gleiches gilt analog für die vertikale Sequenz. Die Gapkosten sind daher genau umgekehrt zu verteilen, als es auf den ersten Blick scheint. Initialisierung: ∀i : F (i, 0) = −2 ∗ i ∀j : F (0, j) = −3 ∗ j Rekursion: F (i, j) = max F (i − 1, j − 1) + s(s1 [i], s2 [j]) F (i, j − 1) − 3 F (i − 1, j) − 2 2 Scoring-Matrix mit Tracebackpfeilen: A 0 ← ↑ - −3 ↑ C −6 ↑ T - −12 ↑ C - −9 ↑ T - - −15 G −2 A −4 ← T −6 −4 2 ← 0 ↑ ↑ - −7 −1 ← ← C −8 ← G −10 ← −2 ← −4 4 ← 2 ↑ - - ↑ - −2 ↑ - −10 −4 ↑ ↑ −13 −7 0 ↑ ↑ ↑ −16 −16 −3 3 ← - ↑ - −1 0 - ↑ −1 ← −3 4 ← 2 - Es gibt zwei optimale globale Alignments mit Score 2 und zwar GA--TCG sowie GA-T-CG -ACTTC-ACTTC3. Metrik Zeigen Sie, dass die Hamming–Distanz eine Metrik bildet (formaler Beweis). Eigenschaften einer Metrik: a) ∀x, y d(x, y) ≥ 0 b) ∀x, y d(x, y) = 0 ⇐⇒ x = y c) ∀x, y, z d(x, y) + d(y, z) ≥ d(x, z) Bei der Hamming-Distanz sind nur Matches mit d(xi , yi ) = 0 sowie Mismatches mit d(xi , yi ) = 1 erlaubt. Eine Folge dieser Bedingung ist, dass die zu betrachtenden Strings x, y, z alle gleich lang sein müssen, da keine Gaps eingefügt werden dürfen. P Entsprechend der Definition gilt d(x, y) = ni=1 d(xi , yi ). Für den Beweis betrachten wir die Hamming-Distanz zwischen einzelnen Zeichen, etwa an der jeweils i. Position in den zu betrachtenden Strings, und führen den Beweis für komplette Sequenzen auf diese zurück. a) Wegen d(xi , yi ) = 0 für ein Match bzw. 1 für ein Mismatch gilt d(xi , yi ) ≥ 0 und P damit d(x, y) = i d(xi , yi ) ≥ 0 q.e.d. 3 b) Aufgrund der symmetrischen Definition von Abständen gilt: P P d(x, y) = i d(xi , yi ) = i d(yi , xi ) = d(y, x), falls ∀xi , yi d(xi , yi ) = 0 q.e.d. c) Unterscheidung in 5 Fälle: i) xi = yi && yi = zi : d(xi , yi ) + d(yi , zi ) ≥ d(xi , zi ) d(xi , xi ) + d(xi , xi ) ≥ d(xi , xi ) 0+0 ≥ 0 ii) xi = yi && xi 6= zi : d(xi , yi ) + d(yi , zi ) ≥ d(xi , zi ) d(xi , xi ) + d(xi , zi ) ≥ d(xi , zi ) 0+1 ≥ 1 iii) xi = zi && xi 6= yi : d(xi , yi ) + d(yi , zi ) ≥ d(xi , zi ) d(xi , yi ) + d(yi , xi ) ≥ d(xi , xi ) 1+1 ≥ 0 iv) xi 6= yi && yi = zi : d(xi , yi ) + d(yi , zi ) ≥ d(xi , zi ) d(xi , yi ) + d(yi , yi ) ≥ d(xi , yi ) 1+0 ≥ 1 v) xi 6= yi && yi 6= zi && xi 6= zi : d(xi , yi ) + d(yi , zi ) ≥ d(xi , zi ) 1+1 ≥ 1 Daraus folgt: X d(x, y) + d(y, z) = d(xi , yi ) + i = X ≥ X X d(yi , zi ) i d(xi , yi ) + d(yi , zi ) i d(xi , zi ) i = d(x, z) 4 q.e.d. 4. Wildcards Manchmal taucht der Buchstabe N in Nukleotidsequenzen auf, der für ein beliebiges Nukleotid aus {A, C, G, T} steht, z. B. ist TGNAA entweder TGAAA oder TGCAA oder TGGAA oder TGTAA. Gegeben sei nun eine Sequenz s1 mit und eine Sequenz s2 ohne Wildcards. Beschreiben Sie eine Methode, die die beste Interpretation von s1 in Bezug auf s2 liefert, das heißt, bestimmen Sie unter allen möglichen Interpretationen von s1 (wieviele?) diejenige, die den besten Alignmentscore mit s2 hat. 1. naive Möglichkeit: Durchprobieren für alle 4n Varianten, d.h. Berechnung von 4n Matrizen und Entscheidung für dasjenige Alignment, das den höchsten Score liefert. 2. Variation des NW-Algorithmus: An jeder Wildcard-Position i wird ein Match mit dem jeweiligen Zeichen der 2. Sequenz angenommen, d.h. s(s1 [i], s2 [j]) = s(s1 [j], s1 [j]). Da es immer noch sein kann, dass ein Gap günstiger wäre als dieses Match, berechnen wir entsprechend Needleman-Wunsch das Maximum zur Ermittlung des Scores von F (i, j). F (i, j) = max F (i − 1, j − 1) + s(s1 [i], s2 [j]) mit s(N, X) = s(X, X) F (i − 1, j) − d F (i, j − 1) − d Beim Traceback wird dann an allen Diagonalkanten mit Wildcards das entsprechende Symbol aus s2 für N eingesetzt. 1: if T(i,j) == (i-1,j-1) then 2: 3: 4: 5: 6: 7: if s1 [i] == ’N’ then print ss22 [j] [j] else [i] print ss21[j] end if end if 5. Anzahl optimaler Alignments Die Anzahl der Traceback–Pfade in der DP–Matrix korrespondiert zur Anzahl der optimalen Alignments. Beschreiben Sie einen Algorithmus, der diese Zahl in O(nm) Zeit berechnet. (Hinweis: DP). Während der Durchführung des normalen NW-Algorithmus füllen wir zusätzlich eine weitere Matrix A mit der Anzahl der möglichen Tracebacks. Dies erfolgt rekursiv über P A(i, j) = A(i0 , j 0 ), wobei (i0 , j 0 ) die maximierenden Paare bezeichnen. 5 Zu Beginn wird A derart initialisiert, dass jede Zelle eine 1 enthält. Dies ist gleichbedeutend mit dem Fall, dass es zu jedem Paar von Präfixsequenzen s1 [0..i] und s2 [0..j] genau ein optimales globales Alignment gibt: ∀i ∀j A(i, j) = 1 Während der Berechnung von F (i, j) wird dann jeweils zugleich auch A(i, j) aktualisiert. Wir können zusätzliche Variablen einführen, was die spätere Fallunterscheidung erleichtert. 1: a = F(i-1,j-1) + s(s1 [i],s2 [j]) 2: b = F(i-1,j) - d 3: c = F(i,j-1) - d 4: m = max(a,b,c) 5: F(i,j) = m 6: // Für jede Tracebackrichtung wird die Anzahl der optimalen Alignments der Präfixsequenzen auf A(i, j) aufaddiert. 7: if m == a then 8: 9: 10: 11: 12: 13: 14: 15: A(i,j) += A(i-1,j-1) end if if m == b then A(i,j) += A(i-1,j) end if if m == c then A(i,j) += A(i,j-1) end if Zum Schluss lässt sich aus A(n, m) die Anzahl der optimalen Alignments auslesen. Die zu Aufgabe 2 gehörende Matrix A sähe dann beispielsweise folgendermaßen aus, wobei die Tracebackpfeile nur der Übersichtlichkeit halber enthalten sind. 6 A 1 ← ↑ - 1 ↑ C 1 ↑ T - 1 ↑ C - 1 ↑ T - 1 - G 1 A 1 ← T 1 1 1 ← 1 ↑ ↑ - 2 1 ↑ ↑ - 3 1 1 ← ↑ ↑ - ↑ - 4 1 2 ↑ ↑ ↑ 5 1 2 ← ← C 1 ← G 1 ← 1 ← 1 1 ← 1 ↑ - - 1 2 1 - ↑ 1 ← 4 2 ← 2 - Wie erwartet ist die Anzahl der optimalen globalen Alignments 2. 7