Sommersemester 2005 Abgabe am 24.6.2005 Prof. Dr. Stefan Posch, Dipl.-Inf. B. M¨oller
11. ¨Ubung ”Algorithmen der Bioinformatik I“
1. Ermitteln Sie alle optimalen globalen Alignments f¨ur die Strings ”KUNST“ und ”KITSCH“, wobei die Kostenfunktionδ(a, b)f¨ur zwei Buchstaben aund bdes Alphabets oder Leerstrings λ wie folgt definiert ist:
δ(a, b) =
0, a=b
2, a6=b, a, b6=λ 1, a=λoderb =λ Geben Sie die Edit-Transkripte und die Edit-Distanzen an.
2. In der Vorlesung wurde der Satz eingef¨uhrt, dass zu jedem Edit-TransskriptT = (t1, . . . , tl)f¨ur zwei StringsS1undS2genau ein Pfad von(0,0)nach(n, m)im Edit-GraphenG(S1, S2)existiert. Zudem wurde der Beweis f¨ur die eine Richtung des Satzes gef¨uhrt, d.h. es wurde gezeigt, dass zu jedem Transskript ein Pfad existiert. Zeigen Sie die R¨uckrichtung, d.h. dass jeder Pfad im Graphen genau einem Edit-Transskript entspricht.
3. Programmieren Sie den Algorithmus f¨ur das optimale globale Alignment von zwei Strings. Die Pa- rameter (Gewichte) der Kostenfunktionδ(a, b)f¨ur zwei Buchstaben aundb bzw. Leerstrings sollen dabei frei w¨ahlbar sein und die erhaltene KostenmatrixD(i, j)soll ausgegeben werden.
Testen Sie Ihren Algorithmus am Beispiel aus Aufgabe 2 und an einem weiteren Beispiel. Dabei soll sowohl die minimale Edit-Distanz (welche Parameter hat die Kostenfunktion hier?) als auch ein zugeh¨origes optimales Alignment der beiden Strings ausgegeben werden (Leerstellen mit ”-“ mar- kieren). Zur Ausgabe eines optimales Alignments muss also eine weitere Funktion programmiert werden, die ein solches aus der KostenmatrixD(i, j) mit Hilfe von zus¨atzlich gespeicherten Links von Eintr¨agen vonD(i, j)zu den entsprechenden minimierenden Vorg¨angern extrahiert. Geben Sie die Testergebnisse an!
Hinweis:Wenn Sie eine M¨oglichkeit finden, ein optimales Alignment ohne die Verwendung zus¨atzli- cher Links ausD(i, j)zu bestimmen, dann m¨ussen Sie im Programm diese Links auch nicht berech- nen und speichern.
4. Zu zwei StringsS1, S2betrachten wir den Edit-Graphen mit Knoten(i, j),0≤i≤m,0≤j ≤n, zur Bestimmung der minimalen Edit-DistanzDij der TeilstringsS1[1..i]undS2[1..j]. Uns interessieren Absch¨atzungen f¨ur die Anzahl der m¨oglichen Pfade in diesem Graphen.
(a) F¨ur welche Knoten (i, j) im Graphen exitiert genau ein m¨oglicher Pfad? Leiten Sie f¨ur alle anderen Knoten(i, j)eine rekursive Darstellung der m¨oglichen Pfadep(i, j)und ihrer Anzahl her!
(b) Sch¨atzen Sie die Anzahlp(m, n)der m¨oglichen Pfade zum Knoten(m, n)nach unten ab durch einen Ausdruck der Form
p(m, n)≥Cαmin(m,n). Dabei sollenC, αm¨oglichst groß sein.
(c) Leiten Sie eine Rekursion f¨ur die Anzahl der auszuf¨uhrenden Operationen bei rekursiver Be- rechnung derDijsowie eine (grobe) untere Absch¨atzung her. Wir z¨ahlen dabei Additionen und Vergleiche als jeweils eine Operation.