Algorithmische Bioinformatik

Werbung
Algorithmische Bioinformatik
Prof. Dr. Sven Rahmann
LS 11, Fakultät für Informatik, TU Dortmund
Spezialvorlesung Wintersemester 2008/09
Spezialvorlesung Sommersemester 2010
Entwurf vom 22. Juli 2010
Inhaltsverzeichnis
1 Physikalische Kartierung
1.1 Das Partial Digest Problem (PDP) . . . . . . . . . . . . . . . . . . .
1.1.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Fragen zur Eindeutigkeit des PDP . . . . . . . . . . . . . . .
1.1.3 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Das Double Digest Problem (DDP) . . . . . . . . . . . . . . . . . . .
1.2.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Komplexität . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Kartierung durch Hybridisierung und das Consecutive Ones Problem
1.3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 pq-Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Der Reduce-Algorithmus: Übersicht . . . . . . . . . . . . . .
1.3.4 Der Reduce-Algorithmus: Regeln . . . . . . . . . . . . . . . .
1.3.5 Ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
4
4
5
5
6
6
7
8
9
10
.
.
.
.
.
.
.
.
11
11
11
12
13
15
15
16
18
3 Phylogenetik: Merkmalsbasierte Methoden
3.1 Einführung und Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Perfekte Phylogenien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
24
2 DNA-Microarrays und SBH
2.1 DNA-Microarrays . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Hauptphasen eines Microarray-Experiments . . .
2.1.2 Schritte der Microarray-Datenanalyse . . . . . .
2.1.3 Low-Level-Analyse anhand von Beispielen . . . .
2.2 Sequencing by Hybridization (SBH) . . . . . . . . . . .
2.2.1 Hintergrund und Problemstellung . . . . . . . . .
2.2.2 Algorithmen für das exakte SBH-Problem . . . .
2.2.3 Anzahl der Sequenzen mit gegebenem Spektrum
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
Inhaltsverzeichnis
3.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
26
27
29
30
30
4 Phylogenetik: Distanzbasierte Methoden
4.1 Metriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Agglomeratives Clustern . . . . . . . . . . . . . . . . . . . . . .
4.3 Neighbor Joining auf additiven Distanzen . . . . . . . . . . . .
4.3.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 Übersicht und Algorithmus . . . . . . . . . . . . . . . .
4.3.4 Das Auswahlkriterium SD . . . . . . . . . . . . . . . . .
4.3.5 Berechnung der Kantenlängen und der neuen Distanzen
4.3.6 Korrektheit des NJ-Algorithmus . . . . . . . . . . . . .
4.4 Neighbor Joining auf fast additiven Distanzen . . . . . . . . . .
4.5 Fast Neighbor Joining . . . . . . . . . . . . . . . . . . . . . . .
4.6 Weitere Resultate zum Neighbor-Joining-Algorithmus* . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
36
39
39
39
40
40
44
45
45
49
51
5 Genomumordnungen
5.1 Einführung . . . . . . . . . . . . . . . . .
5.2 Problemstellung . . . . . . . . . . . . . . .
5.3 Sortieren durch Blockvertauschungen . . .
5.4 Genommodell . . . . . . . . . . . . . . . .
5.5 Die DCJ-Operation . . . . . . . . . . . . .
5.6 Die DCJ-Distanz zwischen zwei Genomen
3.4
Maximum Parsimony . . . . . . . . . . . . . .
3.3.1 Motivation . . . . . . . . . . . . . . .
3.3.2 Problemstellung . . . . . . . . . . . .
3.3.3 Das Kleine Parsimony-Problem . . . .
3.3.4 Das Große Parsimony-Problem . . . .
3.3.5 Inkonsistenz von Maximum Parsimony
Minimum-Flip-Probleme . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
53
54
56
57
58
61
6 Algorithmen der Massenspektrometrie
6.1 Moleküle, Atome und ihre Massen . . . . .
6.2 Massenzerlegungsproblem und Subset-Sum
6.2.1 Lösung mit Dynamic Programming .
6.2.2 Lösung mit einer Restklassentabelle
6.2.3 Frobenius-Zahl . . . . . . . . . . . .
6.2.4 Realistisches Beispiel . . . . . . . . .
6.3 Vorhersage von Massenspekten . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
66
67
68
69
70
70
A Molekularbiologische Grundlagen
A.1 Desoxyribonukleinsäure (DNA) . . . . . .
A.2 Ribonukleinsäure (RNA) . . . . . . . . . .
A.3 Proteine . . . . . . . . . . . . . . . . . . .
A.4 Das zentrale Dogma der Molekularbiologie
A.5 Genregulation . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
73
75
76
78
79
.
.
.
.
.
B Molekularbiologische Arbeitstechniken
81
C Genomprojekte und Sequenziertechnologien
83
ii
Vorbemerkungen
Dieses Dokument ist das Skript zu der Lehrveranstaltung Algorithmische Bioinformatik, die ich im Sommersemester 2010 an der TU Dortmund gehalten habe.
Zur Zeit befindet sich dieses Skript im Aufbau; mit Fehlern und Unvollständigkeiten ist daher
leider noch zu rechnen. Für Hinweise dazu bin ich jederzeit dankbar.
– Prof. Dr. Sven Rahmann, TU Dortmund
iii
Inhaltsverzeichnis
iv
KAPITEL
1
Physikalische Kartierung
1.1 Das Partial Digest Problem (PDP)
Wir betrachten ein Problem, das bei früheren Genomprojekten von Interesse war, nämlich
das Erstellen einer Restriktionskarte, die die Verteilung von Schnittstellen eines Restriktionssenzyms in einem DNA-Abschnitt liefert.
1.1.1 Problemstellung
Zunächst folgen einige Begriffe und Definitionen:
• Restriktionsenzym: Protein, das DNA bei bestimmten (oft palindromischen) Sequenzen
zerschneidet.
• Beispiel: HindII schneidet bei GTG|CAC oder GTT|AAC.
• Restriktionsfragment: ausgeschnittenes DNA-Stück, das von zwei Schnittstellen eines
Restriktionsenzyms begrenzt wird.
• Restrktionskarte: Menge aller Schnittstellen eines Restriktionsenzyms auf einem (langen) DNA-Molekül (z.B. einem Chromosom)
• vollständige Verdauung: Das Enzym wirkt so lange, dass an jeder der möglichen Schnittstellen geschnitten wird. Man bekommt DNA-Fragmente, die von benachbarten Schnittstellen begrenzt werden.
• partielle Verdauung: Das Enzym wirkt nicht lange genug, so dass manche mögliche
Schnitte nicht ausgeführt werden. Wiederholt man das Experiment mit verschiedenen
Kopien desselben DNA-Moleküls oft genug, bekommt man Fragmente zwischen allen
(nicht nur benachbarten) Paaren von Schnittstellen.
1
1 Physikalische Kartierung
Sei X die Menge der Stellen, an denen ein Restriktionsenzym schneidet (Restriktionskarte).
Sei ∆X die Multimenge aller auftretenden Längenfragmente bei partiellem Verdau:
∆X := {{ xj − xi : 1 ≤ i < j ≤ | X| }}.
Beispiel: X = {0, 2, 4, 7, 10} führt zu ∆X = {{ 2, 2, 3, 3, 4, 5, 6, 7, 8, 10 }} (Skizze!).
Informelle Problemstellung des Partial Digest Problems:
• Bei bekannter DNA-Sequenz sind X und daraus ∆X leicht zu berechnen.
• In den 1980er Jahren waren Verfahren wie Gel-Elektrophorese und Resktriktionsenzyme bekannt.
• Die Genomsequenz war unbekannt.
• Idee: Eine Restriktionskarte liefert teilweise Informationen über die Sequenz.
• Man kann ∆X gut messen (wenn auch eher ohne Vielfachheiten).
• Wenn man daraus X herleiten kann, erhält man Informationen über die GenomSequenz.
• Bemerkung: Restriktionskartierung ist eine spezielle Form der physikalischen Kartierung.
Formale Problemstellung: Partial Digest Problem (PDP)
• Gegeben: die Multimenge(!) L aller n2 paarweisen Distanzen von Objekten, ohne
Fehler.
• Gesucht: Menge X aus n Objekten, so dass L = ∆X.
1.1.2 Fragen zur Eindeutigkeit des PDP
Ist das Problem immer eindeutig lösbar? Es könnte sein, dass verschiedene Mengen X 6= Y
die gleichen Differenzmengen ∆X = ∆Y besitzen.
1.1 Definition (Homometrie). Zwei Mengen X, Y heißen homometrisch, wenn ∆X = ∆Y .
Triviale Homometrie: ∆X = ∆(−X) = ∆(X + c). Kann man ausschließen durch Forderungen:
• 0∈X
• alle Werte in X sind ≥ 0
• Symmetriebrechung durch: Zweitgrößte Zahl in L wird Element von X
Nichttriviale Homometrie: Beispiel: X = { 0, 1, 3, 8, 9, 11, 12, 13, 15 } und Y = { 0, 1, 3, 4, 5, 7, 12, 13, 15 }
(nachrechnen!)
1.2 Satz. Seien U, V Mengen von Zahlen. Sei X = U + V, Y = U − V . Dann sind X, Y
homometrisch.
Beweis. Übungsaufgabe.
Ergebnis: Probleminstanzen mit mehreren Lösungen sind leicht zu konstruieren; Eindeutige
Lösbarkeit kann nicht erwartet werden.
2
1.1 Das Partial Digest Problem (PDP)
1.1.3 Algorithmen
Da es offensichtlich mehrere Lösungen zu einer Eingabe L des PDP geben kann, ist es von
Vorteil zunächst einen (naiven, trivialen) Algorithmus anzugeben, der alle Lösungen aufzählt.
Erinnerung: Die Eingabe L hat Größe Θ(n2 ).
Um Lösungen zu vermeiden, die trivial homometrisch sind, genügt es, wenn wir Kandidaten
X mit { 0, M 0 , M } ⊂ X betrachten. Dabei ist M := max L und M 0 := max(L \ { M }) die
zweitgrößte Zahl in L.
Die folgende Beobachtung schränkt ein, welche Zahlen noch in X vorkommen können.
1.3 Lemma. Ist X eine Lösung des PDP mit Eingabe L, dann gilt x ∈ X =⇒ x ∈ L.
Beweis. Es können nur solche Elemente in X vorkommen, die auch in L enthalten sind, da
die Distanz x − 0 für alle x ∈ X in L existieren muss.
Ein naiver Algorithmus besteht nun darin, alle verschiedenen Teilmengen Y der Größe n − 2
von L \ { M 0 , M } aufzuzählen, daraus X := Y ∪ { M 0 , M } zu bilden und zu prüfen, ob
n
−2
∆X = L gilt. Die Anzahl der zu prüfenden Mengen ist höchstens ( 2 ) ; dies wächst
n−3
überexponentiell mit n.
Ein besserer Algorithmus basiert auf folgender Idee:
• Sei L die Eingabe-Multimenge und M := max(L). Dann gilt x := { 0, M } ⊂ X.
• Reduziere L um die Menge der durch das bisher bekannte x gegebenen Differenzen.
• Betrachte das verbleibende Maximum m in L \ x.
1.4 Lemma. Sofern überhaupt Lösungen X mit x ⊂ X existieren, gilt einer der folgenden
drei Fälle:
1. m ∈ X, aber M − m ∈
/ X (oder m ∈ X und M − m = m)
2. M − m ∈ X, aber m ∈
/X
3. m ∈ X und M − m ∈ X (und M − m 6= m); dies führt nur dann auf eine Lösung,
wenn beide Werte doppelt in L enthalten sind.
Beweis. Der größte verbleibende Wert in L muss dem Abstand eines Punktes von einem
der Enden (0 oder M ) entsprechen – sonst Widerspruch!
Der sich ergebende Algorithmus (den man als erschöpfende Suche mit branch-and-bound
oder backtracking auffassen kann) stammt aus folgendem Artikel: Steven Skiena, Warren
D. Smith, Paul Lemke: Reconstructing Sets from Interpoint Distances (Extended Abstract).
Symposium on Computational Geometry 1990: 332–339.
Sei Delta(y,X) die Menge der Abstände zwischen einem Punkt y und der Menge X. (Skizze
zur Verdeutlichung!)
3
1 Physikalische Kartierung
1
2
3
4
S ki e n aP a r ti a l D ig e s t ( L ):
global M = max ( L )
X = {0 , M }
place ( L \ X , X )
5
6
7
8
9
10
11
12
13
14
place (L , X ):
# versuche alle M \" oglichkeiten , die verbleibenden Distanzen in L
# in die partielle Karte X einzuf \" ugen , solange sich keine Widerspr \" uche erge
if L is empty : output X ; return
m = max ( L )
if Delta (m , X ) is a submultiset of L :
place ( L \ Delta (m , X ) , X union { m })
if Delta ( M - m , X ) is a submultiset of L :
place ( L \ Delta (M -m , X ) , X union {M - m })
15
16
17
Delta (y , X ):
# gibt die Menge der Distanzen {| y - x | : x in X } zur \" uck
Der Algorithmus von Skiena hat im Idealfall eine lineare Laufzeit (in der Eingabegröße),
nämlich dann wenn bei jedem place()-Aufruf nur ein Zweig weiterverfolgt werden muss.
Im schlimmsten Fall werden immer zwei Zweige verfolgt, so dass sich eine Laufzeit von Ω(2n )
ergibt. Aber existieren überhaupt Eingaben mit solch einer worst-case Laufzeit? Diese Frage
wird positiv beantwortet in folgendem Artikel: Zheng Zhang. An exponential example for a
partial digest mapping algorithm. Journal of Computational Biology, 1(3):235-239, 1994.
Dies legt die Fragen nahe:
• Existiert auch ein Algorithmus für PDP mit polynomieller worst-case Laufzeit?
• Kann man beweisen, dass das Problem NP-schwer ist?
Bisher hat man weder einen Algorithmus noch einen Beweis gefunden; die Problemkomplexität ist unbekannt.
Das PDP ist dasselbe Problem, wie das Problem, die Orte der Ausfahrten einer Autobahn
zu bestimmen, wenn man nur die Distanzen zwischen allen Paaren von Ausfahrten kennt.
1.2 Das Double Digest Problem (DDP)
1.2.1 Problemstellung
Ein verwandtes Problem zum PDP ergibt sich, wenn wir statt eines Enzyms zwei verschiedene
Enzyme A,B und statt partiellem Verdau vollständigen Verdau annehmen.
Man erhält statt einer Karte nun drei Karten A, B, X:
1. A enthält die Schnittpositionen nach Vollverdau mit Enzym A
2. B enthält die Schnittpositionen nach Vollverdau mit Enzym B
3. X enthält die Schnittpositionen nach Vollverdau mit beiden Enzymen, X ist die Vereinigung von A und B.
4
1.2 Das Double Digest Problem (DDP)
Daraus erhalten wir Abstands-Multimengen Dist(A), Dist(B), Dist(X) mit
Dist(Z) = { zi+1 − zi : 1 ≤ i ≤ | Z| − 1 } ,
wobei wir die Elemente von Z als aufsteigend geordnet durchnummeriert annehmen.
1.5 Problem (Double Digest Problem, DDP). Gegeben: Multimengen DA , DB , DX von
Abständen. Gesucht: Mengen A, B, X mit DA = Dist(A), DB = Dist(B), DX = Dist(X)
und X = A ∪ B.
•
1.2.2 Algorithmen
Um von Distanzen zu Positionen zurückzukehren, müssen wir die Reihenfolge der Elemente
in den Multimengen der Abstände festlegen. Sei also p = (p[1], ..., p[|D|−1]) eine Permutation
der Elemente einer Multimenge D. Die daraus entstehende Menge nennen wir Positionsmenge
zu D und p:
X
Pos(D, p) := { 0, p[1], p[1] + p[2], . . . ,
| D | p[i] } .
i=1
Es gilt Dist(Pos(D, p)) = D für alle Permutationen p von D. Es gilt in der Regel nicht für
alle Permutationen Pos(Dist(Z), p) = Z !
Beim DDP sei p eine Permutation der Elemente von DA und q eine Permutation der Elemente
von DB . Das DDP fragt nach Paaren (p, q), so dass gilt:
Dist(Pos(DA , p) ∪ Pos(DB , q)) = DX .
Dies führt auf einen erschöpfenden Suchalgorithmus: Probiere alle Paare von Permutationen
(p, q) und teste die genannte Bedingung. Dieser Algorithmus kann verbessert werden, indem
man die Permutationen Element für Element aufbaut und unzulässige Präfixe nicht weiter
verfolgt. Im schlimmsten Fall gewinnt man dadurch aber nichts und man muss |DA |! · |DB |!
Permutationen ausprobieren.
1.2.3 Komplexität
Wie steht es um die Komplexität des DDP-Problems? Betrachten wir das zugehörige Entscheidungsproblem, das nach der Existenz von geeigneten Mengen A, B, X zu den gegebenen
Multimengen DA , DB , DX fragt.
1.6 Satz. Das DDP-Entscheidungsproblem ist NP-vollständig.
Beweis. (1) Das DDP-Entscheidungsproblem ist offensichtlich in NP, da man nach Raten
des korrekten Permutationspaares (p, q) (sofern existent) in Polynomialzeit verifizieren kann,
dass A := Pos(DA , p) und B := P os(DB , q) und X := A ∪ B die Bedingungen einer Lösung
erfüllen.
(2) Wir zeigen: Mit einem korrekten Polynomialzeit-Algorithmus für das DDP-Entscheidungsproblem
können wir auch das Set-Partition-Problem in Polynomialzeit lösen. Dies ist als NP-vollständig
bekannt. Es lautet: Gegeben eine Menge S von Zahlen, gibt es eine disjunkte Zerlegung
5
1 Physikalische Kartierung
S = Q ∪ R, so dass die Summen in Q und R gleich sind? OBdA sei die Summe in S
gerade und gleich s. Wir konstruieren eine DDP-Instanz wie folgt: Wir setzen DA := S,
DB := { s/2, s/2 }, DC := S. Diese Transformation kann offensichtlich in Polynomialzeit
durchgeführt werden. Es ist nun einfach zu zeigen, dass diese DDP-Instanz genau dann eine
Lösung hat wenn das Set-Partition-Problem für S lösbar ist.
1.3 Kartierung durch Hybridisierung und das Consecutive Ones
Problem
1.3.1 Problemstellung
Bei der Kartierung durch Hybridisierung werden die zu sequenzierenden DNA-Fragmente
(Klone, clones”, da sie i.d.R. innerhalb von Bakterien vervielfältigt = kloniert werden) gegen eine Reihe von DNA-Sonden (probes”) hybridisiert, um festzustellen, welche Sonden in
welchen clones vorkommen. Dazu muss man weder die genaue Basenabfolge der Sonden,
noch ihre genaue Position auf dem Genom kennen. Wir gehen aber davon aus, dass jede
Sonde innerhalb des Genoms eindeutig ist. Das Ergebnis ist eine 0/1-Matrix, in der jede
Zeile einem Klon, jede Spalte einer Sonde entspricht (Hybridisierungsmatrix).
1.7 Beispiel (Hybridisierungsmatrix). Wir betrachten 5 Klone und 8 Sonden:
..
1]
2]
3]
4]
5]
..
A
1
0
0
1
0
A
B
1
0
1
1
0
B
C
0
0
0
1
0
C
D
0
1
0
0
1
D
E
0
1
0
0
0
E
F
1
0
0
1
0
F
G
0
1
0
0
0
G
H
0
0
1
0
1
H
♥
Die Frage ist: Wie sind die Sonden auf dem Genom angeordnet und wie überlappen die
sich die Klone? Welche Klone sollte man tatsächlich sequenzieren, um das gesamte Genom
abzudecken?
Da wir davon ausgehen, dass jeder Klon ein zusammenhängendes Stück DNA aus dem Genom repräsentiert, sollten die 1-Einträge in der Matrix (bei richtiger Anordnung der Sonden)
jeweils zusammenhängend auftreten. Wir gehen dabei davon aus, dass jede Sonde genomweit eindeutig ist und dass die Hybridisierungsmatrix fehlerfrei ist. Das führt abstrakt auf
folgendes Problem.
1.8 Problem (Consecutive Ones Problem, Problem aufeinanderfolgender Einsen). Gegeben:
eine 0/1-Matrix der Größe n × m; oBdA besteht keine Zeile nur aus 0 oder nur aus 1. Fragen:
Gibt es eine Permutation der m Spalten, so dass in der permutierten Matrix in jeder Zeile
die Spaltenindizes der Einsen ein Intervall bilden? Welche Permutationen (wenn es welche
gibt) erfüllen dies?
•
6
1.3 Kartierung durch Hybridisierung und das Consecutive Ones Problem
1.9 Definition (C1P). Eine 0/1-Matrix, für die das Consecutive Ones Problem eine nichtleere Lösungsmenge hat, hat die Eigenschaft aufeinanderfolgender Einsen (Consecutive Ones
Property, C1P) Eine 0/1-Matrix mit C1P, bei der in jeder Zeile die Einsen aufeinander folgen,
ist in Consecutive Ones Form (C1F).
1.3.2 pq-Bäume
Es ist überraschend, dass es eine effiziente Lösung des Consecutive Ones Problems gibt:
Man kann (bei geschickter Implementierung, die wir nicht diskutieren werden) in Linearzeit
entscheiden, ob eine Matrix die C1P besitzt. Linearzeit heißt konkret O(m+n+k) Zeit, wobei
n × m die Matrixdimension ist und k die Anzahl der Einsen (es wird dabei angenommen,
dass keine volle Matrix, sondern nur Mengen der 1-Indizes angegeben werden). In derselben
Zeit kann man die Menge der Permutationen, die die Matrix in C1F überführen, kompakt
angeben.
Grundidee:
• Wir bearbeiten die Zeilen der Matrix nacheinander. Jede Zeile enthält gewisse Einschränkungen bezüglich der möglichen Permutationen.
• Wir verwalten zu jedem Zeitpunkt (Schritt) t eine Permutationsmenge, die alle Permutationen, die die Zeilen 1 bis t der Eingabematrix in C1F überführen, charakterisiert.
• Wir beginnen mit der Menge aller m! Permutationen auf den m Spalten. Die Bearbeitung jeder Zeile schränkt die Menge weiter ein.
• Wir verwenden eine spezielle Datenstruktur zur Verwaltung der Permutationsmenge:
einen sogenannten pq-Baum.
1.10 Definition (pq-Baum). Ein pq-Baum ist entweder der leere Baum oder ein geordneter
gerichteter Baum mit einer Wurzel r, einer endlichen Blattmenge (oBdA { 1, . . . , m }) und
einer Zuordnung jedes inneren Knoten zum Typ “p” oder “q”.
Die Semantik dahinter ist folgende:
• ein Typ-“p” Knoten repräsentiert eine beliebige Permutation seiner Kinder, d.h., die
Reihenfolge der Kinder darf beliebig umgeordnet werden,
• ein Typ-“q” Knoten legt die Ordnung seiner Kinder fest, aber die Reihenfolge darf
invertiert werden.
Darstellung:
• Ein Typ-“p” Knoten wird durch einen runden Knoten bzw. durch ein rundes Klammerpaar ( ), das die Liste seiner Kinder umschließt, dargestellt.
• Ein Typ-“q” Knoten wird durch einen eckigen Knoten bzw. durch ein eckiges Klammerpaar [ ], das die Liste seiner Kinder umschließt, dargestellt.
1.11 Definition (durch einen pq-Baum repräsentierte Permutationen). Die Front eines pqBaums erhält man, indem man die Blattbeschriftungen von links nach rechts liest. (Dies ist
eine Permutation der Blattmenge.) Die durch einen pq-Baum repräsentierten Permutationen
sind alle Fronten, die sich durch erlaubte Umordnungen an den p- und q-Knoten erreichen
lassen.
7
1 Physikalische Kartierung
1.12 Definition (universeller pq-Baum). Wenn noch keine Einschränkungen an die Permutationen bekannt sind, wenn der Baum also die Menge aller Permutationen repräsentiert,
sprechen wir vom universellen pq-Baum auf der Blattmenge.
1.13 Beispiel (pq-Baum). Betrachte ((D,E,G),[H,B,(A,F),G]). Wie viele Permutationen
auf { A, . . . , H } werden hierdurch repräsentiert? Der universelle pq-Baum auf der gleichen
Blattmenge lautet (A,B,C,D,E,F,G,H) und repräsentiert alle 8! Permutationen.
♥
1.3.3 Der Reduce-Algorithmus: Übersicht
Die Grobstruktur des Algorithmus ist nun folgende:
1
2
3
4
5
6
7
8
C o n s e c u t i v e O n e s P r o p e r t y (m , Restrictions ):
# Die Blattmenge ist {1 ,2 ,... , m }.
# Restrictions ist eine Liste von Teilmengen von {1 ,... , m } ,
# entspricht den 1 - Eintraegen der Zeilen der Matrix
T = UniversalTree ( m )
for R in Restrictions :
T = Reduce (T , R )
return T
Der zu Beginn universelle Baum wird also nach und nach eingeschränkt. In der Funktion
Reduce(T,R) müssen die Restriktionen es aktuellen Baums T erhalten bleiben und die durch
R zusätzlich bestimmten hinzukommen. Ist dies nicht mehr möglich, erhalten wir irgendwann
den leeren Baum zurück. Weitere Reduce-Anwendungen liefern dann ebenfalls stets den
leeren Baum zurück.
Wir überlegen, wie ein einzelner Reduce-Schritt aussieht, damit er die o.g. Anforderungen
erfüllt. Zuerst müssen wir feststellen, wo sich die Blätter befinden, die laut der aktuellen
Restriktion (Matrixzeile) R nebeneinander liegen sollen.
1. Ist T bereits der leere Baum, hat das Problem keine Lösung und wir liefern T zurück.
2. Wir markieren die durch R gegebenen Blätter als “voll”, die anderen Blätter als “leer”.
3. Wir bestimmen den kleinsten Teilbaum tree(R), in dem sich alle “vollen” Blätter
befinden, und dessen Wurzel root(R).
4. Wir arbeiten uns bottom-up durch tree(R), bis root(R) erreicht wird, und sorgen in
jedem Knoten dafür, dass ”volleËlemente adjazent sind. Hierzu wenden wir gewisse
Regeln an, die wir unten separat für p-Knoten und für q-Knoten aufstellen. Kann
einmal keine Regel angewendet werden, so hat das Problem keine Lösung und wir
liefern einen leeren Baum zurück. Andernfalls geben wir den durch die Anwendung der
Regeln modifizierten Baum zurück, sobald root(R) bearbeitet wurde.
Das “Geheimnis” liegt also in den Regeln Pi für p-Knoten und Qi für q-Knoten. Jede Regel
stellt sicher, dass in der dort genannten Situation die Voraussetzungen dafür geschaffen
werden, dass am Ende alle “vollen” im betreffenden Knoten Knoten nebeneinanderstehen.
8
1.3 Kartierung durch Hybridisierung und das Consecutive Ones Problem
1.3.4 Der Reduce-Algorithmus: Regeln
Wir nennen jetzt die Regeln im Detail. Blätter und p-Knoten können nur “voll” oder “leer”
sein, aber q-Knoten können auch “partiell” sein. Im folgenden sei stets x der aktuell betrachtete Knoten. Die Regeln P0 bis Px sind für p-Knoten und die Regeln Q0 bis Qx für
q-Knoten.
Regeln für p-Knoten:
P0 : Alle Kinder von x sind “leer”: Dann setze x auch auf “leer”.
P1 : Alle Kinder von x sind “voll”: Dann setze x auch auf “voll”.
P2 : Ein Teil der Kinder von x ist “leer”, der andere Teil “voll”, und es ist x = root(R):
Die “vollen” Kinder von x werden als Kinder eines neuen “vollen” p-Knoten y unter x
zusammengefasst; die leeren Kinder bleiben direkte Kinder von x.
P3 : Ein Teil der Kinder von x ist “leer”, der andere Teil “voll”, und es ist x 6= root(R): Da
noch andere “volle” Knoten außerhalb des Teilbaums unter x existieren und wir daher
im weiteren Verlauf Knoten oberhalb von x betrachten, muss x als “partiell” markiert
werden. Daher machen wir x zu einem partiellen q-Knoten mit 2 neuen p-Knoten als
Kindern (bei nur 2 Kindern spielt es keine Rolle, ob x ein p-Knoten oder ein q-Knoten
ist, aber nur q-Knoten lassen wir als partiell zu). Der eine neue p-Knoten unter x erhält
die leeren vormaligen Kinder von x; der andere die vollen.
P4 : Ein Teil der Kinder von x ist “leer”, ein Teil “voll”, und es gibt genau ein partielles
Kind z von x, dessen volle Kinder sich außen befinden, und es ist x = root(R): Da
oberhalb von x nichts zu tun ist, genügt es, die vollen Kinder mit dem partiellen Kind
zu integrieren; x selbst muss nicht partiell gemacht werden. Die vollen Kinder von x
kommen als Kinder an einen neuen vollen p-Knoten, der außen an z neben den vollen
Kindern hängt.
P5 : wie P4 , aber es ist x 6= root(R). Hierbei wird x zu einem partiellen q-Knoten. Kinder
sind ein p-Knoten, an dem die leeren bisherigen Kinder von x hängen, gefolgt von allen
Kindern von z (in der Reihenfolge leer, voll), gefolgt von einem weiteren p-Knoten, an
dem die vollen bisherigen Kinder von z hängen. Man beachte, dass nun in x, wie vorher
in z vorausgesetzt wurde, die vollen Kinder außen stehen.
P6 : Ein Teil der Kinder von x ist “leer”, ein Teil “voll”, und es gibt genau zwei partielle
Kinder y, z von x, dessen volle Kinder sich jeweils außen befinden, und es ist x =
root(R): Die beiden partiellen und die vollen Kinder müssen zu einem partiellen qKnoten zusammengefasst werden, in dem alle vollen Knoten benachbart sind. Das
heißt, x bleibt ein p-Knoten mit folgenden Kindern: alle leeren bisherigen Kinder von x
und ein partieller q-Knoten u, der seinerseits folgende Kinder hat: zunächst die leeren
Kinder von y, dann die vollen Kinder von y (deren Reihenfolge ist durch y genau
vorgegeben), dann ein p-Knoten mit den vollen bisheringen Kindern von x, dann die
vollen Kinder von z, dann die leeren Kinder von z (wiederum ist die Reihenfolge durch
z genau vorgegeben).
In allen anderen Fällen (mindestens 3 partielle Kinder, oder 2 partielle Kinder und x 6=
root(R)) keine Chance besteht, alle “vollen” Knoten nebeneinander anzuordnen. Also ist
das Problem, wenn keine der P-Regeln in einem p-Knoten anwendbar ist, nicht lösbar.
Regeln für q-Knoten:
9
1 Physikalische Kartierung
Q0 : Alle Kinder von x sind “leer”: Dann setze x auch auf “leer”.
Q1 : Alle Kinder von x sind “voll”: Dann setze x auch auf “voll”.
Q2 : Ein Teil der Kinder von x ist “leer”, ein Teil “voll” und es gibt höchstens ein partielles
Kind, dessen volle Kinder außen stehen: Das partielle Kind wird in x hineingehoben,
wodurch x selbst partiell wird. Dadurch stehen in x wiederum volle Knoten außen.
Q3 : Ein Teil der Kinder von x ist “leer”, ein Teil “voll”, es gibt genau zwei partielle Kinder
und x = root(R): Beide partiellen Kinder werden in x hineingehoben, so dass danach
in x alle vollen Knoten benachbart sind. (Dies funktioniert nur, wenn die vollen Knoten
so angeordnet werden können, dass sie nebeneinander “innen” stehen.
Wieder gilt, dass in allen anderen Fällen (mindestens drei partielle Kinder oder zwei partielle Kinder und x =
6 root(R)) keine Chance besteht, alle “vollen” Knoten nebeneinander
anzuordnen. Also ist das Problem, wenn keine der Q-Regeln in einem q-Knoten anwendbar
ist, nicht lösbar.
Um die Korrektheit des Reduce-Algorithmus zu beweisen, muss man insgesamt die Invariante beweisen, dass nach einer Reduce-Sequenz mit Mengen R1 , . . . , Rn genau die dadurch
gegebenen Adjazenzen eingehalten werden, aber auch nicht mehr. Dazu zeigt man:
1. Reduce(T, R) erzwingt die Adjazenzen in R.
2. Reduce(T, R) vergisst keine bereits in T enthaltenen Adjazenzen.
3. Reduce(T, R) schränkt die Menge der Permutationen nicht unnötig ein.
Während die ersten beiden Punkte langwierig, aber standardmäßig per Induktion durch
Fallunterscheidung gemäß der Regeln zu beweisen sind, tut man sich beim letzten Punkt
schwerer.
1.3.5 Ein Beispiel
siehe Übungen.
10
KAPITEL
2
DNA-Microarrays und SBH
2.1 DNA-Microarrays
2.1.1 Hauptphasen eines Microarray-Experiments
Ein Experiment mit Microarrays läuft in 4 Phasen ab.
1. Experimentelles Design: Was ist die biologische Fragestellung; wie viele und welche
Experimente macht man, um diese gut beantworten zu können? Hier ist i.d.R. Expertenwissen von Statistikern gefragt.
2. Durchführung der experimentellen Arbeiten: Extrahieren der RNA/cDNA-Probe aus
den Zellen, Amplifizierung und Markierung derselben mit fluoreszierenden Farbstoffen,
Vorbereiten des Microarrays, Aufbringen der Probe auf das Array, Hybridisierung, Waschen, Aufnahme eines Bildes mit Intensitäten des fluoreszierenden Farbstoffes (i.d.R.
vollautomatisiert).
3. Datenanalyse: Aus den Bilddaten werden biologisch interpretierbare Informationen
gewonnen. Hierbei sind sowohl statistisches Wissen als auch Informatik-Methoden gefragt. Genaueres siehe unten.
4. Biologische Interpretation: Hierbei sieht man, ob und inwieweit die Anfangsfrage beantwortet werden konnte, und welche Erkenntnisse daraus gewonnen werden bzw. welche
Fragen sich anschließen. Die Interpretation übernimmt i.d.R. ein Biologe oder Mediziner, ein Spezialist auf dem jeweiligen Fachgebiet.
11
2 DNA-Microarrays und SBH
2.1.2 Schritte der Microarray-Datenanalyse
Für die Informatik sind vor allem die Schritte der Datenanalyse interessant. Die Eingabe ist
eine (sehr große) Bilddatei mit einer Aufnahme aller Spots, z.B. im BMP-Format (unkomprimiert). Es folgt eine Übersicht über die einzelnen Schritte:
1. Bildanalyse: Spot-Erkennung, Quantifizierung der Intensitäten für jeden Spot. Ausgabe: Ein Intensitätswert pro Spot (pro Chip).
2. Hintergrund-Korrektur: Es ist zu erwarten, dass an jedem Spot unspezifische Hybridisierung stattfindet, zusätzlich zu einem eventuellen Signal. In diesem Schritt wird für
jeden Spot die Hintergrundintensität geschätzt und der Intensitätswert entsprechend
korrigiert. Ausgabe: Ein Intensitätswert (Signal) pro Spot pro Chip.
3. Normalisierung: Ein sinnvolles Experiment besteht aus mehr als einer Hybridisierung;
meist will man zwei oder mehrere Bedingungen, denen man die Zellen aussetzt, vergleichen (Tumorgewebe gegen normal; Hitzeschock gegen normal; ...). Hierzu muss
sichergestellt werden, dass die Signalwerte vergleichbar sind. Dazu dient die Normalisierung. Einfaches Beispiel: Die meisten Werte auf Chip B sind doppelt so gross wie
auf Chip A. Man sollte also alle Werte auf Chip B halbieren. Warum ist das sinnvoll?
Es ist biologisch unplausibel, dass alle Gene doppelt so stark transkribiert werden;
plausibler ist, dass z.B. länger hybridisiert oder weniger gründlich gewaschen wurde,
so dass alle Intensitäten stärker sind. Ausgabe: Ein Intensitätswert pro Spot pro Chip.
4. Zusammenfassen von Spots: Jedes Transkript (Gen) wird i.d.R. durch mehrere (z.B.
10) Sonden auf dem Chip abgedeckt, die evtl. unterschiedlich stark binden. In diesem
Schritt werden die jeweilgen 10 Werte zu einem Transkript-spezifischen Wert zusammengefasst. Ausgabe: Ein Expressionswert pro Transkript pro Chip.
5. Ggf. kann sich erneut ein Normalisierungsschritt (nun auf Transkript- statt auf Sonden/SpotEbene anschließen). Ausgabe: Ein Expressionswert pro Transkript pro Chip.
6. Identifikation interessanter Transkripte (i.d.R. differentiell exprimierter Transkripte):
Aus den normalisierten Transkript-Expressionswerten ermittelt man, welche Transkripte sich unter unterschiedlichen Bedingungen signifikant unterschiedlich verhalten (statistische Tests). Dies ist dann möglich, wenn die einzelnen Hybridisierungen bereits
verschiedenen Klassen zugeordet worden sind (z.B. Tumor gegen normal). Ausgabe:
Nach Signifikanz sortierte Liste der Transkripte (pro Klasseneinteilung).
7. (Bi-)Clustering von Transkripten und Genen: Wenn noch keine Klassifikation vorliegt
oder man neue Klassen in den Daten entdecken will, sucht man mit Hilfe von Biclusteringverfahren gleichzeitig eine Gruppe von Transkripten und eine Partition der Daten,
so dass die ausgewählten Transkripte die Partition gut trennen. Ausgabe: mehrere Paare aus je einer Liste von Transkripten und einer Partition der Hybridisierungen, ggf.
sortiert nach einem zu definierenden Qualitätskriterium.
8. Prädiktion: Anhand der ausgewählten Transkripte (“features”) sollen neue Fälle (Hybridisierungen) in eine der existierenden Klassen eingeteilt werden (Klassifikationsproblem).
Bei den Schritten 1.–5. spricht man von Low-Level-Analyse (Technologie-spezifische Modellierung, effiziente Algorithmen, Statistik) Bei den Schritten 6.–8. spricht man von verschiedenen Aspekten der High-Level-Analyse (Statistik, Clustering, Klassifikation: Machine
12
2.1 DNA-Microarrays
Learning-Methoden). Bei der Auswahl ı̈nteressanterTranskripte spricht man auch von feature
selection.
2.1.3 Low-Level-Analyse anhand von Beispielen
Wir betrachten jetzt nur noch die Low-Level-Analyse aus Sicht der Bioinformatik. Es gibt
unzählige Kombinationen von Verfahren, die man in jedem einzelnen Schritt anwenden kann.
Wir stellen hier einige wenige(!) Möglichkeit beispielhaft vor und lassen dabei die Bildanalyse außer Acht. (Häufig wird für die Bildanalyse die vom Hersteller mitgelieferte Lösung
verwendet.) Details dazu gibt es in Bildanalyse-Vorlesungen, Details zur High-Level-Analyse
in KI- und ML-Vorlesungen.
Eine hier u.a. betrachtete Prozedur heißt RMA (Robust Multichip Analysis) und besteht
aus den 3 Schritten Hintergrundkorrektur, Normalisierung, Zusammenfassung.
Eine andere Sammlung von Verfahren ist MAS. MAS ist die Software “MicroArray Suite” des
R Man kann sie als komplette Pipeline einsetzen oder eigene
Array-Herstellers Affymetrix.
Verfahren für die einzelnen Schritte verwenden.
MAS-Hintergrundkorrektur. Die Hintergrundkorrektur findet auf jedem Chip separat statt.
Eingabe: Ein (Roh-)Intensitätswert pro Spot; z.B. 16-bit unsigned int. Ausgabe: Ein (korrigierter) Intensitätswert pro Spot; z.B. float oder double.
Bei der MAS-Hintergrundkorrektur wird insbesondere berücksichtigt, dass das unspezifische
Signal (Hintergrund) in verschiedenen Bereichen des Chips verschieden stark sein kann. Dazu
wird der Chip z.B. in 4x4 (=16) Felder eingeteilt (oder auch mehr). In jedem Bereich wird das
2%-Quantil (also die 2% niedrigsten Werte) als Hintergrund angesehen. Die unterschiedliche
Behandlung in jedem Feld kann zu Problemen an den Feldgrenzen führen. Daher wird der
Hintergrundwert für jeden Spot als gewichtetes Mittel der Hintergrundwerte der umliegenden
Felder berechnet. Die Gewichte ergeben sich aus den Distanzen zu den Feldmittelpunkten.
Von jedem Spot wird der Hintergrundwert abgezogen. Negative Werte und Werte nahe bei
Null werden auf einen Mindestwert (z.B. 0.01) gesetzt.
RMA-Hintergrundkorrektur. Bei RMA werden keine lokalen Effekte berücksichtigt, sondern es wird nur ein globales Modell für den ganzen Chip aufgestellt. Das Modell sagt:
• Die gemessene Intensität Y an jedem Spot ist eine Summe aus zwei Zufallsvariablen:
Hintergrund B und Signal S.
• Alle Spots sind unabhängig. An jedem Spot sind B und S unabhängig.
• Der Hintergrund folgt einer Normalverteilung mit unbekannten Parametern Mittelwert
µ und unbekannter Varianz σ 2 .
• Das Signal folgt einer Exponentialverteilung mit unbekanntem Parameter λ:
Y = B + S;
B ∼ N (µ, σ 2 );
S ∼ Exp(λ).
13
2 DNA-Microarrays und SBH
Die Wahrscheinlichkeitsdichten von B und S sind also bekannt, hängen aber von den unbekannten Parametern ab. Die Dichte von Y berechnet sich als Faltung derer von B und S.
(Die Dichte der Summe von unabhängigen ZVen ist die Faltung der einzelnen Dichten.) Sie
hängt von den drei Parametern ab.
Diese Parameter können numerisch mit Hilfe der Maximum-Likelihood-Methode aus den
Daten (vorhandenen Y -Werten) geschätzt werden. Das ist aus numerischer Sicht nicht unproblematisch, da viele Parameterkombinationen in etwa gleich plausibel sein können.
Wenn die Parameter bekannt sind, hat man immer noch das Problem, dass man zu einem
einzelnen Spot-Wert Y nicht konkret die Anteile S und B angeben kann (diese sind ja jeweils
zufällig).
Man zieht sich elegant aus der Affäre, indem man die bedingten Erwartungswerte E[S | Y =
y] berechnet und als Schätzung für die Signalkomponente S bei gegebenem Y -Wert y nimmt.
Normalisierung durch lineare Transformation. Normalisierung erstreckt sich über alle
Chips/Hybridisierungen, die zu einem Experiment gehören. Eingabe: Ein Intensitätswert
pro Spot pro Chip (nicht vergleichbar über Chips). Ausgabe: Ein Intensitätswert pro Spot
pro Chip (vergleichbar über Chips).
Grundsätzlich kommt es bei der Normalisierung darauf an, abzuwägen: In welchem Umfang
will man alle Chips einer vorgegebenen Referenz angleichen, und in welchem Umfang will man
die Originalwerte beibehalten? Zu starke Normalisierung kann biologisch interessante Signale
vernichten. Zu schwache Normalisierung lässt Unterschiede zwischen Chips auftreten, die
uninteressant sind (d.h., die nicht durch biologische Unterschiede zu erklären sind, sondern
durch Unterschiede im experimentellen Protokoll).
Eine schwache Form der Normalisierung ist die Angleichung der Lage und Skala an eine
Referenz; man spricht von affiner Transformation. Als Lageparameter µ kann beispielsweise
der Mittelwert oder der Median aller Intensitäten verwendet werden; als Skalenparameter σ
beispielsweise die Standardabweichung (Wurzel der Varianz) oder der Interquartilsabstand.
Die Referenzwerte seien µ0 und σ 0 . Auf einem Chip mit gemessenen Intensitäten x und daraus
berechneten Parametern µ, σ korrigiert man wie folgt:
x 7→
(x − µ) · σ 0
+ µ0 .
σ
Diese affine Transformation bringt zunächst die Lage auf 0 und die Skala auf 1, um dann die
Skala und Lage auf die gewünschten Werte abzubilden. Häufig werden danach noch kleine xWerte (z.B. kleiner als 1) auf einen Minimalwert (z.B. 1) gesetzt und ggf. die Transformation
wiederholt. Woher bekommt man die Referenz-Werte? Entweder diese werden vorgegeben,
oder man nimmt den Durchschnitt oder den Median über alle Datensätze.
Es gibt auch andere Verfahren, eine affine Transformation zu berechnen, die weniger anfällig
gegenüber Ausreißern ist.
14
2.2 Sequencing by Hybridization (SBH)
RMA-Normalisierung (Quantilnormalisierung). Bei RMA wird eine stärkere Form der
Normalisierung verwendet, die Quantilnormalisierung: Jedes(!) Quantil eines Chip-Datensatzes
wird auf das entsprechende Quantil der Referenz gesetzt. Das bedeutet, was auch immer der
r-t kleinste Wert des Datensatzes ist, er wird auf den r-t kleinsten Wert der Referenz gesetzt (für alle r). In der Programmiersprache R ist dies ein Einzeiler: x[order(x)] = ref.
Hierbei nehmen wir an, dass x ein Vektor mit den Originaldaten ist und ref die der Größe
nach sortierten Referenzdaten. Der Aufruf order(x) liefert eine Permutation zurück, die das
Argument x der Größe nach sortiert.
Beispiel: Die Referenz sei (sortiert) (1, 2, 3, 4), und x = (17, 9, 56, 34). Nach der Normalisierung besteht x aus den Werten { 1, 2, 3, 4 }. Die Reihenfolge ergibt sich daraus, dass die
Ordnung der Zahlen in x nicht verändert werden darf. Nach der Normalisierung ist also
x = (2, 1, 4, 3).
Einfache Methoden der Zusammenfassung. Hat man n Werte, die im Prinzip das Gleiche messen sollen (nämlich den Expressionswert desselben Gens), so kann man diese am
einfachsten durch ihren Mittelwert zusammenfassen.
Der Mittelwert ist jedoch nicht robust gegenüber Ausreißern. Schon ein einzelner extremer
Wert kann den Mittelwert stark verfälschen (vgl. die Mittelwerte von (34,32,35,33,31) und
(34,32,350,33,31)). So etwas passiert leicht durch einzelne defekte Spots.
Robuster ist ein sogenanntes getrimmtes Mittel, bei dem vor der Mittelwertbildung ein gewisser Anteil der extremsten (kleinsten und grössten) Beobachtungen gestrichen wird. Streicht
man alle bis auf eine oder (bei gerade Anzahl) zwei Beobachtungen, so erhält man den Median, ein robustes Maß für die Lage eines Datensatzes, das allerdings auch viele Informationen
aus dem Datensatz nicht benutzt.
RMA-Zusammenfassung. Keine der einfachen Methoden (getrimmtes Mittel / Median)
berücksichtigt, dass unterschiedliche Sonden aufgrund ihrer Zusammensetzung (z.B. GCGehalt) unterschiedlich stark an ihre Zieltranskripte binden. Hätte man Informationen der
Art “Sonde b bindet immer doppelt so stark wie Sonde a”, könnte man diese benutzen und
vor der Zusammenfassung herausrechnen. Aber woher kann man diese Information bekommen? TODO: Weitere Details folgen.
2.2 Sequencing by Hybridization (SBH)
2.2.1 Hintergrund und Problemstellung
Ende der 80er Jahre war die Sanger-Sequenzierung relativ langsam und teuer. Daher suchte
man nach möglichen Alternativen. Eine Idee dabei war, dass man für eine kleine Oligonukleotidlänge L (ca. 8–11) ein universelles Microarray herstellen kann, also ein DNA-Microarray,
das alle 4L Oligonukleotide der Länge L enthält. Man könnte dann eine (nicht zu lange)
DNA-Sequenz an dieses Array hybridisieren und testen, welche Teilstrings der Länge L in
der Sequenz vorkommen. Daraus kann man möglicherweise auf die DNA-Sequenz schließen.
Man spricht daher von Sequenzierung durch Hybridisierung (Sequencing by Hybridization,
15
2 DNA-Microarrays und SBH
SBH). Diese Ideen wurden entwickelt von Bains and Smith (1988), Drmanac et al. (1989),
Lysov et al. (1988), Southern (1988).
Wegen der unterschiedlichen GC-Gehalte hätten die Oligos auf den universellen Arrays jedoch sehr verschiedene Hybridisierungseigenschaften. Bis heute konnte sich die SBH-Idee
nicht praktisch durchsetzen. Dass dies in Zukunft noch geschieht, ist extrem unwahrscheinlich, da es nun jede Menge zuverlässige Hochdurchsatz-Technologien zur DNA-Sequenzierung
gibt. Die verwewndeten algorithmischen Ideen waren jedoch sehr fruchtbar und haben in der
Zwischenzeit viele weitere Anwendungen gefunden, so dass es sich lohnt, sie zu beleuchten.
Ferner haben Sequenzier-Chips durchaus andere Anwendungen im Bereich der Re-Sequenzierung
gefunden: Wenn man die Sequenz im Prinzip schon kennt und nur prüfen möchte, ob der
bekannte Wildtyp vorliegt oder Mutationen aufgetreten sind, kann man sie (im Gegensatz
zur de novo Sequenzierung) gut einsetzen. Dabei können spezifischere längere Oligos (20bis 30-mere) verwendet werden, da nicht alle Oligos auf dem Chip sein müssen, sondern nur
die perfekten Matches der Referenz-Sequenz und Variationen davon. Sogenannte SNP-Arrays
R enthalten zahlreiche Paa(SNP für single nucleotide polymorphism) der Firma Affymetrix
re von 25-meren, von denen ein Oligonukleotid eine bestimmte Stelle im Referenzgenome
repräsentiert und das andere eine bekannte mögliche Mutation an dieser Stelle. Wenn man
ganze Genome mit einem Array abdeckt, spricht man von einem (genome) tiling array (to
tile s.th.: etwas kacheln, Fliesen legen).
Wir betrachten jetzt das exakte SBH-Problem, bei dem wir davon ausgehen, die exakten
Vielfachheiten jedes enthaltenen L-mers zu kennen. Formal ergibt sich das Problem, einen
String anhand der Kenntnis über enthaltene Teilstrings zu rekonstruieren:
2.1 Problem (SBH). Gegeben: Vielfachheiten jedes L-mers in einer unbekannten DNASequenz s ∈ Σ∗ . Diese 4L Zahlen nennt man das L-Spektrum von s. Gesucht: s ∈ Σ∗ .
•
Diese Problemstellung ist relativ praxisfern, da man anhand der Hybridisierung nicht genau
ermitteln kann, wie oft ein L-mer in s vorkommt. Andere Varianten des Problems gehen daher
nur davon aus, dass man eine binäre Entscheidung zu jedem L-mer bekommt (kommt nicht
vor oder kommt mindestens einmal vor) und fragen nach jeder Lösung (mit einer gewissen
Mindest- und Höchstlänge). Statistische Varianten nehmen an, dass eine (gute) Schätzung
für die Vielfachheiten gegeben ist und fragen nach der plausibelsten Rekonstruktion von s.
Dabei sind natürlich zunächst geeignete Fehlermodelle zu entwickeln und zu formalisieren.
Fehlerquellen sind folgende: Es können falsch positive (FP) Hybridisierungen zwischen s und
Oligos auftreten, die nicht perfekt in s enthalten sind. Es können weiter falsch negative (FN)
Hybridisierungen auftreten, d.h., ein in s vorkommendes Oligo bindet nicht oder nicht stabil
genug, warum auch immer. Schon kleine Fehlerraten führen dazu, dass mehrere Lösungen
plausibel sind; somit kann s nicht eindeutig rekonstruiert werden.
2.2.2 Algorithmen für das exakte SBH-Problem
Es hilft, sich das exakte SBH-Problem an folgenden zwei Beispielen zu verdeutlichen:
2.2 Beispiel (3-Spektren).
• Spektrum (jeweils Vielfachheit 1): ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG
16
2.2 Sequencing by Hybridization (SBH)
• Spektrum (jeweils Vielfachheit 1): ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT
♥
(Ineffiziente) Modellierung als Hamilton-Pfad-Problem. Es scheint natürlich, das Problem auf folgende Weise in ein Problem auf einem gerichteten Graphen G = (V, E) zu
übersetzen:
• Definiere die Knotenmenge V als die Menge aller L-mere entsprechend ihrer Vielfachheit (wenn z.B. ACGT dreimal vorkommt, gibt es drei Knoten in V , die ACGT
entsprechen).
• Ziehe Kanten zwischen Knoten u → v, falls das (L − 1)-Suffix von u gleich dem (L − 1)Präfix von v ist.
Das Problem, aus den L-meren die Sequenz s zu rekonstruieren, führt auf das bekannte
Problem, einen Hamilton-Pfad in G zu finden.
2.3 Problem (Hamilton-Pfad). Gegeben: gerichteter Graph G = (V, E). Gesucht: Pfad in
G, der alle Knoten genau einmal besucht.
•
Es ist instruktiv, Beispiel 2.2 als Hamilton-Pfad-Problem zu formulieren.
Das Problem ist nah verwandt mit dem Traveling-Salesperson-Problem und NP-schwer.
Heißt das, dass SBH auch NP-schwer ist? Nein! Es könnte ein (nicht stichhaltiges) Indiz
dafür sein, aber eventuell haben wir nur ein einfaches Problem in ein schwieriges umformuliert! In der Tat ist dies hier der Fall.
(Effiziente) Formulierung als Euler-Pfad-Problem. Wir versuchen es anders: Wir definieren einen gerichteten Graphen G = (V, E) mit gewichteten Kanten E.
2.4 Definition (De Bruijn Graph eines L-mer Spektrums). Den folgendermaßen definierten
Graphen nennt man De Bruijn-Graphen eines gegebenen L-mer-Spektrums.
• Definiere V als die Menge aller (L − 1)-mere.
• Ziehe eine Kante u → v, falls das (L−2)-Suffix von u gleich dem (L−2)-Präfix von v ist.
Diese Kante entspricht dem L-mer, das sich aus der überlappenden Konkatenation von
u und v ergibt, und erhält die entsprechende Vielfachheit im Spektrum als Gewicht.
Diese Umformulierung führt auf ein Euler-Pfad-Problem:
2.5 Problem (Euler-Pfad). Gegeben: gerichteter Graph G = (V, E) mit Kantengewichten
(natürliche Zahlen). Gesucht: Pfad, der jede Kante genau so oft benutzt, wie ihr Gewicht
vorschreibt.
•
Das Problem geht auf Leonhard Euler zurück, der das Königsberger Brückenproblem1 formulierte und löste.
1
siehe auch http://de.wikipedia.org/wiki/K\%C3\%B6nigsberger_Br\%C3\%BCckenproblem
17
2 DNA-Microarrays und SBH
Es ist an dieser Stelle nützlich, Beispiel 2.2 als Euler-Pfad-Problem zu formulieren. Wir
werden nun sehen, dass SBH-Problem in dieser Formulierung einfach zu lösen ist.
Wir werden eine Kante mit Gewicht n auch als n Kanten zwischen den gleichen Knoten
auffassen. Wir setzen weiter voraus, dass der betrachtete Graph zusammenhängend ist.
2.6 Definition (Euler-Kreis, Euler-Graph, Euler-Graph). Ein Pfad in einem Graphen heißt
Euler-Pfad, wenn er jede Kante genau einmal benutzt. Ein Kreis (Pfad mit dem gleichen
Anfangs- und Endpunkt) in einem Graphen heißt Euler-Kreis, wenn er jede Kante genau
einmal benutzt. Ein Graph heißt Euler-Graph, wenn er einen Euler-Kreis enthält.
2.7 Definition (Eingrad, Ausgrad, (semi-)balancierte Knoten). Der Eingrad eines Knoten v
in einem gerichteten Graphen ist die Anzahl der in v endenden Kanten und wird mit indeg(v)
bezeichnet. Analog ist outdeg(v) der Ausgrad, die Anzahl der aus v ausgehenden Kanten.
Ein Knoten v heißt balanciert, wenn indeg(v) = outdeg(v). Er heißt semi-balanciert, wenn
| indeg(v) − outdeg(v)| = 1.
2.8 Satz (Satz von Euler). Ein Graph ist ein Euler-Graph genau dann, wenn jeder seiner
Knoten balanciert ist.
Beweis. Dies ist ein Klassiker der Graphentheorie. Ist der Graph ein Euler Graph, existiert
ein Euler-Kreis. Damit sind alle Knoten balanciert. Die Rückrichtung folgt durch Angabe
einer Konstruktionsvorschrift für Euler-Kreise, wenn alle Knoten balanciert sind: Beginne
an einem beliebigen Knoten v0 und folge zufällig gewählten bisher unbenutzten Kanten, bis
ein Knoten erreicht wird, von dem keine unbenutzten Kanten mehr ausgehen. Dies muss
wegen der Balanciertheit v0 selbst sein; wir haben also einen Kreis gefunden. Ist dies ein
Euler-Kreis, sind wir fertig. Wenn nicht, muss er wegen des Zusammenhangs einen Knoten
w mit noch unbenutzten ausgehenden Kanten enthalten. Analog finden wir einen Kreis von
und nach w aus bisher unbenutzten Kanten; diesen fügen wir in den exisitierenden Kreis ein.
Dies machen wir solange, bis insgesamt ein Eulerkreis entstanden ist. Dieses Verfahren kann
in Linearzeit O(|E|) implementiert werden.
2.9 Satz (Satz von Euler für Pfade). Ein Graph enthält einen Eulerschen Pfad genau dann,
wenn er höchstens zwei semi-balancierte Knoten enthält und alle anderen Knoten balanciert
sind.
Beweis. Die eine ⇒-Richtung ist wieder offensichtlich. Zur ⇐-Richtung: Durch die SemiBalanciertheitsbedingung gibt es genau einen Knoten mit höherem Eingrad als Ausgrad
und unmgekehrt. Diese müssen Start- und Endknoten eines Euler-Pfades sein. Wir fügen
temporär eine Kanten vom End- zum Startknoten ein. Jetzt sind alle Knoten balanciert, und
wir finden einen Euler-Kreis. Aus diesem löschen wir die eingefügte Kante und bekommen
einen Euler-Pfad.
2.2.3 Anzahl der Sequenzen mit gegebenem Spektrum
Zu einem gegebenem L-Spektrum können wir (bei geschickter Implementierung in Linearzeit)
den De Bruijn-Graphen (mit (L − 1)-meren als Knoten) konstruieren und testen, ob dieser
mindestens einen Euler-Pfad besitzt und auch einen solchen finden.
18
2.2 Sequencing by Hybridization (SBH)
Häufig werden wir vor dem Problem stehen, dass die Sequenz aus dem Spektrum nicht
eindeutig rekonstruiert werden kann. Deshalb fragen wir: Wie viele Euler’sche Pfade gibt es,
wenn es mindestens einen gibt?
Wir lösen das Problem zunächst nur in Euler-Graphen für Euler-Kreise; der Transfer auf
Pfade ist eine Übungsaufgabe.
2.10 Definition (orientierter Baum mit Wurzel). Ein orientierter Baum mit Wurzel r ist
ein gerichteter Graph T ohne Schleifen (Schleifen sind Kanten u → u) mit einem Knoten r,
so dass es von jedem Knoten u 6= r aus genau einen Pfad von u nach r gibt.
Es ist damit klar, dass der zugrundeliegende ungerichtete Graph damit ein ungerichteter
Baum ist und in T alle Kanten auf r zulaufen.
2.11 Definition (aufspannender orientierter Baum mit Wurzel). Ein aufspannender orientierter Baum mit Wurzel r ∈ V (G) zu einem gerichteten Graphen G ist ein orientierter
Baum T mit Wurzel r, der ein Teilgraph von G mit V (T ) = V (G) ist.
2.12 Satz (BEST-Theorem nach de Bruijn, van Aardenne-Ehrenfest, Smith, Tutte). Sei
G = (V, E) ein gerichteter Graph, in dem alle Knoten balanciert sind. Sei e eine Kante in
G und init(e) ihr Startknoten. Sei Euler(G, e) die Anzahl der Eulerkreise in G, die mit der
Kante e beginnen. Sei Trees(G, v) die Anzahl der orientierten aufspannenden Bäume von G
mit Wurzel v. Dann gilt:
Y
Euler(G, e) = Trees(G, init(e)) ·
(outdeg(u) − 1)!
u∈V
Beweis. Wir zeigen:
1. Jeder Euler-Kreis K, der mit e beginnt, entspricht einem bestimmten orientierten aufspannenden Baum TK mit Wurzel init(e).
2. Zu jedem orientierten aufspannenden Baum T mit Wurzel init(e) bekommen wir eine
bestimmte Anzahl Euler-Kreise K, die mit
Qe beginnen und für die mit der Konstruktion
in 1. gilt, dass TK = T . Dies sind genau u∈V (outdeg(u) − 1)! Stück.
Aus 1. und 2. folgt unmittelbar der Satz.
Zu 1.: Sei K ein Euler-Kreis, der mit e beginnt, und sei v := init(e). Definiere zu jedem
Knoten u die Kante e(u) als diejenige Kante, über die u beim Ablaufen von K zuletzt
verlassen wird. Wir behaupten: Die |V | Knoten, zusammen mit den |V | − 1 Kanten e(u)
für u 6= v, bilden einen orientierten aufspannenden Baum mit Wurzel v. Dies ist leicht zu
verifizieren: (a) Von v geht keine Kante aus. (b) Von jedem Knoten u 6= v geht genau eine
Kante aus. (c) Von jedem Knoten u 6= v existiert ein Pfad nach v.
Zu 2.: Sei T ein orientierter aufspannender Baum von G mit Wurzel v. Wir können EulerKreise in G wie folgt konstruieren: Verlasse v über e. In jedem erreichten Knoten, wähle eine
beliebige ausgehende Kante; aber wähle nur dann eine Kante aus T , wenn dies die einzige
Möglichkeit ist, den Knoten zu verlassen (d.h. wähle die Kante aus dem Baum T erst beim
letzten Verlassen eines Knotens). Bilden wir zu einem solchen Euler-Kreis wieder den Baum
gemäß 1., so erhalten wir T zurück. Wie viele verschieden Euler-Kreise können wir zu T
finden? In jedem Knoten u 6= v können wir eine beliebige Permutation der ausgehenden
19
2 DNA-Microarrays und SBH
Kanten wählen, außer der letzten, die durch T vorgegeben ist. In v können wir eine beliebige
PermutationQder ausgehenden Kanten wählen, außer der ersten, denn das ist e. Insgesamt
gibt es also u∈V (outdeg(u) − 1) verschiedene Euler-Kreise, die mit e beginnen, zu T . Das
war zu zeigen.
Folgerungen:
1. Trees(G, v) ist unabhängig von v. (Denn: Euler(G, e) ist unabhängig von der Startkante
e.) Wir definieren also Trees(G) := Trees(G, v) für irgendein v aus der Knotenmenge
von G.
2. Es gibt auf jeden Fall mehr als einen Euler-Kreis in G, wenn T rees(G) > 1 oder wenn
outdeg(v) ≥ 3 für mindestens ein v.
Wir kı̈nnen jetzt die Anzahl der Euler-Kreise eines Euler-Graphen berechnen, wenn wir
Trees(G) berechnen können. Hierfür gibt es eine Determinanten-Formel, die wir jetzt beweisen.
2.13 Satz (Formel für Trees(G)). Sei G ein zusammenhängender gerichteter Graph (ohne
Schleifen) mit Knotenmenge V = { v1 , . . . , vp }. Sei kij die Anzahl der Kanten von vi nach vj
(Adjazenzmatrix). Sei L die p timesp-Matrix mit Lij := −kij für i 6= j und Lii := outdeg(vi ).
Sei L0 die Matrix, die aus L entsteht, wenn man die letzte Zeile und Spalte streicht. Dann
gilt: det(L0 ) = Trees(G, vp ).
Bemerkungen zum Satz:
1. Die Zeilensummen von L sind Null.
2. Der Satz gilt entsprechend, wenn man in L0 für irgendein i ∈ { 1, . . . , p } die i-te Zeile
und Spalte weglässt; man erhält dann Trees(G, vi ). Wir hatten schon gesehen, dass die
Zahl Trees(G, vi ) unabhängig von i ist.
Beweis. [Skizze] Sei q die Anzahl der Kanten in G; wir führen Induktion nach q durch. Da
G zusammenhängend ist, gilt auf jeden Fall q ≥ p − 1.
Basisfall: q = p − 1. In diesem Fall ist der zugrundeliegende ungerichtete Graph ein
Baum. Entweder G selbst ist orientierter Baum mit Wurzel vp oder nicht. Wenn nein, gibt es
mindestens einen Knoten, von dem aus kein Pfad nach vp führt. D.h., es gibt einen Knoten
u 6= vp mit outdeg(u) = 0. Das wiederum heißt, L0 besitzt eine Nullzeile und det(L0 ) = 0.
Wenn ja, so lässt sich nachrechnen, dass [[det(L0 ) = 1]].
Induktionsfall: q > p − 1. Wir dürfen jetzt annehmen, dass der Satz schon für alle
Graphen mit höchstens q − 1 Kanten bewiesen ist. Wir nehmen weiter an, dass keine Kante
in G von vp ausgeht (eine solche kann gelöscht werden, ohne die zu beweisende Gleichung zu
verändern). Da G mindestens p Kanten besitzt und outdeg(vp ) = 0, muss es einen anderen
Knoten u geben mit outdeg(u) ≥ 2. Sei e eine der Kanten mit init(e) = u. Sei G0 der Graph
G ohne e. Sei G00 der Graph G ohne die anderen Kanten, die von u ausgehen, aber mit e.
Seien L00 , L000 die Matrizen zu G0 und G00 . Nach Induktionsannahme gilt hierfür der Satz.
Jetzt überlegen wir, dass einerseits Trees(G) = Trees(G0 ) + Trees(G00 ) gilt, und anderereits
aufgrund der Multilinearität der Determinante det L0 = det L00 + det L000 gilt.
20
KAPITEL
3
Phylogenetik: Merkmalsbasierte Methoden
3.1 Einführung und Grundlagen
Fragestellung. Phylogenetische Bäume (auch evolutionäre Bäume) stellen die evolutionären
Beziehungen zwischen einer Menge von Objekten (häufig Spezies oder Gruppen von Spezies)
dar. Die Blätter des Baum repräsentieren die zur Zeit existierenden (und damit beobachtbaren) Spezies (oder Gruppen von Spezies). Man spricht in diesem Zusammenhang auch von
operational taxonomic unit (OTU) oder einfach Taxon (Plural: Taxa).
Die inneren Knoten sind stets verzweigend (haben einen Ausgrad von mindestens 2) und
repräsentieren die letzten gemeinsamen Ahnen vor einem Speziations-Ereignis (Auftrennung
einer Spezies in zwei). Da diese Ahnen im Normalfall nicht mehr existieren, sind Daten zu
ihnen (im Gegensatz zu den Blättern) in der Regel nicht verfügbar.
Das Ziel einer phylogenetischen Untersuchung ist häufig, aufgrund der Merkmalsausprägungen
der heutigen Spezies auf die Baumtopologie und auf die Merkmalsausprägungen bei den Ahnen zu schließen. Aufgrund der fehlenden Daten aus der Vergangenheit, lassen sich nur
Mutmaßungen anstellen, deren Plausibilität durch bestimmte Annahmen vewertet werden
kann.
Da die Speziation (Auftrennung von Arten) ein anschaulich schwer vorstellbarer Prozess ist,
machen wir noch einige Bemerkungen dazu. Zunächst lässt sich formal nur schwer definieren,
was eigentlich eine Spezies (Art) genau ist. Häufig definiert man eine Art als die Menge aller
Individuen, die sich miteinander paaren und fruchtbaren Nachwuchs zeugen können; das
führt aber im Detail auf Probleme. In jedem Fall bezieht sich der Begriff Art immer auf eine
Population von Individuen, nicht auf ein einzelnes Individuum. Veränderungen (Mutationen)
des Genoms finden aber auf individueller Ebene statt, so dass eine Speziation immer damit
beginnen muss, dass es von der “Norm” abweichende Individuen gibt. Zur Entwicklung einer
21
3 Phylogenetik: Merkmalsbasierte Methoden
neuen Art müssen diese in der Regel räumlich von ihren bisherigen Artgenossen getrennt
werden, so dass sich die beiden Populationen getrennt entwickeln können. Im Laufe der Zeit
häufen sich die genetischen Unterschiede zwischen den Teilpopulationen, so dass eine Paarung
auch dann nicht mehr funktionieren würde, wenn sie ihren Lebensraum wieder miteinander
teilen würden.
Bäume. Wir setzen voraus, dass folgende grundlegende Begriffe zu Bäumen bekannt sind:
(ungerichteter / gerichteter) Graph, Knoten, Kanten, Grad / Eingrad / Ausgrad eines Knoten, Zusammenhang, Pfad, Kreis oder Zyklus, einfacher Kreis (benutzt jede Kante höchtens
einmal), Kantengewichte, Länge eines Pfades, Kanten- und Knotenlabel, Baum, Charakterisierung eines ungerichteten Baums: azyklisch und zusammenhängend, Wurzel eines Baums,
innerer Knoten eines Baums, Blatt eines Baums.
Die hier betrachteten Bäume haben verschiedene Beschriftungen (Label) in den Blättern,
d.h. die Blätter sind unterscheidbar.
Wir unterscheiden hier zwischen ungerichteten ungewurzelten Bäumen und gerichteten gewurzelten Bäumen, in denen per Konvention alle Kanten von der Wurzel zu den Blättern
zeigen. Vergisst man in einem gewurzelten binären Baum die Wurzel (und klebt die beiden offenen Kanten zusammen), erhält man einen ungewurzelten Baum, in dem die ursprünglichen
Kantenrichtungen unbekannt sind.
Ein gewurzelter Baum ist ein Binärbaum, wenn die Wurzel und jeder innere Knoten Ausgrad
2 hat. Ein ungewurzelter Baum ist ein Binärbaum, wenn jeder innere Knoten den Grad 3
hat. Ein phylogenetischer Baum heißt auch vollständig aufgelöst, wenn er ein Binärbaum
ist. Ein Knoten, der die Binärbaum-Bedingungen erfüllt, heißt Bifurkation. Ein Knoten, der
die Bedingungen verletzt, heißt Multifurkation oder Polytomie. Multifurkationen entstehen,
wenn man die genaue Reihenfolge von Speziations-Ereignissen nicht genau festlegen kann.
Unter der Topologie eines Baumes verstehen wir sein Verzweigungsmuster; wir präzisieren
dies gleich. Wir bemerken dazu, dass die (ausgehenden) Kanten in einem Knoten keine
Reihenfolge haben (innere Knoten und die Wurzel verhalten sich also wie p-Knoten in einem
pq-Baum). Äquivalent zum Verzweigungsmuster ist bei gewurzelten Bäumen die Mengen
der Blätter in den Unterbäumen, die in den inneren Knoten wurzeln. Bei ungewurzelten
oder gewurzelten Bäumen entspricht das der Menge der Splits. Ein Split ist eine Partition
der Blätter in zwei Mengen, die entsteht, wenn man eine Kante im Baum löscht, so dass der
Baum in zwei Zusammenhangskomponenten zerfällt. Zwei Bäume mit beschrifteten Blättern
sind genau dann gleich (d.h., haben das gleiche Verzweigungsmuster), wenn sie die gleiche
Split-Menge besitzen.
Ein gewurzelter Baum lässt sich kompakt im sogenannten PHYLIP- oder NEWICK-Format
angeben; siehe auch http://evolution.genetics.washington.edu/phylip.newicktree.
html. Die Grundidee dabei ist, dass der String (x, y) einen inneren Knoten mit Unterbäumen
x und y darstellt. Dabei können x und y entweder wieder innere Knoten oder Blattbezeichnungen sein. Blätter und Spezies bezeichnen wir hier der Kürze wegen mit A, B, C, etc.
Es sollte nun klar sein, dass (A,(B,C)), (A,(C,B)), ((B,C),A), ((C,B),A) jeweils denselben
gewurzelten Baum darstellen, der dadurch charakterisiert ist, dass die Blätter B und C einen
gemeinsamen Unterbaum bilden, also zueinander näher verwandt sind als zu A.
22
3.1 Einführung und Grundlagen
Bei ungewurzelten Bäumen geht legt man die Wurzel an irgend eine Kante und gibt die
Klammerdarstellung des entsprechend gewurzelten Baums an. Natürlich bezeichnen dann
sehr verschiedene Darstellungen den gleichen ungewurzelten Baum, zu, Beispiel ist dann
(((A,B),C),(D,E)) = (A,(B,(C,(D,E)))).
Beim Zeichnen von gewurzelten Bäumen wird die Wurzel normalerweise oben gezeichnet, die
Blätter unten. Die y-Achse repräsentiert dann die Zeit: Oben ist die Vergangenheit, unten
die Gegenwart. Die x-Achse (also die Reihenfolge der Blätter) hat keine Bedeutung.
Abzaählen ungewurzelter Binärbäume. Wir stellen nun die Frage, wie viele verschiedene ungewurzelte Binärbäume Un für n Taxa existieren. Für n = 3 ist die Frage leicht zu
beantworten: Offensichtlich ist U3 = 1; es gibt genau einen inneren Knoten, von dem die
3 Taxa sternförmig abzweigen, und damit 3 Kanten. Um zu ermitteln, wie groß Un+1 für
n ≥ 3 ist, argumentieren wir wie folgt: In jeden der Un Bäume können wir das (n + 1)-te
Taxon in jeder der 2n − 3 Kanten einfügen (durch Einfügen eines neuen inneren Knoten,
der die existierende Kante teilt, und durch weiteres Einfügen einer neuen Blattkante). Jede
dieser Un · (2n − 3) Möglichkeiten führt auf eine unterschiedliche Baumtopologie. Weitere
Topologien gibt es nicht. Daher gilt
Un+1 = Un · (2n − 3).
Wenn wir nun nach der Anzahl Wn von gewurzelten Binärbaumtopologien fragen, dann
stellen wir fest, dass die Wahl der Position der Wurzel genau der Wahl einer weiteren Kante
entspricht, als würde man ein (n + 1)-tes Blatt einfügen wollen. Daher ist Wn = Un+1 .
Die folgende Tabelle zeigt Un und Wn für einige kleine Werte von n.
n
Un
Wn
3
1
3
4
3
15
5
15
105
6
105
945
7
945
10395
8
10395
135135
Insgesamt ergibt sich folgender Satz, der sich nun leicht per Induktion beweisen lässt.
Q
3.1 Satz. Sei n ≥ 3. Es gibt genau Un = ni=3 (2i − 5) ungewurzelte Binärbäumtopologien
mit n verschiedenen Blättern. Es gibt genau Wn = Un+1 gewurzelte Binärbaumtopologien
mit n verschiedenen Blättern.
Es folgt, dass die Anzahl der Binärbaumtopologien überexponentiell mit n wächst. Erlaubt
man zusätzlich Multifurkationen, ist die Anzahl der Baumtopologien noch bedeutend höher.
Will man erschöpfend alle (ungewurzelten oder gewurzelten) Baumtopologien mit n Blättern
aufzählen, kann man dies einfach mit einer rekursiven Funktion tun, die die obige Argumentation nachvollzieht und nacheinander die Blätter (und ggf. zum Schluss die Wurzel) an allen
möglichen Positionen einfügt.
23
3 Phylogenetik: Merkmalsbasierte Methoden
Merkmale. Häufig stehen wir vor dem oben genannten Problem, dass wir zu einer Menge
von Taxa bestimmte Merkmale beobachten können und daraus rekonstruieren wollen, wie
diese Taxa evolutionär zusammenhängen. Wir formalisieren zunächst den Merkmalsbegriff.
3.2 Definition (Merkmal, Ausprägung oder Zustand). Ein Merkmal ist ein Paar (λ, C) aus
einem Namen λ und einer Menge C. Jedes c ∈ C heißt eine Ausprägung oder ein Zustand
des Merkmals.
Es gibt verschiedene Arten von Merkmalen;
binär Die Zustandsmenge ist äquivalent zu C = {0, 1}, wobei konventionell die 1 die Existenz einer Eigenschaft anzeigt. Ein Beispiel ist λ = “Existenz eines zentralen Nervensystems”.
linear geordnet Die Zustandsmenge ist linear geordnet, z.B. λ = “Anzahl der Extremitäten
(Arme, Beine, etc.)”.
kategoriell Die Menge C ist endlich, und es gibt keine offensichtliche Ordnung der Zustände.
Ein Beispiel ist ein DNA-Nukleotid an einer bestimmten Position in einem Gen; hier
ist C = { A,C,G,T }.
Im Folgenden gehen wir davon aus, dass zu n Taxa die Ausprägungen von m Merkmalen
gegeben sind (z.B. in Form einer n × m-Tabelle oder -Matrix). In diesem Zusammenhang
bezeichnen wir auch (nicht ganz korrekt) eine Tabellenspalte als Merkmal (eigentlich: Vektor
der Ausprägungen eines Merkmals in allen Taxa) und eine Tabellenzeile als Taxon (eigentlich:
Vektor der Ausprägungen aller Merkmale im Taxon).
3.3 Beispiel (Fahrzeuge). Fahrräder, Motorräder, Autos und Dreiräder sind Fahrzeuge. Wir
betrachten die Merkmale “Anzahl der Räder” mit Zustandsmenge N0 (linear geordnet) und
“Existenz eines Motors” (binär). Eine entsprechende Merkmalsausprägungsmatrix (Taxa ×
Merkmale) kann jede/r leicht aufstellen.
♥
3.2 Perfekte Phylogenien
Ein wesentliches Argumentationsprinzip in der Phylogenetik ist, dass sich Merkmale nicht
beliebig ändern können. Der Zustand aller Merkmale ist durch die Erbinformation codiert,
sie sich sehr stabil unverändert weitervererbt. Dabei kommt es nur gelegentlich zu sinnvollen
Mutationen, die zu anderen Merkmalsausprägungen führen. Daher kann man (approximativ)
davon ausgehen, dass jedes Merkmal im Lauf der Evolution nur einmal “erfunden” wurde,
sich also zufällig herausgebildet hat.
Dies führt auf die Begriffe der Kompatibilität eines Merkmals mit einer Baumtopologie und
einer Perfekten Phylogenie (PP).
3.4 Definition (Kompatibilität). Ein Merkmal mit Ausprägungsmenge C heißt kompatibel
mit einer Baumtopologie T = (V, E), wenn man alle inneren Knoten (und ggf. die Wurzel)
so mit Ausprägungen beschriften kann, dass für alle c ∈ C gilt: Die Knotenmenge Vc :=
{ v ∈ V | label(v) = c } induziert eine einzige Zusammenhangskomponente.
3.5 Definition (Perfekte Phylogenie). Eine Baumtopologie T = (V, E) heißt Perfekte Phylogenie für eine Ausprägungsmatrix, wenn sie kompatibel mit jedem Merkmal darin ist.
24
3.2 Perfekte Phylogenien
Natürlich stellt sich die Frage, ob man einer Ausprägungsmatrix ansehen kann, ob eine
perfekte Phylogenie existiert.
3.6 Problem (Problem der Perfekten Phylogenie). Gegeben eine n × m-Merkmalsausprägungsmatrix, gibt es eine perfekte Phylogenie dazu?
•
Im Allgemeinen ist das Problem NP-schwer TODO: Zitat . Unter der Voraussetzung,
dass alle Merkmale binär sind und wir einen gewurzelten Baum suchen, der in der Wurzel
ausschließlich die Null-Ausprägungen aufweist (bisher kein Merkmal erfunden), dann gibt es
eine einfache Charakterisierung solcher Matrizen TODO: Zitat Gusfield .
3.7 Satz (Charakterisierung Perfekter Phylogenien). Sei M = (Mij ) ∈ { 0, 1 }n×m eine
binäre Merkmalsausprägungsmatrix. Zu Spalte j sei Oj := { i : Mij = 1 } die Menge der
Taxa (oder Objekte), bei denen Merkmal j ausgeprägt ist. Dann gibt es zu M genau dann
eine PP, wenn für je zwei Spalten j, k gilt: Oj ⊆ Ok oder Ok ⊆ Oj oder Ok ∩ Oj = { }.
Den Beweis sparen wir uns und geben nur kurz die Idee an: Dass die genannte Bedingung
in einer PP erfüllt ist, ist klar. Umgekehrt: Gilt Oj ⊂ Ok , dann wird Merkmal j “nach”
Merkmal k erfunden, und man kann die Taxa so anordnen, dass alle mit Merkmal k einen
Teilbaum bilden und die mit Merkmal j einen Unterbaum darin. Gilt Oj ∩ Ok , treten die
Merkmale j, k nie zusammen auf, d.h. man kann die Taxa so anordnen, dass diejenigen mit
Merkmal j und diejenigen mit Merkmal k jeweils einen Unterbaum bilden und diese beiden
Unterbäume disjunkt sind.
Ein naiver Test der Bedingung kostet Zeit O(nm2 ), da man alle Paare von Spalten testen
muss. Durch Sortieren der Spalten mit Radix-Sort und weitere Tricks ist aber ein Test (und
die Konstruktion einer PP, wenn sie existiert) sogar in O(mn) Zeit möglich. Prinzipiell
erstellt man, um eine PP zu rekonstruieren, das Hasse-Diagramm der Inklusionsbeziehungen
der Oj -Mengen: Jedes Oj bildet einen Knoten, Kanten zieht man vom direkten Vorgänger
zum direkten Nachfolger bezüglich der Teilordnung, die durch ⊆ gegeben ist. Aufgrund der
Bedingung im Satz ist das Hasse-Diagramm ein Baum, aus dem man die PP leicht erhalten
kann.
Wir betrachten noch kurz den Fall, dass die binäre Matrix M in einer Form gegeben ist, zu der
zwar prinzipiell eine PP existiert, aber die Bedingung verletzt ist, dass alle Merkmale in der
Wurzel die Ausprägung 0 haben. In diesem Fall nützt Satz 3.7 zunächst nicht. Eine (naive)
Lösung wäre zu versuchen, gewisse Merkmale zu invertieren. Möchte man aber alle Kombinationen von Merkmalen durchprobieren, müsste man das PP 2m -mal lösen. Glücklicherweise
gibt es ein einfaches Kriterium, das sagt, welche Merkmale man invertieren muss (ohne
Beweis).
3.8 Lemma. Gibt es zu einer binären Matrix M überhaupt eine PP, und invertiert man
die Spalten, in denen mehrheitlich der Zustand 1 vorkommt, dann erfüllt die resultierende
Matrix M 0 die Bedingungen zu Satz 3.7.
25
3 Phylogenetik: Merkmalsbasierte Methoden
3.3 Maximum Parsimony
3.3.1 Motivation
Wenn man m echte Merkmale in n Spezies beobachtet und daraus eine Perfekte Phylogenie
zu rekonstruieren versucht, stellt man häufig fest, dass es eine solche nicht gibt. Es gibt
mehrere Möglichkeiten, die Forderung nach “Perfektion” aufzuweichen:
1. Die gegebenen Daten werden als fehlerhaft betrachtet; und wir suchen nach einer
Datenmatrix, die der gegebenen möglichst ähnlich ist, zu der es aber eine Perfekte Phylogenie gibt. Hierzu müssen wir ein Abstandsmaß zwischen zwei Merkmalsausprägungsmatrizen definieren. Wir kommen in Abschinitt ?? darauf zurück.
2. Dass im Laufe der Evolution keine Merkmalsausprägung mehrfach unabhängig erfunden wird (wie es ja eine Perfekte Phylogenie voraussetzt), ist erwiesenermaßen nicht
immer wahr. TODO: Beispiel? Da es aber unwahrscheinlich ist, dass die Evolution zweimal zufällig das Gleiche hervorbringt, sollten solche Ereignisse sehr selten sein,
gewissermaßen sparsam verwendet werden. Das englische Wort für Sparsamkeit ist parsimony. Bei Maximum Parsimony Problemen versuchen wir also eine Baumtopologie
und eine Belegung der inneren Knoten zu finden, so dass möglichst wenig Änderungen
von Merkmalsausprägungen entlang von Kanten stattfinden.
Man beachte den grundlegenden Unterschied, durch den sich die beiden Ansätze unterscheiden. Im ersten Fall werden nur Perfekte Phylogenien für wahr gehalten; und wenn die Daten
dem widersprechen, wird das durch Fehler in den Daten erklärt. Im zweiten Fall (Maximum
Parsimony) wird das Perfekte Phylogeniemodell in Frage gestellt.
3.3.2 Problemstellung
Man kann verschiedenen Zustandswechseln eines Merkmals verschiedene Kosten zuweisen
und erhält dann folgende formale Probleme.
3.9 Definition (Kostenfunktion). Eine Kostenfunktion beim Kleinen Parsimony-Problem
für ein Merkmal mit möglichen Ausprägungen aus einer Menge X ist eine Funktion cost :
X × X → R≥0 , so dass cost(x, x0 ) = 0 genau dann wenn x = x0 .
Gelegentlich setzen wir sogar stärker voraus, dass die Kostenfunktion eine Metrik ist, d.h.
dass darüberhinaus Symmetrie und die Dreiecksungleichung gelten; wir sprechen dann von
einer Kostenmetrik :
• Symmetrie: cost(x, y) = cost(y, x) für alle x, y ∈ X
• Dreiecksungleichung: cost(x, y) ≤ cost(x, z) + cost(z, y) für alle x, y, z ∈ X
3.10 Problem (Kleines Parsimony-Problem für ein Merkmal). Gegeben seien die Ausprägungen (x1 , . . . , xn ) eines Merkmals in n Spezies und eine Baumtopologie mit n Blättern,
die mit x1 , . . . , xn belegt sind, sowie eine Kostenfunktion, die einer Ausprägungsänderung
von x nach x0 die Kosten cost(x, x0 ) ≥ 0 zuordnet. Man spricht von Einheitskosten, wenn
cost(x, x0 ) = [[x 6= x0 ]].
26
3.3 Maximum Parsimony
Gesucht ist eine Belegung der inneren Knoten und der Wurzel mit Merkmalsausprägungen,
so dass die Kosten der Änderungen im Baum minimal sind. Die Kosten der Änderungen
im Baum berechnen als Summe der Kosten aller Kanten, wobei die Kosten einer Kante die
Kosten der Änderung von der Ausprägung im Startknoten zur Ausprägung im Zielknoten
einer Kante sind.
Die minmalen Kosten der Änderungen im Baum bei optimaler Belegung heißen die Kosten
der Baumtopologie für das betrachtete Merkmal.
•
3.11 Problem (Großes Parsimony-Problem). Gegeben sind die Ausprägungen (xi j), 1 ≤
i ≤ n, 1 ≤ j ≤ m von m Merkmalen in n Spezies und eine Kostenfunktion costj für die
Änderungen jedes Merkmals. Gesucht ist eine Baumtopologie mit minimalen Gesamtkosten.
Die Gesamtkosten einer Baumtopologie sind die Summe der Kosten der Topologie über alle
Merkmale.
•
Wir bemerken, dass man das Große Parsimony-Problem theoretisch wie folgt lösen kann,
wenn man das Kleine Parsimony-Problem lösen kann: Man berechnet für jede Baumtopologie
die Kosten der Topologie für jedes Merkmal und somit die Gesamtkosten der Topologie
und wählt dabei die optimale Baumtopologie aus. Unpraktisch ist dabei, dass man über
superexponentiell viele Topologien iterieren muss. Mit einigen Tricks lässt sich aber das
Große Parsimony-Problem in der Praxis für etwas mehr als 20 Taxa so lösen. Viel mehr
darf man sich nicht erhoffen, denn es gilt der folgende Satz, dessen Beweis bei TODO: Ref
nachgelesen werden kann.
3.12 Satz. Das große Parsimony-Problem mit Einheitskosten ist NP-schwer.
3.3.3 Das Kleine Parsimony-Problem
Sankoff’s Dynamic Programming Algorithmus für das Kleine Parsimony-Problem. Wir
leiten einen Dynamic Programming Algorithmus für das kleine Parsimony-Problem auf beliebigen gewurzelten Baumtopologien her. Wir gehen weiter unten auf den Fall eines ungewurzelten Baums ein.
Die Hauptidee ist, bei einer bottom-up-Durchmusterung für jeden Knoten v die optimalen
Kosten C(v, x) für den in v wurzelnden Unterbaum, wenn v mit der Ausprägung x belegt
wird, zu berechnen.
In den Blättern ist die Belegung vorgegeben; daher setzen wir für ein Blatt v jeweils C(v, x) :=
0, wenn x der Merkmalsausprägung in v entspricht, und C(v, x) := ∞ sonst. Für die inneren
Knoten und die Wurzel gilt folgendes Lemma.
3.13 Lemma. Sei v ein innerer Knoten oder die Wurzel. Dann ist
X
C(v, x) =
min
[C(c, x0 ) + cost(x, x0 )].
0
c Kind von v
x
(3.1)
Beweis. Der Beweis erfolgt mit Induktion nach der (maximalen) Distanz von v zu einem
Blatt. Für einen Knoten, der als Kinder nur Blätter hat, ist die Aussage klar. Sei nun das
Lemma für alle Knoten unterhalb des betrachteten v bereits bewiesen. Sei x die
PAusprägung
in v, und sei xc die Ausprägung im Kind c von v. Es ist klar, dass C(v, x) ≤ c [C(c, xc ) +
27
3 Phylogenetik: Merkmalsbasierte Methoden
cost(x, xc )] für alle xc gilt: Die optimalen Kosten in v mit x sind höchstens so hoch wie die
Summe der optimalen Kosten in den Kindern plus die Kosten für die Kanten zu den Kindern.
Wenn manP
die Belegung der Kinder so wählt, das jeder Summand minimal wird, erhält man
C(v, x) ≤ c Kind von v minx0 [C(c, x0 ) + cost(x, x0 )]. Angenommen, es gilt <: Dann müsste
es mindestens ein Kind c geben, in dem bei passender Ausprägung x0 die Unterbaumkosten
echt kleiner als C(c, x0 ) sind, was zum Widerspruch dazu steht, dass wir für c das Lemma
schon bewiesen haben. Also gilt die Gleichheit.
Wir definieren B(c, x) := argminx0 [C(c, x0 ) + cost(x, x0 )] als die Belegung des Kindes c, die
in (3.1) das Minimum annimmt.
Wenn wir bottom-up die Größen C(v, x) für alle inneren Knoten (inkl. Wurzel) v und Ausprägungen x berechnet haben und B(c, x) für alle inneren Knoten (ohne Wurzel) c und Ausprägungen x des Elternknoten kennen, dann wählen wir an der Wurzel r die Ausprägung
xr := argminx C(r, x) und dann top-down im Kind c des schon belegten Knoten v die Ausprägung xc := B(c, xv ).
Laufzeit und Platzbedarf sind O(nσ 2 ), wobei σ die Anzahl der verschiedenen Ausprägungen
des betrachteten Merkmals ist.
3.14 Beispiel (Kleines Parsimony-Problem). Betrachte den Baum mit Ausprägungen
(((A,(G,G)),((T,T),A)),(T,(A,G))).
Durchführen des Algorithmus führt an der Wurzel zu A mit optimalen Kosten 4.
♥
Version von Fitch und Hartigan für Einheitskosten. Werden ausschließlich Einheitskosten
verwendet, so lässt sich der obige Algorithmus anders darstellen; der Beweis der Äquivalenz
ist eine Übungsausgabe. Jedem inneren Knoten v wird bottom-up eine Menge Sv zugeordnet:
Einem Blatt wird die dort vorhandene Ausprägung zugeordnet. In einem inneren Knoten v
setzen wir
(T
T
c Sc nicht leer,
c Sc wenn
Sv := S
c Sc sonst.
Schnitt und Vereinigung laufen dabei über alle Kinder c von v. Wir behaupten: Sv ist (bei
Einheitskosten) die Menge der x, die C(v, x) minimieren. Die endgültige Belegung wird topdown wie folgt durchgeführt: In der Wurzel r wähle irgendein xr ∈ Sr . Für das Kind c eines
schon mit xv belegten Knoten v, wähle xc := xv wenn xv ∈ Sc , und irgendein xc ∈ Sc sonst.
Der Zeitaufwand für diese Variante von Fitch und Hartigan ist nur O(nσ).
Ungewurzelte Bäume. Ist der betrachtete Baum ungewurzelt, müssen zusätzlich annehmen, dass die Kostenfunktion eine Kostenmetrik ist (symmetrisch, Dreiecksungleichung).
Dann können wir die Wurzel auf irgend einer Kante platzieren und das gewurzelte Problem
lösen. Wir behaupten: Die Lösung und die optimalen Kosten hängen nicht von der Platzierung der Wurzel ab. Denn: In welche Richtung die Kanten durchlaufen werden, spielt aufgrund der Symmetrie keine Rolle. Das Einfügen der Wurzel als zusätzlicher Knoten zwischen
Knoten u, v kann die optimalen Kosten aufgrund der Dreiecksungleichung nicht verbessern.
28
3.3 Maximum Parsimony
Wählt man in der Wurzel aber die Merkmalsausprägung aus u oder v, werden die Kosten
auch nicht verschlechtert.
Achtung: Wenn keine Kostenmetrik vorliegt, kann die optimale Lösung sehr wohl von der
Platzierung der Wurzel abhängen.
3.3.4 Das Große Parsimony-Problem
Naiv löst man das Große Parsimony-Problem, in dem man alle Baumtopologien aufzählt,
darin für jedes Merkmal die Kosten durch Lösen des Kleinen Parsimony-Problems berechnet
und sich dabei die beste Topologie merkt.
Beschleunigung durch Branch-and-Bound. Die Auswertung einer einzelnen Topologie kann
man (um einen geringen Faktor) beschleunigen, wenn man ausnutzt, dass mit jedem weiteren Merkmal die Kosten nur steigen können: Treten bei Merkmal j in der Matrix genau p
verschiedene Ausprägungen auf (und sind Einheitskosten gegeben), dann erhöhen sich die
Gesamtkosten mindestens um p − 1. So kann man für alle noch nicht berechneten Merkmale
abschätzen, welche Kosten mindestens noch hinzukommen, unabhängig von der Topologie.
Kennt man schon eine Topologie mit Gesamtkosten x und hat man für die aktuelle Topologie
schon m0 < m Merkmale ausgewertet und kommt dabei bisher auf Kosten y 0 und weiß, dass
noch mindestens Kosten y 00 hinzukommen, und gilt y := y 0 + y 00 ≥ x, dann weiß man schon,
ohne die verbleibenden Merkmale auszuwerten, dass die aktuelle Topologie nicht mehr besser
als die beste bereits bekannte sein kann. Somit kann man die Auswertung vorzeitig abbrechen.
Deutlich besser ist folgende Idee, bei der man ganze Gruppen von Topologien aussparen
kann. Organisiert man das Aufzählen aller Topologien wie in Abschnitt ?? angedeutet, also als Tiefensuche im Rekursionsbaum aller Topologien, dann werden durch Einfügen jedes
Taxons ebenfalls die Kosten nur erhöht. Hat man mit den ersten n0 Taxa in der aktuellen
Teiltopologie schon Kosten y 0 erreicht und schätzt die minimalen noch hinzukommenden
Kosten wieder geschickt mit y 00 ab und kennt schon eine vollständige Topologie mit Gesamtkosten x < y := y 0 + y 00 , dann kann man das weitere Einfügen von Taxa abbrechen und den
Suchraum hier abschneiden. Man spricht von “Branch-and-Bound”.
Die Effektivität des Verfahrens hängt entscheidend davon ab, dass man schnell eine gute Topologie mit geringen Kosten x findet (durch eine Heuristik beispielsweise) und die
Einfügereihenfolge der Taxa geschickt wählt. Mit diesem Verfahren ist das Große ParsimonyProblem in der Praxis für bis zu 25 Taxa (und nicht zu viele Merkmale) lösbar.
Man spricht hierbei von einer Laufzeit-Heuristik, da die Laufzeit bedeutend reduziert werden
kann (aber nicht muss); in jedem Fall erhält man aber garantiert das optimale Ergebnis (wenn
auch möglicherweise nach sehr langer Zeit).
Heuristiken. Um zu beginn eine Topologie mit (vielleicht nicht optimalen, aber hoffentlich)
geringen Kosten zu finden, kann man irgendein (sinnvolles und schnelles) Verfahren einsetzen.
29
3 Phylogenetik: Merkmalsbasierte Methoden
3.3.5 Inkonsistenz von Maximum Parsimony
Auch bei vielen Merkmalen, die alle auf die gleiche (korrekte) Topologie hindeuten, kann
es vorkommen, dass Maximum Parsimony den “falschen” Baum berechnet. Long Branch
Attraction. (Übungsaufgabe) TODO: ausarbeiten
3.4 Minimum-Flip-Probleme
Wie bereits erwähnt, besteht eine andere Sichtweise auf (binäre) Merkmalsdaten, die keine
perfekte Phylogenie bilden, darin, zu fragen, welches die “nächstgelegene” Datenmatrix ist,
die eine perfekte Phylogenie zulässt. Die Flip-Distanz zwischen zwei Matrizen ist dann einfach
die Anzahl der elementweisen Unterschiede.
Zusätzlich kann man hierbei zulassen, dass in den Ausgangsdaten einige der Merkmalsausprägungen unbekannt sind; dies kennzeichnen wir mit einem Fragezeichen. Das Ändern
eines Fragezeichens in 0 oder 1 kostet nichts (trägt nicht zur Distanz bei). Die Flip-Distanz
ist dadurch weder eine Metrik noch eine Pseudo-Metrik.
3.15 Definition (Flip-Distanz). Die Flip-Distanz d(W, W 0 ) zwischen zwei Matrizen W, W 0 ∈
{0, 1, ?}n×m ist die Anzahl der Elemente die in der einen Matrix 0 und in der anderen 1 sind.
3.16 Definition (PP-Matrix). Eine PP-Matrix ist eine Matrix X ∈ { 0, 1 }n×m , zu der eine
perfekte Phylogenie mit Zustand 0m in der Wurzel existiert.
Insbesondere darf eine PP-Matrix keine Fragezeichen enthalten.
Wir erhalten nun zwei Problemvarianten, je nachdem, ob in der Ausgangsmatrix Fragezeichen zugelassen sind oder nicht. Beide Varianten lassen sich aber im Folgenden exakt
gleich behandeln. Die Probleme heißen Minimum Flip Consensus Tree (MFCT, keine Fragezeichen zugelassen) und Minimum Flip Supertree (MFST, Fragezeichen zugelassen). Die
Namen kommen daher, dass eine Hauptanwendung dieser Fragestellung darin liegt, zu bereits vorhandenen Bäumen, die sich teilweise widersprechen können, einen Konsensus-Baum
bzw. Oberbaum (hier sind einige Taxa in einigen Bäumen nicht enthalten) zu berechnen.
Die Merkmale spiegeln dabei die Existenz aller Unterbäume (Splits) wider.
3.17 Problem (MFCT). Gegeben W ∈ {0, 1}n×m , finde eine PP-Matrix X, die d(W, X)
minimiert.
•
3.18 Problem (MFST). Gegeben W ∈ {0, 1, ?}n×m , finde eine PP-Matrix X, die d(W, X)
minimiert.
•
Beide Probleme sind NP-schwer ?. Daher versuchen wir hier eine Lösung mit Hilfe von
ganzzahligen linearen Programmen, die in der Praxis noch bis zu ca. 100 Taxa und mehreren
hundert Merkmalen funktioniert.
Zur Abkürzung seien T := {1, . . . , m} und C := {1, . . . , n} die Indexmengen der Taxa (Zeilen)
und Merkmale (Spalten) der Eingabematrix W ∈ {0, 1, ?}m×n .
30
3.4 Minimum-Flip-Probleme
Die natürlichen Variablen des Problems sind durch ein n × m-Matrix
X = (xtc )t∈T ,c∈C
∈ {0, 1}n×m
(3.2)
gegeben, die eine Lösung darstellt mit xtc = 1 genau dann wenn in Taxon t das Merkmal c
existiert.
Um die Zielfunktion d(W, X) als lineare Funktion der xtc darzustellen, definieren wir Hilfskonstanten

 1 if Wt,c = 0,
0 if Wt,c = ?,
ωtc :=
für t ∈ T , c ∈ C.
(3.3)

−1 if Wt,c = 1,
Damit ist, wie man schnell nachrechnet,
X
d(W, X) = Ones(W ) +
wtc · xtc ,
(3.4)
t∈T,c∈C
wobei Ones(W ) die Anzahl der Einsen in W ist.
Jetzt müssen wir noch die Menge der zulässigen X, also der PP-Matrizen, mit Hilfe linearer
Ungleichungen beschreiben. Hierfür gibt es mehrere Möglichkeiten: Wir können beispielsweise die PP-Bedingungen aus Satz 3.7 zunächst so umschreiben: Für alle Paare con Spalten
x·,c und x·,c0 mit c < c0 gilt:
xcolc ≤ x·,c0 oder x·,c0 ≤ x·,c oder x·,c0 + x·,c ≤ 1;
dabei ist 1 der Vektor aus lauter Einsen. Jetzt können wir weitere Variablen für jedes Paar
von Spalten einführen, um sicherzu stellen, dass jeweils mindestens eine dieser Ungleichungen
erfüllt ist (Übungsaufgabe).
Hier wählen wir einen Weg, der ohne weitere Variablen auskommt. Sei G(X) := (V, E) der
ungerichtete bipartite Graph zu X mit V = T ∪ C und E = { { t, c } : Xtc = 1 }. Betrachten
wir den von beliebigen c1 < c2 und paarweise verschiedenen t1 , t2 , t3 induzierten Teilgraph
(bzw. den entsprechenden Ausschnitt aus der X-Matrix), so nennen wir diesen ein “M”,
wenn folgende Situation vorliegt:
t1
t2
t3
c1
1
1
0
c2
0
1
1
Die Benennung ist klar, wenn man die c-Knoten oben und die t-Knoten unten hinschreibt.
Aus Satz 3.7 wissen wir, dass X genau dann eine PP-Matrix ist, wenn diese Situation nicht
auftritt, wenn also G(X) M-frei ist.
Jetzt m̈ussen wir dies nur noch mit linearen Ungleichungen aufschreiben: Um das dargestellte
“M” zu vermeiden, dürfen entweder nur drei der vier Katen (t1 , c1 ), (t2 , c1 ), (t2 , c2 ), (t3 , c2 )
vorhanden sein, oder mindestens eine der beiden anderen Kanten muss vorhanden sein. Dies
führt auf die “M”-Ungleichungen
xt1 ,c1 + xt2 ,c1 + xt2 ,c2 + xt3 ,c2 ≤ 3 + xt1 ,c2 + xt3 ,c1
(3.5)
∀ t1 , t2 , t3 ∈ T (paarweise verschieden), ∀ c1 , c2 ∈ C, c1 < c2 .
31
3 Phylogenetik: Merkmalsbasierte Methoden
Insgesamt haben wir dank 3.7 folgende Aussage.
3.19 Satz. Die zulässige Lösungen des ILPs
min (3.4), so dass (3.2), (3.5)
sind genau die PP-Matrizen X, und die lineare Funktion (3.4) stellt die Kosten der Lösung
X dar.
Die Anzahl der Variablen ist in dieser Formulierung minimal (nur die nm natürlichen
Varia
3 m2 )
blen treten auf). Die Anzahl der Ungleichungen ist jedoch mit n(n−1)(n−2) m
=
Θ(n
2
sehr hoch.
Lösung des ILPs. Die Lösung eines solchen ganzzahligen linearen Programms (integer linear program, ILP) geschieht mit folgender Strategie:
1. Löse die zugehörige LP-Relaxierung (d.h. das Problem ohne die Ganzzahligkeitsbedingung; xtc ∈ { 0, 1 } wird aufgeweicht zu 0 ≤ xtc ≤ 1).
2. Ist die Lösung ganzzahlig, so wurde ein zulässiges X gefunden und kann mit der bisher
bekannten besten zulässigen Lösung verglichen werden.
3. Ist die Lösung nicht ganzzahlig, gibt es mehrere Möglichkeiten: Man kann in zwei
Unterprobleme verzweigen, indem man ein fraktionales xtc auswählt und dies einmal
auf 1 und einmal auf 0 festsetzt (branch), oder man kann eine Hyperebene (cut) finden, die die gefundene fraktionale Lösung von der zulässigen Menge trennt, oder dies
kombinieren (branch-and-cut). Bei dem hier vorliegenden binären Problem ist es am
einfachsten, in beide Fälle zu verzweigen und zu beachten, dass der optimale Zielfunktionswert gazzahlig ist.
Da jedoch die Anzahl der Ungleichungen zu groß ist, um die Koeffizientenmatrix des LP
nur aufzustellen, muss man mit weiteren Tricks arbeiten: Man lässt zunächst alle “M”Ungleichungen weg und löst das LP ohne diese. Natürlich erhält man so oft eine Lösung,
die fraktional ist und viele der Ungleichungen nicht erfüllt; es kann aber passieren, dass alle
Ungleichungen glücklicherweise schon erfüllt sind. Man muss also testen, ob es mindestens
eine unerfüllte “M”-Ungleichung gibt. Wenn das der Fall ist, fügt man diese (oder eine kleine
Menge von solchen) dem LP hinzu und löst erneut. Die Hoffnung ist, dass man, nachdem
man einige wenige entscheidende Ungleichungen hinzugefügt hat, die meisten anderen von
selbst erfüllt sind, wenn die Zielfunktion optimiert wird. Beim Minimum Flip Problem ist
es sinnvoll, für alle paare von Spalten die c1 < c2 die drei Zeilen zu finden, die die “M”Ungleichung am stärksten verletzen, also
xt1 ,c1 + xt2 ,c1 + xt2 ,c2 + xt3 ,c2 − xt1 ,c2 − xt3 ,c1
=(xt1 ,c1 − xt1 ,c2 ) + (xt2 ,c1 + xt2 ,c2 ) + (xt3 ,c2 − xt3 ,c1 ) → max .
Dies wird offensichtlich dadurch erreicht, dass man
t1 := argmaxt (xt,c1 − xt,c2 )
t2 := argmaxt (xt,c1 + xt,c2 )
t3 := argmaxt (xt,c2 − xt,c1 )
32
3.4 Minimum-Flip-Probleme
findet, was problemlos in O(n) Zeit möglich ist. Man führt dies für alle Spaltenpaare in
O(nm2 ) Zeit insgesamt durch und fügt alle verletzten Ungleichungen zum LP hinzu.
Ein weiteres Problem ist die große Zahl an Variablen. Hier kann man einen weiteren Trick
anwenden: Man codiert die Lösung nicht durch die natürlichen Variablen xtc , sondern anhand
der Differenz zu den Daten. Dabei versucht man zunächst die korrekten Werte für die ?Einträge vorab geschickt zu erraten, so dass keine ?-Einträge mehr vorhanden sind. Die falsch
geratenen Einträge können immer noch kostenfrei geändert werden. Ist Wtc = 0, verwenden
wir wie gehabt xtc , benötigen die Variable aber nicht, solange sie den Wert Null annimmt.
Ist Wtc = 1, verwenden wir nicht xtc , sondern die komplementäre Variable ytc := 1 − xtc und
ersetzen in den Ungleichungen und in der Zielfunktion xtc durch 1 − ytc für diejenigen (t, c)
mit Wtc = 1. Weichen W und die optimale Lösung X an nur wenigen Stellen voneinander
ab, sind fast alle Variablen Null. Variablen, die Null sind und nie betrachtet werden, müssen
nicht in die Problemformulierung aufgenommen werden. Wir fügen eine Variable nur dann
zum Problem hinzu, wenn dies z.B. durch Hinzufügen einer verletzen Ungleichung notwendig
wird. Die Art der Variablen (ob xtc oder ytc = 1 − xtc ) verwendet wird, kann im Prinzip in
jedem Knoten neu entschieden werden; insbesondere für die ?-Einträge.
Für die eingentliche Lösung des LPs verwendet man einen Standard-LP-Solver, am besten
mit einem Front-End, dass die Formulierung und Lösung des Separierungsproblems und
der Column Generation auf einfache Art und Weise ermöglicht. Hierzu gibt es zahlreiche
kommerzielle und Open-Source-Tools.
33
3 Phylogenetik: Merkmalsbasierte Methoden
34
KAPITEL
4
Phylogenetik: Distanzbasierte Methoden
4.1 Metriken
Bisher haben wir merkmalsbasierte Methoden in der Phylogenetik betrachtet, bei denen
eine n × m-Merkmalsausprägungsmatrix gegeben ist. In diesem Abschnitt gehen wir davon
aus, dass eine Distanzmatrix D = (Dij ) gegeben ist, wobei Dij den evolutionären Abstand
zwischen Taxa i und j darstellt. In diesem Fall kann man die Kantenlänge in einem Baum
proportional zur Distanz zwischen zwei Knoten darstellen. Woher man solche Distanzen
bekommt, lassen wir im Moment beiseite, und gehen davon aus, dass eine passende Matrix
D gegeben ist.
Generell geht es nun darum, eine (ungewurzelte) Baumtopologie T = (V, E) und Kantenlängen ` : E → R≥0 zu finden, so dass die Summe der Kantenlängen auf dem Pfad
zwischen zwei Blättern i, j “möglichst gut” die gegebene Distanz Dij abbildet. Es gibt auch
die Variante, einen gewurzelten Baum zu berechnen, in dem zusätzlich jeder Pfad von der
Wurzel bis zu den Blättern gleich lang ist. Ein solcher Baum heißt ultrametrisch.
Eine exakte Lösung wird im Normalfall für beide Varianten nicht möglich sein, da ja (bei
Symmetrie der Distanzen) n(n − 1)/2 = Θ(n2 ) Werte gegeben sind, ein ungewurzelter
Binärbaum mit n Blättern aber nur 2n − 3 = Θ(n) Katen hat, deren Längen man bestimmen kann. Wir geben nun den speziellen Distanzmatrizen, die eine exakte Lösung des
Problems ermöglichen, spezielle Namen und widerholen zunächst den Begriff der Metrix.
(Wir setzen immer voraus, dass D eine Metrik ist.)
4.1 Definition (Metrik, additive Metrik, Ultrametrik). Sei D ≥ 0 eine n×n-Distanzmatrix.
Dann heißt D eine Metrik genau dann wenn
1. Dij = 0 genau dann wenn i = j (Definitheit),
35
4 Phylogenetik: Distanzbasierte Methoden
2. Dij = Dji für alle i, j (Symmetrie),
3. Dij ≤ Dik + Dkj für alle i, j, k (Dreiecksungleichung).
Eine Metrik D heißt additive Metrik genau dann wenn es einen ungewurzelten Baum mit
Kantenlängen gibt, in dem die Pfadlängen zwischen den Blättern mit den gegebenen Distanzen übereinstimmen.
Eine Metrik D heißt Ultrametrik genau dann wenn es einen gewurzelten Baum mit Kantenlängen gibt, in dem die Pfadlängen zwischen den Blättern mit den gegebenen Distanzen
übereinstimmen und alle Pfade von der Wurzel zu den Blättern gleich lang sind.
Natürlich ist die Definition über die Existenz eines Baumes nicht hilfreich, aber glücklicherweise
gibt es eine davon unabhängige Charakterisierung.
4.2 Lemma (additive Metrik, Ultrametrik). Eine Metrik ist genau dann additiv, wenn zu
je vier Objekten U, V, X, Y von den drei Distanzsummen S1 := D(U, V ) + D(X, Y ), S2 :=
D(U, X) + D(V, Y ) und S3 := D(U, Y ) + D(V, X) die beiden größten gleich sind (sogenannte
Vier-Punkte-Bedingung).
Eine Metrik ist genau dann eine Ultrametrik, wenn zu je drei Objekten U, V, X von den
drei Distanzen D(U, V ), D(U, X) und (V, U ) die beiden größten gleich sind ( Drei-PunkteBedingung).
Beweis. Durch eine Skizze und Ausrechnen der drei Distanzsummen in Quartetten bzw.
Betrachten der drei Distanzen in einem gewurzelten Tripel wird klar, dass in einem ungewurzelten bzw. gewurzelten ultrametrischen Baum die Pfadlängen die jeweilige genannte
Bedingung erfüllen.
Der Beweis der Umkehrung erfolgt konstruktiv durch Angabe von zwei Algorithmen in den
folgenden Abschnitten. Der erste konstruiert zu jeder Distanzmatrix einen ultrametrischen
Baum (und damit auch ein hierarchisches Clustering der Objekte). Wir werden zeigen, dass
für eine Metrik D, die die Drei-Punkte-Bedingung erfüllt, die Pfadlängen des Baums den
gegebenen Abständen entsprechen. Der zweite Algorithmus (NJ) konstruiert zu jeder Distanzmatrix einen ungewurzelten Baum mit Kantenlängen. Auch hier werden wir sehen,
dass im Fall einer Metrik D, die die 4-Punkte-Bedingung erfüllt, die Pfadlängen im Baum
den gegebenen Abständen entsprechen.
4.2 Agglomeratives Clustern
Die Idee beim agglomerativen Clustern ist, in einer Distanzmatrix D = (Dij )
1. das Paar i 6= j mit dem minimalen Abstand zu finden
2. i und j zu einem neuen Objekt (Unterbaum) { i, j } zu verschmelzen und die Zeilen
und Spalten i und j aus D zu streichen,
3. in D eine neue Zeile und Spalte { i, j } einzufügen, die die Abstände D(i, k) und D(j, k)
für alle verbleibenden k 6= i, j zu einem “Mittelwert” D({ i, j } , k) kombiniert,
4. die Schritte 1.–3. solange zu wiederholen, bis nur noch ein einzelnes Objekt übrig ist,
wobei sich in jeder Iteration die Anzahl der verbleibenden Objekte um eins verringert.
36
4.2 Agglomeratives Clustern
Zwei Details sind zu klären:
• Auf welcher Höhe liegt die Wurzel des Unterbaums { i, j }? Da wir einen Ultrametrischen Baum konstruieren wollen, bleibt nur die Möglichkeit D(i, j)/2. Da wir (per
Induktion) wissen, dass die Wurzeln der Unterbäume (bzw. die Blätter) i und j tiefer
(oder zumindest nicht höher) liegen, ergibt sich eine nichtnegative Kantenlänge von
den Wurzeln von i und j zur Wurzel von { i, j }.
• Wie berechnet sich in Schritt 3. der “Mittelwert” für das neue Objekt z := { i, j }? In
der Tat gibt es verschiedene Varianten des Agglomerativen Clusterns, die sich exakt
hierin unterscheiden, u.a.
1. Single-linkage Clustering: D(z, k) := min { D(i, k), D(j, k) }.
2. Complete-linkage Clustering: D(z, k) := max { D(i, k), D(j, k) }.
3. Weighted Pair Group Method using Averages (WPGMA): D(z, k) := [D(i, k) +
D(j, k)]/2.
4. Unweighted Pair Group Method using Averages (UPGMA): D(z, k) := [Si D(i, k)+
Sj D(j, k)]/(Si + Sj ), wobei Si und Sj die jeweils Anzahl der Objkete im Cluster
i und j sind (1 für ein Blatt).
In jedem Fall liegt D(z, k) zwischen D(i, k) und D(j, k).
4.3 Satz (Agglomeratives Clustern bei Ultrametriken). Erfüllt D die Drei-Punkte-Bedingung,
dann sind die vorgestellten Varianten äquivalent, der nach einem Iterationsschritt erzeugte
Baum z ist ein ultrametrischer Baum, in dem die Pfadlängen zwischen den Blättern mit den
gegebenen Distanzen übereinstimmen. und die reduzierte Datenmetrix D ist erfüllt wieder
die Drei-Punkte-Bedingung.
Beweis. Die vier genannten (und weitere sinnvolle) Varianten sind äquivalent, weil (i, j)
ein Paar mit minimaler Distanz ist, so dass D(i, k), D(j, k) ≥ D(i, j) gilt. Aufgrund der
Drei-Punkt-Bedingung gilt dann D(i, k) = D(j, k) = D(z, k) für jede der genannten Kombinationsvarianten. (Auf diese Art und Weise kann man während des Ablaufs des Algorithmus
prüfen, ob die Drei-Punkte-Bedingung erfüllt ist!)
Nach Induktion sind i und j selbst bereits ultrametrische Bäume (oder Blätter), die nun
zu einem neuen Baum mit Wurzel in Höhe D(i, j)/2 kombiniert werden. Wir haben bereits
gesehen, dass die Kanten zu den Wurzeln von i und j nichtnegative Länge haben. Damit
haben wir einen ultrametrischen Baum z = { i, j }, in dem die Pfade von der Wurzel zu
jedem Blatt die Länge D(i, j)/2 haben. Von den Unterbäumen i und j wussten wir schon,
dass sie ultrametrisch sind und die Pfadlängen die Distanzen korrekt abbilden. Jetzt müssen
wir nur noch die Pfade zwischen je einem Blatt i0 in i und einem Blatt j 0 in j betrachten:
Diese haben nun alle die Länge D(i, j), und aufgrund der Drei-Punkt-Eigenschaft ist klar,
dass in der ursprünglichen Matrix D alle die gleiche Länge gehabt haben müssen.
Nach der Reduktion entspricht D(z, k) den Werten D(i, k) = D(j, k). Die Matrix hat sich
also nicht verändert; es wurde nur die i-te (oder j-te) Zeile und Spalte gestrichen. Galt die
Drei-Punkt-Bedingung vorher, gilt sie immer noch.
37
4 Phylogenetik: Distanzbasierte Methoden
Laufzeit. Die Laufzeit des Verfahrens beträgt zunächst O(n3 ), da es n − 1 Iterationen gibt,
in denen das Minimum der Matrix gefunden werden muss. Mit Hilfe von Quadtrees (Epstein,
Fast hierachical clustering and other applications of dynamic closest pairs, Journal of Experimental Algorithms 5:1–23, 2000) lässt sich die Laufzeit auf O(n2 ) reduzieren. Quadtrees
erlauben das Einfügen und Löschen eines Objekts in O(n) Zeit und ebenso das Auffinden
eines Paars mit minimalem Abstand.
Andere Ideen zur Verbesserung der Laufzeit, für die man keine Quadtrees benötigt, lauten
wie folgt: Man ermittelt zunächst anfangs zu jedem Objekt i den nächsten Nachbarn
Ni := argminj6=i { Dij } .
(Im Allgemeinen folgt aus Ni = j nicht notwendigerweise Nj = i!) Dafür benötigt man
einmalig O(n2 ) Zeit. Um ein Paar mit minmalem Abstand zu finden, muss man nun nur
noch die Paare (i, Ni ) für i = 1, . . . , n betrachten. Die Kunst ist, nach einer Verschmelzung
die (nötigen) Ni schnell neu zu berechnen.
Im Fall des Single-linkage Clusterings ist das aber einfach effizient möglich: Werden i und j
zu z = { i, j } verschmolzen und ist für ein k bisher Nk = i oder Nk = j, dann gilt danach
Nk = z, und die anderen Nk ändern sich nicht. Damit werden alle Nk für k 6= z jeweils
in konstanter Zeit, also insgesamt in O(n) Zeit aktualisiert. Der neue Wert Nz kann trivial
in O(n) Zeit gefunden werden. Insgesamt benötigt man so nur O(n) Zeit pro Iteration und
insgesamt also O(n2 ).
Da bei ultrametrischen Daten alle vier genannten Varianten das gleiche Ergebnis liefern,
nämlich den korrekten ultrametrischen Baum, lässt sich also in O(n2 ) selbiger aus ultrametrischen Daten finden. Insbesondere lässt sich (vgl. die Bemerkung im Beweis von Satz 4.3)
in O(n2 ) Zeit prüfen, ob eine Metrik eine Ultrametrik ist.
Einfache Methoden, um auch UPGMA und WPGMA in O(n2 ) ohne komplexe Datenstrukturen auf beliebigen Eingaben durchzuführen, werden von Gronau und Moran (Optimal
Implementations of UPGMA and Other Common Clustering Algorithms, Information Processing Letters 104(6):205–210, 2007) beschrieben, zusammen mit einer Charakterisierung,
bei welchen Kombinationsregeln eine geschickte Nachbar-basierte Suche genau äquivalent zur
Minimum-Suche über alle O(n2 ) Matrixelemente ist. Ein weiteres Beispiel für eine ähnliche
Beschleunigung lernen wir im nächsten Abschnitt kennen.
Zusammenfassung. Die hier genannten Methoden berechnen in jedem Fall einen ultrametrischen Baum. Die Längen der Pfade zwischen den Blättern stimmen genau dann mit den
vorgegebenen Distanzen überein, wenn die Distanzmatrix eine Ultrametrik war. Ansonsten
bekommt man einen Baum, der von der Art der Kombinationsregel abhängt und eventuell
vom verwendeten Algorithmus, der das nächste zusammenzufassende Blattpaar auswählt.
Ein so berechnete Baum erfüllt insbesondere kein offensichtliches Optimalitätskriterium (etwa, dass die Summe der Abweichungen zu den vorgegebenen Distanzen minimiert wird),
und er kann einfach falsch sein, und zwar schon dann, wenn die Eingabe eine additive Metrik ist. Dies überlegt man sich am Minimalbeispiel des Quartetts (A:1, B:3 k C:1, D:3) als
Übungsaufgabe.
38
4.3 Neighbor Joining auf additiven Distanzen
4.3 Neighbor Joining auf additiven Distanzen
4.3.1 Motivation
Ein einfaches Beispiel zeigt, dass UPGMA bei einer nicht ultrametrischen aber additiven
Metrik nicht immer den korrekten Baum konstruiert: Betrachte das Quartett (ab : cd), bei
dem die Blattkanten zu a und c die Länge 1, die Blattkanten zu b und d die Länge 3 haben
und die innere Kante die Länge 1 hat. Im ersten UPGMA-Clustering-Schritt würde fälschlich
das Paar {a, c} zusammengefasst, da es die geringste Distanz (3) hat.
Im Folgenden stellen wir zunächst den Neighbor Joining Algorithmus vor, der auf additiven
Metriken einen ungewurzelten Baum konstruiert, in dem die Distanzen zwischen allen BlattPaaren den gegebenen Distanzen entsprechen.
Wir besprechen dann zwei Verbesserungen (man lasse sich dabei von der unterschiedlichen
Bedeutung des Wortes “fast” im Deutschen und im Englischen nicht verwirren!):
1. NJ rekonstruiert auch dann den korrekten Baum, wenn die Eingabe-Distanzen nur fast
additiv sind. Der Beweis dieser Tatsache ist nur wenig aufwändiger als der Beweis für
additive Distanzen selbst.
2. In seiner Rohform benötigt NJ auf n Taxa O(n3 ) Zeit. Dies lässt sich jedoch auf O(n2 )
verbessern; den resultierenden Algorithmus nennt man Fast Neighbor Joining (FNJ).
Die resultierenden Bäume sind bei additiven und fast additiven Eingabe-Metriken die
gleichen; auf anderen Eingaben können die Ergebnisse abweichen.
4.3.2 Definitionen
Wir definieren zunächst den Nachbarschaftsbegriff und Nachbarquartette.
4.4 Definition (Nachbarn, Nachbarpaar). Zwei Blätter a, b heißen Nachbarn oder Nachbarpaar in einem Baum T , wenn der Pfad zwischen ihnen aus genau zwei Kanten besteht.
Ein einem Binärbaum hat ein Blatt höchstens einen Nachbarn, aber nicht jedes Blatt muss
einen Nachbarn haben.
4.5 Definition (Nachbarquartett). Sei T ein Baum und {i, j}, {k, l} zwei verschiedene
Nachbarpaare in T . Dann sagen wir, T enthält das Nachbarquartett (ij : kl).
4.6 Lemma (Abstand zwischen Elternknoten von Nachbarpaaren). Sei D die von T induzierte additive Metrik. Seien {i, j}, {k, l} zwei verschiedene Nachbarpaare in T mit Eltern
ij und kl. Dann kann man den Abstand zwischen ij und kl berechnen als
wD (ij : kl) := (D(i, k) + D(i, l) + D(j, k) + D(j, l) − 2D(i, j) − 2D(k, l))/4.
Beweis. Durch Zeichnen des Nachbarquartetts (ij : kl) und Abzählen, wie oft jede Kante
benutzt wird.
39
4 Phylogenetik: Distanzbasierte Methoden
Algorithm 1 NJ(D): berechnet aus der Metrik D auf der Objektmenge N (D) mit |N (D)| ≥
3 einen ungewurzelten Baum
D1 ← D
for i ← 1, . . . , |N (D)| − 3 do
{ai , bi } ← argminx6=y SDi (x, y)
Reduziere das Paar {ai , bi } auf einen neuen Knoten ci ;
berechne Kantenlängen von {ai , ci } und {bi , ci } (Details später).
Berechne D0 :≡ Di+1 auf N (D0 ) := N (D) \ {ai , bi } ∪ {ci }:
für x, y 6= ci ist D0 (x, y) = Di (x, y) unverändert;
sonst berechne D0 (x, ci ) aus Di (x, ai ) und Di (x, bi ) (Details später).
Verbinde die 3 verbleibenden Objekte zu einem Sternbaum mit passenden Kantenlängen.
return Zentrum des Sternbaums.
4.3.3 Übersicht und Algorithmus
Die Idee ist grundsätzlich die gleiche wie bei den hierarchischen Clustering-Algorithmen
UPGMA, etc.: Zu einer gegebenen Metrik D wählen wir ein geeignetes Paar an Objekten
(Taxa) aus, fassen diese zu einem neuen Objekt zusammen, entfernen die ursprünglichen
Objekte aus der Menge der zu bearbeitenden Objekte und fügen das neue hinzu, nachdem
wir die Distanzen zwischen dem neuen und allen verbleibenden Objekten berechnet haben.
Dadurch wird in jedem Schritt die Menge der zu bearbeitenden Objekte um ein Objekt
reduziert, bis nur noch drei Objekte übrig sind. Diese werden zu einem Sternbaum zusammengefasst.
Der Unterschied zwischen UPGMA und NJ besteht in der Berechnung des Auswahlkriteriums für die zusammenzufassenden Objekte. Bei UPGMA wurde das Paar mit minimaler
Distanz ausgewählt, was bei Ultrametriken aufgrund der 3-Punkt-Bedingung zu korrekten
Ergebnissen führt, bei additiven Metriken jedoch nicht immer (siehe Beispiel oben).
Die Struktur des Algorithmus ist in Algorithmus 1 beschrieben. Aus der Eingabe D mit Objektmenge N (D) mit |N (D)| = n ≥ 3 wird eine Folge D = D1 , D2 , . . . Dn−3 von reduzierten
Metriken konstruiert. Wir lassen dabei momentan noch Details offen (etwa, wie die neuen
Distanzen oder die Kantenlängen der zusammengesetzten Objekte genau gewählt werden).
In der angegebenen Form ergibt sich mit |N (D)| = n eine Laufzeit von O(n3 ). Wir werden
sehen, dass sich dies noch verbessern lässt.
4.3.4 Das Auswahlkriterium SD
Gedanken zur Identifizierung eines benachbarten Paars. Wenn {a, b} in einem Baum T
mit additiver Distanz D ein benachbartes Paar ist, dann existiert für alle c, d ∈
/ {a, b} das
Quartett (ab : cd) in T (es ist nicht unbedingt ein Nachbarquartett, da c und d nichtnotwendigerweise Nachbarn sind). Insbesondere ist dann wD (ab : cd) für alle c, d nichtnegativ.
Sind aber a, b nicht benachbart, dann kann es Belegungen für c, d geben, für die wD (ab : cd)
negativ wird.
40
4.3 Neighbor Joining auf additiven Distanzen
Dies legt nahe, die Summe
ZD (a, b) :=
X
wD (ab : xy)
x,y ∈{a,b}
/
zu maximieren, also {a, b} = argmaxu,v ZD (u, v) als Nachbarpaar auszuwählen.
In der Tat ist dies das korrekte Kriterium; es lässt sich jedoch erheblich vereinfachen. Durch
Ausrechnen kann man zeigen, dass
ZD (a, b) = −G − (n − 1) · ((n − 2)D(a, b) − R(a) − R(b)),
P
P
P
wobei R(x) := y D(x, y) und G := x R(x) = x,y D(x, y) gesetzt wurde. Da G nicht
von a, b abhängt, ist die Maximierung von ZD (a, b) äquivalent zur Minimierung von
SD (a, b) := (n − 2) · D(a, b) − R(a) − R(b).
(4.1)
Im Auswahlschritt des NJ-Algorithmus wird also das Paar {a, b} gefunden, dass SD minimiert. Im Folgenden beweisen wir einige Eigenschaften des Auswahlkriteriums SD , die dessen
Wahl rechtfertigen.
Eigenschaften des Auswahlkriteriums. Wir erwähnen zunächst eine Verschiebungsinvarianz von SD , dessen Beweis durch Nachrechnen erfolgt.
4.7 Lemma (Verschiebungslemma; Mihaescu et al., 2006). Sei D̃ eine Verschiebung von D,
d.h., es gebe ein Blatt c ∈ N (D) und eine Konstante σ, so dass
D̃(x, c) = D(x, c) + σ für x 6= c,
D̃(c, c) = D(c, c) = 0,
D̃(x, y) = D(x, y) für alle x, y 6= c.
Dann ist SD̃ (x, y) = SD (x, y) − 2σ für alle x, y.
Wir kommen jetzt zu den wichtigen Eigenschaften von SD , die im folgenden Lemma und
Satz zusammengefasst sind.
4.8 Lemma (Saitou & Nei, 1987). Sei T ein ungewurzelter Binärbaum mit gegebenen Kantenlängen, D die zugehörige additive Metrik, und SD wie in (4.1) definiert. Seien a, b Nachbarn in T . Dann ist SD (a, b) = miny6=a SD (a, y).
Beweis. Sei y 6= a, b. Nach Definition ist
SD (a, y) − SD (a, b) = (n − 2) · [D(a, y) − D(a, b)] + R(b) − R(y)
X
=
[D(a, y) − D(a, b) + D(x, b) − D(x, y)]
x6=a,b,y
≥ 0,
denn nach der 4-Punkt-Bedingung ist stets D(a, b)+D(x, y) ≤ D(a, y)+D(x, b), also für jedes
x 6= a, b, y der Summand nichtnegativ. Damit ist SD (a, b) ≤ SD (a, y) für alle y 6= a, b.
41
4 Phylogenetik: Distanzbasierte Methoden
Das Lemma sagt aus, dass der Nachbar b von a (wenn es ihn gibt), die Funktion SD (a, ·)
minimiert. Unklar ist noch, dass das Minimum über beide Argumente tatsächlich ein Nachbarpaar liefert, denn nicht jedes Blatt muss Nachbarn haben. Wichtiger ist daher die folgende
Umkehrung des Lemmas.
4.9 Satz (Studier & Keppler, 1988). Sei T ein ungewurzelter Binärbaum mit gegebenen
Kantenlängen, D die zugehörige additive Metrik, und SD wie in (4.1) definiert. Sei {a, b} :=
argminx6=y SD (x, y). Dann sind a und b Nachbarn in T .
Zum Beweis sammeln wir weitere Eigenschaften von SD ; zuerst ein Darstellungslemma.
4.10 Lemma (Darstellungslemma). Sei T ein ungewurzelter Binärbaum mit Blättern L(T ),
Kanten E(T ) und gegebenen Kantenlängen (`(e))e∈E(T ) . Sei D = DT die zugehörige additive
Metrik mit Objektmenge N (D) = L(T ), und sei SD wie in (4.1) definiert. Dann lässt sich
jedes SD (a, b) als Linearkombination der Kantenlängen schreiben:
X
we (a, b) · `(e)
SD (a, b) =
e∈E(T )
(
−2
mit we (a, b) =
−2 · |L(T ) \ LT (a, e)|
wenn e ∈ PT (a, b),
sonst,
wobei PT (a, b) den Pfad zwischen a und b in T bezeichnet, und LT (a, e) ⊂ L(T ) die Menge
der Blätter, die nach Entfernen der Kante e in derselben Zusammenhangskomponente wie a
liegen (inklusive a selbst).
P
Beweis. Da D(a, b) =
e∈PT (a,b) `(e) eine Linearkombination der Kantenlängen ist und
SD (a, b) linear in D, ist auch SD (a, b) eine Linearkombination der `(e). Wir berechnen die
Gewichte.
Sei e ∈ PT (a, b). Nach der Definition von SD gilt we (a, b) = (n−2)−|{x : e ∈ PT (a, x)}|−|{x :
e ∈ PT (b, x)}|. Man gelangt von a nach x über e genau dann wenn man von b nach x die
Kante e nicht benutzen muss. Daher gilt |{x : e ∈ PT (a, x)}| + |{x : e ∈ PT (b, x)}| = n und
man erhält we (a, b) = −2.
Nun sei e ∈
/ PT (a, b). Nach der Definition von SD gilt we (a, b) = −|{x : e ∈ PT (a, x)}| − |{x :
e ∈ PT (b, x)}|. Nach Entfernen von e liegen a und b in derselben Zusammenhangskomponente
mit der Blattmenge LT (a, e) = LT (b, e). Daher muss man zum Erreichen von genau |L(T ) \
LT (a, e)| Blättern die Kante e überqueren.
Beweis. [Satz 4.9] Wenn a überhaupt einen Nachbarn b hat, ist wegen Lemma 4.8 bereits
SD (a, b) ≤ SD (a, x) für alle x 6= a, b. Der Satz ist also bewiesen, wenn wir zu jedem Paar
{x, y}, wobei sowohl x als auch y keinen Nachbarn hat, ein Nachbarpaar {a, b} finden mit
SD (a, b) < SD (x, y).
Wir betrachten Abb. 4.1: Seien x0 , y 0 die zu x, y adjazenten inneren Knoten. Sei e die zu
x0 inzidente Kante auf PT (x0 , y 0 ). Wenn wir den Pfad PT (x0 , y 0 ) entfernen, erhalten wir zwei
Teilbäume von T , die wir mit T x und T y bezeichnen. ObdA sei T x der kleinere (mit weniger
oder gleich vielen Blätter wie T y ); also |L(T x )| ≤ n/2.
42
4.3 Neighbor Joining auf additiven Distanzen
Abbildung 4.1: Skizze zum Beweis von Satz 4.9 (noch zu überarbeiten!)
Da weder x noch y einen Nachbarn hat, muss es sowohl in T x als auch T y Nachbarpaare
geben. Sei {a, b} ein beliebiges Nachbarpaar in T x ; wir zeigen, dass dieses die Bedingung
erfüllt. Sei f die vom gemeinsamen Vorfahren wegführende Kante; wir berechnen nun Kantengewichte und behaupten: Es ist wg (x, y) ≥ wg (a, b) für alle Kanten g. Damit ist nach dem
Darstellungslemma dann insbesondere SD (x, y) ≥ SD (a, b).
Wir unterscheiden zum Beweis die folgenden Fälle (Abbildung 4.1):
• Für alle Blattkanten gilt stets ein Gewicht von −2, also Gleichheit.
• Nichtblattkanten g in T x (z.B. f ) liegen weder auf PT (a, b) noch auf PT (x, y), also ist
wg (x, y) = −2(n − |LT (x, g)|),
wg (a, b) = −2(n − |LT (a, g)|).
Da g innerhalb des kleineren Baums T x liegt, ist |LT (a, g)| ≤ |LT (x, g)|, un damit auch
wg (a, b) ≤ wg (x, y).
• Kanten g zwischen x0 und y 0 (z.B. e) liegen auf PT (x, y); daher gilt wg (x, y) = −2 ≥
wg (a, b).
• Für Nichtblattkanten g in T y liegen alle vier Knoten a, b, x, y auf derselben Seite von
g; daher gilt wg (x, y) = wg (a, b). Dasselbe gilt für Kanten, die weder in T x noch in T y
noch auf dem Pfad zwischen x0 und y 0 liegen.
Wir können die Abschätzung sogar präzisieren: Es ist insbesondere für die Kanten e und f :
• we (x, y) = −2 und we (a, b) = −2|L(T ) \ L(T x )| ≤ −n;
• wf (x, y) = −4 und wf (a, b) = −2(n − 2).
Setzen wir µ(T ) := mine∈E(T ) `(e) als die minimale Kantenlänge in T , dann gilt
SD (x, y) − SD (a, b) ≥ (−2 + n − 4 + 2(n − 2))µ(T ) = (3n − 10)µ(T ) ≥ 8µ(T ),
da n ≥ 6, wenn weder x noch y Nachbarn haben. Die zeigt, dass es zu jedem Blattpaar
{x, y}, bei dem sowohl x als auch y keinen Nachbarn hat, stets ein Nachbarpaar {a, b} im
kleineren Teilbaum T x gibt, dessen SD -Wert um mindestens (3n − 10)µ(T ) geringer ist als
der von {x, y}.
Zusammen mit dem Verschiebungslemma ergibt sich aus dem eben bewiesenen Satz folgende
Eigenschaft von SD : Das Auswahlkriterium ist invariant gegenüber dem Verlängern und
Verkürzen einer Blattkante. Ist beispielsweise {a, b} das minimale Paar bezüglich D und
43
4 Phylogenetik: Distanzbasierte Methoden
erhält man D̃ durch eine Veschiedung von a um σ (was einer Verlängerung der Blattkante zu
a um σ entspricht), dann ist auch {a, b} das minimale Paar bezüglich D̃; denn SD̃ und SD
unterscheiden sich wegen dem Verschiebungslemma um die Konstante 2σ. In beiden Fällen
ist { a, b } ein Nachbarpaar.
4.3.5 Berechnung der Kantenlängen und der neuen Distanzen
Wir haben gesehen, dass bei Eingabe einer additiven Matrix im ersten NJ-Schritt tatsächlich
ein Nachbarpaar ausgewählt wird. Um weitere Aussagen über NJ zu treffen, müssen wir
noch spezifizieren, wie genau die nächste Metrik D0 ≡ Di+1 aus D ≡ Di berechnet wird (vgl.
Algorithmus 1).
Wir fassen das in Schritt i neu gebildete Blatt ci als Wurzel oder Vorfahren von {ai , bi } auf
und berechnen mit Hilfe einer Skizze
D0 (ci , x) := [D(ai , x) + D(bi , x) − D(ai , bi )]/2.
(4.2)
Die Kantenlängen `(ai , ci ) und `(bi , ci ) ergeben sich dann als
`(ai , ci ) = D(ai , x) − D0 (ci , x) = [D(ai , x) − D(bi , x) + D(ai , bi )]/2 (x 6= ai , bi , ci beliebig).
Bei additiven Distanzen D ergibt sich für jede Wahl von x der gleiche Wert. (Hieran kann man
Additivität testen!) Allgemein (bei nur fast oder nicht additiven Distanzen) ist es sinnvoll,
den Mittelwert über alle x 6= ai , bi zu bilden; es ergibt sich
`(ai , ci ) := [R(ai ) − R(bi )]/2(n − 2) + D(ai , bi )/2,
(4.3)
`(bi , ci ) := [R(bi ) − R(ai )]/2(n − 2) + D(ai , bi )/2.
(4.4)
4.11 Lemma. Sei D additiv; dazu gehöre Baum T . Sei { a, b } das Nachbarpaar in T , das
von NJ zusammengefasst wird und c der Vorfahre. Die gemäß (4.2) berechneten Distanzen
D0 (c, x) die Summen der Pfadlängen zwischen dem inneren Knoten c und dem Blatt x in T .
Dann sind `(a, c) und `(b, c) gemäß (4.3) und (4.4) die Kantenlängen von (a, c) bzw. (b, c)
in T . Es ist also
D(a, b) = `(a, c) + `(b, c)
D(a, x) = `(a, c) + D0 (c, x) für alle x 6= a, b
D(b, x) = `(b, c) + D0 (c, x) für alle x 6= a, b.
Beweis. Dass NJ überhaupt ein Nachbarpaar zusammenfasst, folgt aus Satz 4.9. Dass
D0 (c, x) wie berechnet mit der Summe der Pfadlänge zwischen c und x übereinstimmt, wurde
oben bereits gezeigt. Dass die berechneten `(a, c) und `(b, c) den Kantenlängen in T entsprechen, wurde ebenfalls bereits nachgerechnet: für alle x gilt `(a, c) = D(a, x)−D0 (c, x). Daraus
folgen dann auch die verbleibenden Formeln.
Als einfache Folgerung erhalten wir die Tatsache, dass D0 = Di+1 wieder eine additive
Distanzmatrix ist, und zwar zum gleichen Baum wie Di , wobei nur die Blätter ai und bi
durch ihren Vorfahren ersetzt wurden.
44
4.4 Neighbor Joining auf fast additiven Distanzen
4.12 Lemma. Sei D eine additive Metrik und D0 die nach einem NJ-Schritt reduzierte
Distanzmatrix. Dann ist D0 additiv.
Beweis. Sei T der Baum zu D, und sei {ai , bi } das im NJ-Schritt ausgewählte Blattpaar.
Sei ci in T der Vorfahre von ai , bi und sei c0i der verbleibenden zu ci adjazente Knoten.
Wir betrachten den Baum S = T \ {ai , bi }, in dem ci nun ein Blatt ist, bei dem sich die
Längen der verbleibenden Kanten gegenüber T nicht ändern. Wir behaupten D0 enthält die
paarweisen Blattabstände in S und ist damit additiv. Dies haben wir aber mit Lemma 4.11
schon gezeigt.
4.3.6 Korrektheit des NJ-Algorithmus
Der folgende Satz fasst zusammen, dass NJ auf additiven Distanzen den korrekten Baum
berechnet.
4.13 Satz. Sei T ein ungewurzelter Binärbaum mit gegebenen Kantenlängen `T (e) und D
die zugehörige additive Metrik. Dann rekonstruiert NJ(D) den Baum T mit den korrekten
Kantenlängen.
Beweis. Satz 4.9 liefert, dass NJ ein Nachbarpaar auswählt. Die Wahl der Kantenlängen
`(ai , ci ) und `(bi , ci ) in Abschnitt 4.3.5 stellt sicher, dass die Kantenlängen bei einer additiven
Metrik korrekt gewählt werden. Lemma 4.12 liefert, dass die reduzierte Metrik wieder additiv
ist.
4.4 Neighbor Joining auf fast additiven Distanzen
Der “Spielraum” von (3n − 10)µ(T ) im Beweis von Satz 4.9 liefert einen Hinweis, dass NJ
noch besser ist als bisher gezeigt, und auch auf nicht perfekt additiven Distanzen das korrekte
Ergebnis liefert.
4.14 Definition. Eine Metrik D heißt fast additiv, wenn es einen Baum T mit induzierter
additiver Metrik DT gibt, so dass
kD − DT k∞ := max |D(x, y) − DT (x, y)| < µ(T )/2,
x,y
wobei wieder µ(T ) := mine∈E(T ) `(e). Man sagt dann auch (aufgrund der Eindeutigkeit von
T ; siehe folgendes Lemma), D ist fast additiv in Bezug zu T , oder D ist eine zu T gehörende
fast additive Metrik.
4.15 Lemma (Eindeutigkeit des Bezugsbaums). Sei D fast additiv in Bezug zu S und zu
T . Dann stimmen die Topologien von S und T überein.
Beweis. Seien DT und DS die zu T und S gehördenden additiven Metriken. Sei (ij : kl)
ein Quartett in T . Wir zeigen, dass (ij : kl) auch ein Quartett in S ist. Dies gilt für alle
Quartette, und auch mit vertauschten Rollen von S und T . Damit stimmen die Mengen der
Quartette von S und T überein, und damit auch die Baumtopologien.
45
4 Phylogenetik: Distanzbasierte Methoden
Unter der Voraussetzung, dass (ij : kl) ein Quartett in T ist, zeigen wir DS (i, j) + DS (k, l) <
DS (i, k) + DS (j, l) + 2µ(S):
DS (i, j) + DS (k, l) < D(i, j) + D(k, l) + µ(S)
(D fast additiv zu S)
< DT (i, j) + DT (k, l) + µ(S) + µ(T )
(D fast additiv zu T )
≤ DT (i, k) + DT (j, l) + µ(S) − µ(T )
(4-Punkte-Bedingung in T )
< D(i, k) + D(j, l) + µ(S)
(D fast additiv zu T )
< DS (i, k) + DS (j, l) + 2µ(S)
(D fast additiv zu S)
Angenommen, es sei (ik : jl) ein Quartett in S; dann würde folgen, dass
DS (i, k) + DS (j, l) ≤ DS (i, j) + DS (k, l) − 2µ(S)
< DS (i, k) + DT (j, l)
(4-Punkte-Bedingung in S)
(obige Rechnung);
ein Widerspruch. Daher ist (ik : jl) kein Quartett in S. Eine analoge Rechnung zeigt, dass
auch (il : jk) kein Quartett in S ist. Daher muss (ij : kl) ein Quartett in S sein, was zu
zeigen war.
Die zu beweisende Verallgemeinerung von Satz 4.9 lautet nun
4.16 Satz (Atteson, 1999; Elias & Lagergren, 2008). Sei T ein ungewurzelter Binärbaum mit
gegebenen Kantenlängen, D eine zu T gehörende fast additive Metrik, und SD wie in (4.1)
definiert. Sei {a, b} := argminx6=y SD (x, y). Dann sind a und b Nachbarn in T .
Zum Beweis müssen wir einige technische Vorbereitungen treffen. Das nächste Lemma zeigt,
dass sich SD und SDT nicht beliebig unterscheiden können, wenn man die Differenz auf drei
oder vier Punkten betachtet.
4.17 Lemma (Technisches Lemma). Sei T ein ungewurzelter Binärbaum mit gegebenen
Kantenlängen, DT die von T induzierte additive Metrik, und D eine zu T gehörende fast
additive Metrik. Sei µ(T ) := mine `(e), und seien a, b, x, y Objekte aus N (D). Dann gilt:
SD (a, b) − SDT (a, b) + SDT (x, y) − SD (x, y)
(
−3(n − 4) · µ(T ), wenn a, b, x, y paarweise verschieden,
>
−2(n − 3) · µ(T ), wenn |{a, b} ∩ {x, y}| = 1.
Beweis. Der Fall, dass a, b, x, y verschieden sind, ist elementar mit Hilfe der Definition von
SD nachzurechnen. Es ist für a 6= b:
|SD (a, b) − SDT (a, b)| = |[(n − 2)D(a, b) − R(a) − R(b)] − [(n − 2)DT (a, b) − RT (a) − RT (b)]|
≤ (n − 2)|D(a, b) − DT (a, b)| + |R(a) − RT (a)| + |R(b) − RT (b)|
< (n − 2)µ(T )/2 + (n − 1)µ(T )/2 + (n − 1)µ(T )/2
= 3n − 4µ(T )/2.
Dieselbe Abschätzung ergibt sich für x, y, also insgesamt > −(3n − 4)µ(T ) > −3(n − 4)µ(T ),
wie behauptet.
46
4.4 Neighbor Joining auf fast additiven Distanzen
Abbildung 4.2: Skizze zum Beweis von Lemma 4.19 (noch zu überarbeiten!)
Im anderen Fall sei oBdA b = x, so dass wir einen Sternbaum mit den 3 Blättern a, b = x, y
betrachten; der innere Knoten sei u. Nun ist
SD (a, b) − SDT (a, b) + SDT (b, y) − SD (b, y) = [(n − 2)D(a, b) − R(a) − R(b)] − [(n − 2)DT (a, b) − RT (a) − RT (
= (n − 2)[D(a, b) − DT (a, b) + DT (y, b) − D(y, b)] + [R(a) − RT (a)
> (n − 2)(−2µ(T )/2) + (n − 1)(−2µ(T )/2)
= −(2n − 3)µ(T )
> −2(n − 3)µ(T ),
wie behauptet.
Das folgende Sichtbarkeitslemma verallgemeinert Lemma 4.8 auf fast additive Distanzen.
Zunächst definieren wir:
4.18 Definition (Sichtbarkeit). Der Knoten b oder das Paar {a, b} heißt sichtbar von a
aus, wenn SD (a, b) = minx6=a SD (a, x). Das Paar {a, b} heißt sichtbar, wenn es von a oder b
sichtbar ist.
4.19 Lemma (Sichtbarkeitslemma). Sei T ein ungewurzelter Binärbaum auf n Taxa mit
gegebenen Kantenlängen `(e) mit µ(T ) := mine `(e) > 0. Sei D eine zu T gehörende fast
additive Metrik, und SD wie in (4.1) definiert. Wenn a, b Nachbarn in T sind, dann ist {a, b}
von a aus sichtbar.
Beweis. Wir zeigen SD (a, c) > SD (a, b) für alle c 6= a, b. Dazu sei DT die von T induzierte
additive Metrik. Wir zerlegen
SD (a, c) − SD (a, b)
= [SD (a, c) − SDT (a, c) + SDT (a, b) − SD (a, b)] + [SDT (a, c) − SDT (a, b)]
und sehen, dass die erste Klammer nach dem technischen Lemma > −2(n − 3)µ(T ) ist.
Nach Lemma 4.8 ist auch die zweite Klammer zumindest nicht negativ. Wir zeigen jetzt,
dass sie sogar ≥ 2(n − 3)µ(T ) ist; damit gilt dann SD (a, c) − SD (a, b) > 0, was zu zeigen
war.
Wir wählen also ein c 6= a, b und benennen die Blattkanten zu a, b, c jeweils ea , eb , ec . Da
a und b Nachbarn sind, gibt es genau eine dritte Kante e, die zum gemeinsamen Vorfahren
von a und b inzident ist und nicht zu a oder b führt (Abbildung 4.2).
Wir berechnen jetzt mit Hilfe des Darstellungslemmas wieder einige Kantengewichte:
47
4 Phylogenetik: Distanzbasierte Methoden
• Für Blattkanten f ∈ {ea , eb , ec } gilt stets wf (a, c) = wf (a, b) = −2.
• Für Kanten f ∈ PT (a, c), f 6= ea , ec gilt wf (a, c) = −2 > −4 ≥= wf (a, b).
Insbesondere gilt we (a, c) = −2 > −2(n − 2) = we (a, b).
• Für Kanten f ∈
/ PT (a, c) gilt stets wf (a, c) = wf (a, b).
Also sind für alle f die Gewichtsdifferenzen wf (a, c) − wf (a, b) > 0 und daher
SD (a, c) − SD (a, b)
X
[wf (a, c) − wf (a, b)] · `(f )
=
f
≥ µ(T ) ·
X
[wf (a, c) − wf (a, b)]
f
≥ µ(T ) · (−2 + 2(n − 2)) = 2(n − 3)µ(T ).
Mit Hilfe dieses Lemmas können wir den Beweis von Satz 4.16 nun führen.
Beweis. [Satz 4.16] Wir gehen vor wie beim Beweis von Satz 4.9 in Abschnitt 4.3.4: Wenn
a überhaupt einen Nachbarn hat, ist wegen dem Sichtbarkeitslemma (Lemma 4.19) bereits
SD (a, b) < SD (a, x) für alle x 6= a, b. Der Satz ist also bewiesen, wenn wir zu jedem Paar
{x, y}, wobei sowohl x als auch y keine Nachbarn hat, ein Nachbarpaar {a, b} finden mit
SD (x, y) > SD (a, b).
Sei wieder DT die von T induzierte additive Metrik. Wir zerlegen
SD (x, y) − SD (a, b)
= [SD (x, y) − SDT (x, y) + SDT (a, b) − SD (a, b)] + [SDT (x, y) − SDT (a, b)]
> − 3(n − 4)µ(T ) + (3n − 10)µ(T )
= 2µ(T ) > 0,
wobei wir das technische Lemma 4.17 und den Beweis von Satz 4.9 auf SDT angewendet
haben.
Um die Korrektheit von NJ auf fast additiven Distanzen zu beweisen, benötigen wir noch,
dass nach einem NJ-Schritt die neue Distanzmatriz ebenfalls wieder fast additiv ist.
4.20 Lemma. Sei D eine fast additive Metrik und D0 die nach einem NJ-Schritt reduzierte
Distanzmatrix. Dann ist D0 fast additiv.
Beweis. Dies zeigen wir wie im Beweis von Lemma 4.12 durch denselben Baum S wie
dort; wir müssen nachweisen, dass |D0 (x, y) − DS (x, y)| < µ(S)/2 für alle x, y unter der
Voraussetzung, dass |D(x, y) − DT (x, y)| < µ(T )/2 für alle x, y.
Nun ist µ(S) ≥ µ(T ) und somit für x, y 6= ci bereits D0 (x, y) = D(x, y) und DS (x, y) =
DT (x, y), also |D0 (x, y) − DS (x, y)| = |D(x, y) − DT (x, y)| < µ(T )/2 ≤ µ(S)/2.
48
4.5 Fast Neighbor Joining
Es bleiben die Distanzen zu c = ci zu betrachten. Sei c0 der einzige zu c adjazente Knoten
in S. Dann ist
|D0 (x, c) − DS (x, c)|
= |(D(x, a) + D(x, b))/2 − DS (c0 , x) − `S (c, c0 )|
= |(D(x, a) + D(x, b))/2 − DT (c0 , x) − `T (c, c0 ) − (`T (c, a) + `T (c, b))/2|
= |(D(x, a) − DT (x, a))/2 + (D(x, b) − DT (x, b))/2|
< µ(T )/4 + µ(T )/4 ≤ µ(S)/2,
was zu zeigen war.
4.21 Satz. Sei T ein ungewurzelter Binärbaum mit gegebenen Kantenlängen `T (e) und eine
D zugehörige fast additive Metrik. Dann rekonstruiert NJ(D) die Baumtopologie von T .
Beweis. Die Korrektheit folgt aus dem Satz von Atteson (Satz 4.16) und aus Lemma 4.20.
Zusammenfassung der Beweisstrategie. Wir fassen noch einmal die Beweisstrategie für
die Korrektheit von NJ auf (fast) additiven Metriken D mit zugehörigem Baum T zusammen.
1. Wenn a und b Nachbarn in T sind, ist SD (a, b) = minx6=a SD (a, x); d.h., b ist von a aus
sichtbar [Lemma 4.8 bzw. Sichtbarkeitslemma].
2. Betrachtet man {a, b} = argminx6=y SD (x, y), dann sind a und b in T Nachbarn [Satz 4.9
bzw. Satz 4.16].
3. Fügt man die so bestimmten a, b zu c zusammen und berechnet die sich ergebenden
neuen Distanzen D0 , so ist D0 ebenfalls wieder (fast) additiv [Satz 4.13 bzw. Satz 4.21].
4.5 Fast Neighbor Joining
Neighbor Joining ist nach dem bisher Gesagten also ein Algorithmus mit der Eigenschaft,
dass er robust gegenüber kleinen Fehlern in additiven Eingabedistanzen ist. Ungünstig ist
die Tatsache, dass eine direkte Implementierung von Algorithmus 1 auf n Taxa eine Laufzeit
von O(n3 ) hat. Wir zeigen nun, wie diese auf O(n2 ) reduziert werden kann, so dass die oben
genannten Eigenschaften (korrekter Baum auf fast additiven Eingabedistanzen) erhalten
bleiben. Das resultierende Verfahren heißt demzufolge Fast Neighbor Joining (FNJ). Auf
Distanzen, die “weit weg” von additiven Distanzen sind, können NJ und FNJ verschiedene
Bäume liefern, und es gibt keinen Konsens darüber, welches Verfahren in diesem Fall “besser”
ist. In der Regel wird man sich daher für das schnellere FNJ entscheiden.
Der erste Trick besteht darin, das Minimum von SD (x, y) nicht über alle Paare {x, y} zu suchen, sondern nur über die sichtbaren Paare. Beim Neuberechnen der Distanzen müssen wir
dann sicherstellen, dass die Menge ebenfalls korrekt aktualisiert wird. Der zweite Trick besteht in der effizienten Aktualisierung der Summen R(x) in jedem Schritt, so dass insgesamt
jede der n − 3 Iterationen in O(n) Zeit erfolgen kann.
49
4 Phylogenetik: Distanzbasierte Methoden
Algorithm 2 FNJ(D): berechnet aus der Metrik D auf der Objektmenge N (D) mit n :=
|N (D)| ≥ 3 einen ungewurzelten Baum in O(n2 ) Zeit
P
Initialisiere R(a) ← x D(a, x) für alle a ∈ N (D)
Initialisiere sichtbare Menge V ← {{a, argminx6=a SD (a, x)} : a ∈ N (D)}
for i ← 1, . . . , n − 3 do
{a, b} ← argmin{x,y}∈V [(|N (D)| − 2) · D(x, y) − R(x) − R(y)]
Reduziere {a, b} auf ein neues Blatt c und berechne Kantenlängen
`(a, c) ← [R(a) − R(b)]/2(|N (D)| − 2) + D(a, b)/2,
`(b, c) ← [R(b) − R(a)]/2(|N (D)| − 2) + D(a, b)/2.
Aktualisiere D auf neue Blattmenge N (D) ← N (D) \ {a, b} ∪ {c} durch
D(c, x) ← [D(a,P
x) + D(b, x) − D(a, b)]/2 für alle x 6= a, b, c.
Berechne R(c) ← x D(c, x).
Für alle y 6= c, aktualisiere R(y) ← R(y) − D(a, y) − D(b, y) + D(c, y)
c0 ← argminy6=c [(|N (D)| − 2) · D(c, y) − R(c) − R(y)]
Aktualisiere V ← V \ {{a, x}, {b, x} : x ∈ N (D)} ∪ {{c, c0 }}
Verbinde die 3 verbleibenden Objekte zu einem Sternbaum
Berechne die Kantenlängen des Sternbaums
return Sternbaum bzw. dessen Wurzel
Algorithmus 2 zeigt die einzelnen Schritte, die wir im Folgenden analysieren. Zunächst die
Laufzeit: Die Initialisierung ist in O(n2 ) Zeit problemlos möglich; in der for-Schleife benötigt
jeder einzelne Schritt nur konstante oder O(n) Zeit.
Der Unterschied zu NJ besteht nur darin, dass in Zeile 4 über die sichtbare Menge V statt
über alle Paare x 6= y minimiert wird und SD (x, y) on-the-fly aus D und R in konstanter Zeit
berechnet wird. In den Zeilen ... sieht man, wie R für jedes verbleibende Blatt in konstanter
Zeit aktualisiert wird.
Wir wollen nun zeigen, dass FNJ auf (fast) additiven Distanzen das gleiche Ergebnis liefert
wie NJ (nämlich den korrekten Baum). Dazu müssen wir nur sicherstellen, dass nach jeder
Iteration das nächste Nachbarpaar, das NJ im nächsten Schritt auswählen würde, in V ist.
4.22 Satz. Auf (fast) additiven Distanzen liefert FNJ denselben Baum wie NJ.
Beweis. Das Sichtbarkeitslemma für fast additive Distanzen garantiert zu Beginn der ersten
Iteration, dass alle Blatt-Nachbarpaare des korrekten Baums T (der von NJ rekonstruiert
wird), in V liegen. Satz 4.16 garantiert, dass das ausgewählte Paar ein Nachbarpaar ist. Durch
die Initialisierung von V ist klar, dass FNJ und NJ im ersten Schritt dasselbe Nachbarpaar
(a, b) auswählen und reduzieren.
Nach einem Reduktionsschritt ist die resultierende Distanz wieder fast additiv. Es gibt dann
zwei Möglichkeiten: (1) Das nächste von NJ ausgewählte Paar enthält den neuen Knoten c;
dann muss es sich wieder nach dem Sichtbarkeitslemma um das gerade zu V hinzugefügte
{c, c0 } handeln; (2) das nächste Paar enthält c nicht; dann muss es aber nach dem Sichtbarkeitslemma schon vorher in V gewesen sein – aus V werden keine Paare entfernt, es sei denn,
einer ihrer Knoten wurde reduziert.
Durch Induktion folgt, dass in jeder Iteration das Paar, das von NJ ausgewählt wird, bei
FNJ in V liegt und somit auch von FNJ ausgewählt wird.
50
4.6 Weitere Resultate zum Neighbor-Joining-Algorithmus*
4.6 Weitere Resultate zum Neighbor-Joining-Algorithmus*
Über NJ und FNJ lässt sich noch mehr beweisen: Mihaescu, Levy und Pachter haben untersucht, was passiert, wenn die Eingabemetrik nicht mehr fast additiv ist und führen die
Begriffe “Quartett-additiv” und “Quartett-konsistent” ein.
4.23 Definition. Eine Distanzmatrix D heißt Quartett-konsistent mit einem Baum T , wenn
für alle Nachbarquartette (ij : kl) ∈ T gilt, dass wD (ij : kl) > max{wD (ik : jl), wD (il : jk)}
(siehe Definition 4.5).
4.24 Definition. Ein Blatt x liegt innerhalb eines Nachbarquartetts (ij : kl), wenn weder
(ik : xl) noch (ik : xj) Nachbarquartette sind.
4.25 Definition. Eine Distanzmatrix D heißt Quartett-additiv in Bezug auf einen Baum T ,
wenn für jedes Nachbarquartett (ij : kl) ∈ T und jedes x innerhalb von (ij : kl) und jedes y
nicht innerhalb von (ij : kl), so dass (ij : xy) ∈
/ T , gilt: wD (kl : xy) > wD (ij : xy).
Das entscheidende Resultat lautet wie folgt.
4.26 Satz. Sei D eine Quartett-additive und Quartett-konsistente Distanzfunktion bezüglich
eines Baums T . Dann wird von NJ und FNJ der Baum T ausgegeben.
Dieses Resultat stellt einen Bezug zwischen einem Baum und den enthaltenen Nachbarquartetten und zeigt, dass (F)NJ noch robuster als bisher bekannt gegenüber nicht-additiven
Distanzen ist.
Ein weiteres interessantes Resultat erhält man, indem man einzelne Kanten betrachtet.
4.27 Definition. Sei T ein ungewurzelter Baum mit Blattmenge L(T ). Sei e eine innere
Kante. Löschen von e induziert eine Bipartition L(T ) = P ∪ Q mit P ∩ Q = {}, |P | ≥
2, |Q| ≥ 2, so dass P bzw. Q die Blätter in den beiden Zusammenhangskomponenten sind.
Wir nennen diese Bipartition den zu e gehörenden Split P |e|Q.
Sei weiter DT die von T induzierte additive Metrik, und sei ` die Länge von e. Eine Distanzmatrix D heißt P |e|Q-additiv bezüglich T , wenn
• D(x, y) − DT (x, y) < `/4 für alle (x, y) ∈ P × P und alle (x, y) ∈ Q × Q,
• |D(x, y) − DT (x, y)| < `/4 für alle (x, y) ∈ P × Q.
4.28 Satz. Sei T ein Baum mit einem Split P |e|Q. Sei D eine P |e|Q-additive Distanz
bezüglich T . Dann rekonstruieren NJ und FNJ jeweils einen Baum, der ebenfalls den Split
P |e|Q enthält.
Mit anderen Worten, solange die Unterschiede der Distanzen D und DT entlang e nicht zu
stark sind und innerhalb von P und Q die Distanzen in D nicht zu viel größer sind als die
in DT , wird zumindest die Existenz der Kante e von NJ und FNJ korrekt rekonstruiert.
51
4 Phylogenetik: Distanzbasierte Methoden
Literatur Dieser Abschnitt muss noch mit BibTeX aufgearbeitet werden.
• Saitou N, Nei M (1987). The neighbor-joining method: a new method for reconstructing phylogenetic trees. Mol Biol Evol 4 (4): 406–425. PMID 3447015. http:
//mbe.oxfordjournals.org/cgi/reprint/4/4/406.
• Studier JA, Keppler KJ (1988). A note on the Neighbor-Joining algorithm of Saitou
and Nei. Mol Biol Evol 5 (6): 729–731. PMID 3221794. http://mbe.oxfordjournals.
org/cgi/reprint/5/6/729.pdf.
• Mihaescu R, Levy D, Pachter L (2006). Why neighbor-joining works.
• Elias I, Lagergren J (2008). Fast neighbor joining. Theoretical Computer Science
52
KAPITEL
5
Genomumordnungen
5.1 Einführung
Einzelne Biosequenzen (DNA, RNA, Protein) werden mit Hilfe sogenannter AlignmentAlgorithmen verglichen. Diese zeigen globale und lokale Gemeinsamkeiten und Unterschiede auf. Als Unterschiede gelten dabei Punktmutationen, Einfügungen, Löschungen (“EditDistanz”).
Unberücksichtigt bleiben beim Alignment allerdings Umordnungen (Vertauschungen) längerer
Abschnitte des Genoms. Betrachtet man aber ganze Genome, so stellt man fest, dass zwischen
nah verwandten Spezies (zum Beispiel Mensch/Maus) häufig ein Großteil des Genominhalts
nahezu gleich ist, aber zusätzlich zu den oben genannten lokalen änderungen die Reihenfolge
der Elemente (Gene, Marker) sich unterscheidet.
Visualisieren kann man dies mit Hilfe eines Dotplots. Ein Dotplot von Sequenzen s, t zeigt
in Form einer farbcodierten Matrix alle lokalen Ähnlichkeiten zwischen zwei Sequenzen. Die
Farbe des Punktes (x, y) visualisiert die Ähnlichkeit zwischen q-Grammen (Teilstrings =
Fenstern der Länge q), die bei sx und ty beginnen. Dabei ist q (Fensterlänge) ein Darstellungsparameter. Da es unrealistisch ist, beispielsweise eine 4.6 · 106 × 4.6 · 106 große Matrix
aufzustellen und zu berechnen, wird die Darstellung mehrfach gefiltert und vergröbert, so
dass insbesondere die starken Ähnlichkeiten nicht verlorengehen.
Ein Beispiel verdeutlicht dies (Abbildung 5.1): Wir betrachten einen gefilterten Dotplot
(erstellt mit der Software Gepard) der Genome von Yersinia pestis und Yersinia pseudotuberculosis (jeweils ca. 4.6 Mbp). Dunkle Diagonalen zeigen lange Sequenzabschnitte hoher
Sequenz-Identität. Die Umordnungen sind klar erkennbar.
53
5 Genomumordnungen
Abbildung 5.1: Dotplot der Genome von Yersinia pestis (x-Achse) und Yersinia pseudotuberculosis (y-Achse; beide Genome ca. 4.6 Mbp). Ein Punkt in der Matrix visualisiert den Grad der Ähnlichkeit zwischen zwei Genomabschnitten; schwarz:
nahezu identisch, weiß: keine Ähnlichkeit.
Die Analyse von Genom-Umordnungen (genome rearrangements) ist ein Teilgebiet der komparativen Genomik, in der ganze Genome nicht auf der Ebene einzelner Nukleotide verglichen
werden (dies wäre eher ein Teilgebiet der Sequenzanalyse), sondern in größerem Maßstab.
Will man zwei Spezies vergleichen (und zum Beispiel ihren evolutionären Abstand bestimmen), hat man also mindestens zwei Möglichkeiten:
1. lokaler Blickwinkel (Unterschiede auf Nukleotid-Ebene ein einzelnen Genen)
2. der globale Blickwinkel (Unterschiede in der Genom-Anordnung)
Wir befassen uns hier mit dem globalen Blickwinkel.
5.2 Problemstellung
Wir betrachten in zwei Genomen eine Abfolge ausgewählter Marker (z.B. Gene), und zwar
bequemerweise nur solcher, die in beiden Genomen vorkommen. Die Abfolge der n Marker im
ersten Genom setzen wir willkürlich auf (1, 2, 3 . . . , n). Für das zweite Genom ergibt sich eine
Permutation davon, denn wir gehen davon aus, dass jeder Marker genau einmal vorkommt.
Wir unterscheiden zwischen zwei Problemstellungen aufgrund der Doppelsträngigkeit der
DNA.
1. Wir kennen die Orientierung der Marker. DAs heißt, wir können feststellen, ob der
Marker in beiden Genomen auf dem gleichen Strang oder auf dem Komplementärstrang
liegt. Die Marker auf dem Gegenstrang erhalten ein negatives Vorzeichen. Eine einzelne
54
5.2 Problemstellung
Inversion von (3,4,5) bildet dann beispielsweise (1,2,3,4,5,6) auf (1,2,-5,-4,-3,6) ab. Wir
sprechen von signierten Permutationen (Permutationen mit Vorzeichen).
2. Wir kennen die Orientierung nicht. Das zweite Genom wird durch eine Permutation
im üblichen Sinn (unsigniert, ohne Vorzeichen) modelliert.
Die Probleme, bei denen die Orientierung nicht gegeben ist, sind in der Regel schwieriger.
Man kann sie stets lösen, indem man über alle 2n Vorzeichenkombinationen iteriert und das
orientierte Problem löst; dies verursacht natürlich exponentiellen Aufwand.
5.1 Definition (signierte Permutation). Sei [n] := { 1, 2, . . . , n }. Sei −[n] := { −1, −2, . . . , −n }.
Eine (unsignierte) Permutation von [n] ist eine bijektive Abbildung p : [n] → [n]. Eine signierte Permutation von [n] ist eine Abbildung p : [n] → [n] ∪ −[n], so dass |p| eine Permutation von [n] ist. Entsprechend sind unsignierte und signierte Permutationen auf beliebigen
Mengen definiert.
Wir gehen allgemeiner davon aus, dass ein Genom aus mehreren Chromosomen bestehen
kann. Ein Chromosom kann zirkulär oder linear sein. Ein lineares Chromosom hat einen
wohldefinierten Anfang und ein Ende (die Telomere). Ein zirkuläres Chromosom ist invariant
gegenüber zyklischen Permutationen. In Bezug auf Genomumordnungen interessiert uns nur
die Reihenfolge (und Un-/Signiertheit) der Marker.
Wir gehen davon aus, dass die folgenden Operationen auf Chromosomen für Umordnungen
verantwortlich sind:
• Inversionen (inversions, reversals), z.B. (u, v, w, x, y, z) → (u, v, −y, −x, −w, z) [Inversion von (w, x, y)]
• Blockvertauschungen (block interchanges), z.B. (u, v, w, x, y, z) → (u, y, x, v, w, z) [Vertauschung von (v, w) mit (y)]
• Transpositionen (transpositions), d.h. Vertauschungen benachbarter Blöcke, z.B. (u, v, w, x, y, z) →
(u, x, v, w, y, z) [Vertauschung von (v, w) mit (x)]
• Translokationen (translocations), Vertauschung von Randstücken bei mehreren Chromosomen, z.B. (u, v, w), (x, y, z) → (u, z), (x, y, v, w) [Vertauschung der Randstücke
(v, w) und (z)]
• Fusionen (fusions) zweier Chromosomen, z.B. (u, v, w), (x, y, z) → (u, v, w, x, y, z)
• Fissionen (fissions), d.h., die Aufspaltung eines Chromosoms in zwei, z.B. (u, v, w, x, y, z) →
(u, v, w), (x, y, z)
• Zirkularisierungen, Linearisierungen (Transformation von zirkulären in lineare Chromosomen und umgekehrt)
Bemerkungen zu den Operationen
• Wir nehmen stets an, dass die Menge der Operationen symmetrisch ist, in dem Sinn
dass, wenn es eine Operation gibt, die ein Genom G in ein anderes Genom H transformiert, auch eine Operation existiert, die H in G transformiert.
• Bei signierten Genomdaten sind die Operationen signiert zu interpretieren. Insbesondere kehren sich bei Inversionen Rehienfolge und Vorzeichen um. Bei unsignierten
Genomdaten finden keine Vorzeichenwechsel statt.
55
5 Genomumordnungen
Eine wichtige Frage in Bezug auf die mögliche gemeinsame Vergangenheit zweier Genome
(letzter gemeinsamer Vorfahre in der Evolution) ist nun, wie stark unterscheiden sich die
beiden Genome? Mit anderen Worten: Wie groß ist ihre Distanz? Die Distanz lässt sich als
die Anzahl der minimal benötigten Operationen definieren, die man benötigt, um das eine
Genom in das andere zu überführen.
Diese Art zu denken bezeichnet man auch als Parsimony-Prinzip (Prinzip der Sparsamkeit)
oder Occam’s Razor (von allen möglichen Erklärungen ist die einfachste die plausibelste).
(Dagegen kann man Einwände erheben.)
Dies führt auf folgende Familie von algorithmischen Problemen:
5.2 Problem (Genomdistanz, Genomsortierung). Gegeben: signierte / unsignierte unichromosomale / multichromosomale Genome G, H; symmetrische Menge an zulässigen signierten / unsignierten Operationen. Jeder Marker kommt in jedem Genom genau einmal
vor (im signierten Fall entweder positiv oder negativ orientiert).
Gesucht:
1. Distanz von G zu H, d.h. die Länge einer minimal langen Folge an zulässigen Operationen, die G in H transformiert.
2. eine solche minimal lange Folge (SSortierszenario”)
•
Zu dieser Problemgruppe gibt es zahlreiche Veröffentlichungen; je nach Operationsmenge
führt dies auf mehr oder weniger schwierige Formeln für die Distanz und auf Algorithmen
zur Rekonstruktion eines Sortierszenarios. Viele der Formeln und Algorithmen stammen aus
den 90’er Jahren (Bafna, Hannenhalli, Pevzner), und viele waren am Anfang fehlerhaft.
Einige der Fehler wurden erst vor kurzer Zeit gefunden.
Die Subtilität der Problemstellung wird anhand der Inversionsdistanz klar:
• Das Problem der unsignierten Inversionsdistanz für ein einzelnes lineares Chromosom
wurde 1982 von Watterson und anderen formuliert und 1995 von Caprara als NP-schwer
bewiesen. Von Kececioglu and Sankoff stammt ein Approximationsalgorithmus.
• Die signierte Version des Problems wurde zuerst von Hannenhalli und Pevzner gelöst.
Für die Distanzberechnung ist mittlerweile ein Linearzeitalgorithmus bekannt; die Angabe eines Sortierszenarios kann immerhin in subquadratischer Zeit erfolgen.
5.3 Sortieren durch Blockvertauschungen
Wir betrachten ein einfaches Genommodell (ein lineares Chromosom, unsigniert, d.h. eine
Permutation von { 1, . . . , n }) und lassen als einzige Operation eine Blockvertauschung zu.
Hierbei wird ein Block von benachbarten Elementen der Permutation mit einem anderen
Block vertauscht.
56
5.4 Genommodell
5.3 Definition. Aus einer gegebenen Permutation π = (π1 , . . . , πn ) macht die Blockvertauschung (i, j, k, `) mit 1 ≤ i < j ≤ k < ` eine neue Permutation π 0 = (π1 , . . . , πi−1 , πj , . . . , π`−1 , πi , . . . , πj−1 , . . . , π
es wird also der Block zwischen Indizes i und j − 1 mit dem zwischen Indizes k und ` − 1
vertauscht.
Da wir das Genom durch eine einfache Permutation modellieren und nur ein Chromosom betrachten, können wir oBdA (durch Umnummerierung) davon ausgehen, dass das eine Genom
die Identitätspermutation (1, . . . , n) ist.
5.4 Definition. Die Blockvertauschungsdistanz einer Permutation π (zur Identität) ist die
minimale Anzahl an Blockvertauschungen, die benötigt werden, um π zu sortieren.
Verwende die Dissertation von D. A. Cristie (Kaptel 4), um die folgenden Aufgaben zu lösen.
1. Gib eine obere Schranke D für die Blockvertauschungsdistanz an und einen Algorithmus, der eine Permutation mit D Blockvertauschungen sortiert (also in die Identität
(1, . . . , n) umwandelt).
2. Zeige, dass dieser Algorithmus optimal ist, also die obere Schranke D in der Tat die
Blockvertauschungsdistanz zwischen einer gegebenen Permutation und der Identität
ist.
5.4 Genommodell
Um Umordnungsprobleme möglichst allgemein behandeln zu können, machen wir uns zunächst
Gedanken um die Repräsentation eines Genoms.
Wir stellen im folgenden einen vereinheitlichenden Ansatz von Bergeron, Mixtacki und Stoye
vor, der in der Dissertation von Julia Zakotnik (Universität Bielefeld, 2008) beschrieben wird.
Wir lassen beliebige multichromosomale Genome aus einer Mischung von linearen und zirkulären Chromosomen zu. Wir gehen von orientierten Genen (signierte Chromosomen) aus;
jedes Gen besitzt also in Leserichtung hinten einen Anfang (tail ) und vorne ein Ende (head ):
(tail → head). Gene werden mit Kleinbuchstaben a, b, c, . . . bezeichnet. Ein Gen a besteht
also aus zwei Elementen at , ah . Wir verwenden die Begriffe “Marker” und “Gen” gleichbedeutend.
Nachbarschaften in einem Chromosom werden durch Adjazenzen beschrieben, dies sind 2elementige Mengen. Je nach Lage zueinander kann eine Adjazenz von Markern a und b eine
von vier Formen annehmen:
{ ah , bh } ,
{ ah , bt } ,
{ at , bh } ,
{ at , bt } .
Ein Ende eines linearen Chromosoms heißt Telomer und wird durch eine einelementige Menge beschrieben.
Ein Genom ist eine Menge von Adjazenzen und Telomeren aus Genen, so dass head und tail
jedes Gens in genau einer Adjazenz oder genau einem Telomer vorkommen.
Aus den Adjazenzen und Telomeren eines Genoms konstruiert man den Genomgraphen und
damit die Chromosomen: Die Adjazenzen und Telomere sind die Knoten; Kanten werden für
57
5 Genomumordnungen
Abbildung 5.2: Beispiel eines Genomas mit Markern a, . . . , g. Oben: Durch Adjazenzen beschriebenes Genom. Mitte: Genomgraph (Knoten sind Adjazenzen und Telomere, Kanten gerichtet von tails zu heads). Unten: Listendarstellung; das
Genom ist eine Menge von Folgen der Marker, die die Chromosomen definieren. Zyklische Chromosomen erkennt man daran, dass in der entsprechenden
Folge erstes und letztes Element gleich sind.
jedes Gen von tail zu head gezogen. Lineare Chromosomen reichen von Telomer zu Telomer.
Durch Ablesen der Reihenfolge der Gene kann man eine Listenrepräsentation des Genoms
erhalten. Die Vorzeichen ergeben sich anhand der Orientierung der Gene.
In Abbildung 5.2 sind ein Beispielgenom, der Genomgraph und eine mögliche Listenrepräsentation des Genoms zu sehen. Man beachte, dass es verschiedene äquivalente Listenrepräsentationen gibt; man kann jedes Chromosom insgesamt invertieren (ohne eine Inversionsoperation durchzuführen!). Zirkuläre Chromosomen können in der Listendarstellung bei
jedem Gen beginnen.
Der Genomgraph hat folgende Eigenschaften:
• Jeder Knoten hat Grad 1 (Telomer) oder 2 (Adjazenz)
• Jede Kante entspricht einem Gen.
5.5 Die DCJ-Operation
Wir untersuchen nun ein spezielles Umordnungsproblem, bei dem es nur eine einzige Operation gibt: die Double-Cut-and-Join-Operation (DCJ). Diese Operation wird auf ein Genom
(bzw. den Genomgraphen) angewendet, lässt sich aber allgemein auf Graphen, deren Knoten
den Grad 1 oder 2 haben, definieren.
Wir betrachten in diesem Abschnitt allgemein Graphen G, in denen jeder Knoten den Grad 1
oder 2 hat. Der Genomgraph hat diese Eigenschaft (Grad 1: Telomer, Grad 2: Adjazenz),
aber auch ein anderer Graph, den wir später behandeln.
5.5 Definition (externer Knoten, interner Knoten). Sei G ein Graph, in dem jeder Knoten
den Grad 1 oder 2 hat. Ein Knoten mit Grad 1 heisst extern. Ein externer Knoten, der
inzident zu einer Kante p ist, wird mit der Menge { p } bezeichnet. Ein Knoten mit Grad 2
heisst intern. Ein interner Knoten, der inzident zu den Kanten p und q ist, wird mit der
Multimenge { p, q } bezeichnet.
5.6 Lemma. Jede Zusammenhangskomponente von G ist entweder ein Zyklus aus inneren
Knoten oder ein Pfad aus null oder mehr inneren Knoten, der von zwei äußeren Knoten
begrenzt wird.
58
5.5 Die DCJ-Operation
Beweis. Klar.
5.7 Definition (gerader/ungerader Pfad/Zyklus). Ein Zyklus oder Pfad heisst gerade, wenn
er über eine gerade Anzahl von Kanten verfügt, ansonsten ungerade.
5.8 Definition (DCJ-Operation). Sei G ein Graph, in dem jeder Knoten den Grad 1 oder 2
hat. Auf G ist die DCJ (”double cut and join”)-Operation auf zwei Knoten u,v wie folgt
definiert.
(a) Wenn u = { p, q } und v = { r, s } beide intern sind, werden diese entweder durch
{ p, r } , { q, s } oder durch { p, s } , { q, r } ersetzt.
(b) Wenn u = { p, q } intern und v = { r } extern ist, werden diese entweder durch { p, r } , { q }
oder durch { q, r } , { p } ersetzt.
(c) Wenn u = { q } und v = { r } beide extern sind, werden diese durch den internen Knoten
{ q, r } ersetzt.
Symmetrisch zu (c) ist auch eine DCJ-Operation auf einem einzelnen interen Knoten { q, r }
definiert:
(c’) Der interne Knoten { q, r } wird durch zwei externe Knoten { q } , { r } ersetzt.
Die Definition war allgemein gehalten. Da in einem Genomgraphen jeder Knoten den Grad
1 oder 2 hat, lässt sich die DCJ-Operation darauf anwenden.
Wir betrachten nun die Wirkung der DCJ-Operation auf einen Genomgraphen im Detail.
Wir können die DCJ-Operation mit der Terminologie auch wie folgt formulieren: Wähle zwei
Gen-Elemente (head oder tail) aus (a) zwei verschiedenen Adjazenzen, (b) einer Adjazenz
und einem Telomer, und vertausche diese beiden Elemente. Oder wähle zwei Gen-Elemente
aus (c) zwei verschiedenen Telomeren und füge sie zu einer Adjazenz zusammen, oder wähle
beide Elemente aus (c’) derselben Adjazenz und mache daraus zwei Telomere.
Wie genaue Wirkung einer DCJ-Operation hängt davon ab, wo die beiden benutzten Elelemnte im Genom liegen. Abbildung 5.3 zeigt alle möglichen Fälle.
(a1) Zwei Adjazenzen auf verschiedenen linearen Chromosomen: Es wird Material zwischen
diesen Chromosomen ausgetauscht, und zwar zwischen den jeweils gewählten Adjazenzen und den Telomeren des Chromosoms. Dies ist eine Translokation.
(a2, a3) Zwei Adjazenzen auf demselben Chromosom (linear oder zirkulär): Entweder der
Abschnitt zwischen den gewählten Adjazenzen wird invertiert (Inversion) oder aus
dem Chromosom herausgeschnitten in ein neues zirkuläres Chromosom (Exzision).
(a4, a5) Zwei Adjazenzen, eine auf einem zirkulären Chromosom, die andere auf einem
anderen (linearen oder zirkulären) Chromosom: Das zirkuläre Chromosom wird in das
andere Chromosom integriert (Integration).
(b1) Eine Adjazenz und ein Telomer auf verschiedenen linearen Chromosomen: Wiederum
eine Translokation.
(b2) Eine Adjazenz und ein Telomer auf demselben linearen Chromosom: Inversion oder
Exzision des Randstücks, die man auch als Fission bezeichnen kann.
59
5 Genomumordnungen
Abbildung 5.3: Die Wirkung der DCJ-Operation auf einem Graphen
(b3) Eine Adjazenz auf einem zirkulären Chromosom und ein Telomer (das es nur auf einem
linearen Chromosom gibt): Integration des zirkulären Chromosoms an den Rand des
linearen, so dass man auch von einer Fusion sprechen kann.
(c1) Zwei Telomere auf verschiedenen (linearen) Chromosomen: Fusion dieser Chromosomen.
(c’1) Eine einzelne Adjazenz eines linearen Chromosoms: Fission dieses Chromosoms in
zwei.
(c2) Die zwei Telomere desselben (linearen) Chromosoms: Zirkularisierung dieses Chromosoms.
(c’2) Eine einzelne Adjazenz eines zirkulären Chromosoms: Linearisierung dieses Chromosoms.
Das folgende Lemma zeigt, wie sich eine DCJ-Operation auf die Zyklen und Pfade eines
Graphen auswirkt.
5.9 Lemma. Durch eine DCJ-Operation ändert sich die Zahl der Zyklen und die Zahl der
Pfade Graphen maximal um eins.
Beweis. Durchgehen aller Fälle; siehe Abbildung 5.3.
Beispiel: Bei einer Zirkularisierung eines Chromosoms ändert verringert sich die Zahl der
Pfade und erhḧoht sich die Zahl der Zyklen um eins.
60
5.6 Die DCJ-Distanz zwischen zwei Genomen
5.6 Die DCJ-Distanz zwischen zwei Genomen
Man kann sich überzeugen, dass durch eine Folge von DCJ-Operationen jeder Genomgraph
A in jeden anderen Genomgraphen B mit der gleichen Genmenge transformiert werden kann.
5.10 Problem (DCJ-Distanz, Sorting by DCJ). Zu zwei signierten Genomen A und B mit
dem gleichen Geninhalt, gegeben durch Adjazenzen und Telomere, berechne die DCJ-Distanz
dDCJ (A, B) zwischen A und B (Länge einer minimal langen Folge von DCJ-Operationen, die
A in B transformiert) und ein entsprechendes Sortierszenario.
•
Wir betrachten die Wirkung der DCJ-Operation auf einen Genomgraphen an Hand eines
Beispiels.
5.11 Beispiel (DCJ-Distanz zwischen zwei Genomen). Die folgenden Genome A und B,
besitzen aufgrund des folgenden Sortierszenarios eine DCJ-Distanz von höchstens 5:
Wir werden gleich sehen, dass 5 auch die tatsächliche Distanz ist.
♥
Um das DCJ-Sortier-Problem zu lösen, ist ein weiterer Graph, der Adjazenzgraph zwischen
zwei Genomen A, B, nützlich.
5.12 Definition (Adjazenzgraph). Der Adjazenzgraph AG(A, B) zweier Genome A, B besitzt je einen Knoten für jede Adjazenz und jedes Telomer in A und B. (Wenn die gleiche
Adjazenz sowohl in A als auch in B auftritt, sind das zwei Knoten, einer für A und einer
für B.) Kanten bestehen nur zwischen A-Knoten und B-Knoten: Für u aus A und v aus B
existieren genau |u ∩ v| Kanten zwischen u und v.
5.13 Beispiel (Adjazenzgraph). Für die obigen Genome A und B ergibt sich folgender
Adjazenzgraph:
61
5 Genomumordnungen
♥
Beobachtungen:
• Der Adjazenzgraph ist bipartit.
• Alle Knoten haben Grad 1 oder 2; damit besteht er aus Pfaden und Zyklen.
• Alle Zyklen sind gerade. (Pfade können gerade oder ungerade sein.)
5.14 Lemma (Identität von Genomen aus Adjazenzgrapgen). Seien A, B Genome auf der
gleichen Menge von N Genen. Sei C die Anzahl der Zyklen im Adjazenzgraph; I die Anzahl
ungerader Pfade. Dann gilt A = B genau dann wenn C + I/2 = N .
Beweis. In jedem Genom aus a Adjazenzen und t Telomeren gilt: N = a + t/2.
⇒: Ist a = b, dann besteht der Adjazenzgraph aus a Zyklen (der Länge 2, einer für jede
der gemeinsamen Adjazenzen) und t Pfaden (der Länge 1, einer für jedes der gemeinsamen
Telomere). Also ist C = a und I = t und damit N = C + I/2.
⇐: Genom A bestehe aus a Adjazenzen und t Telomeren. Dann ist N = a+t/2. Jeder Zyklus
im Adjazenzgraphen enthält mindestens eine Adjazenz in A, also C ≤ a. Jeder ungerade Pfad
im Adjazenzgraphen enthält genau ein Telomer in A, also I ≤ t. Aus C + I/2 = N = a + t/2
folgt C = a und I = t. Da die Genmenge in A und B gleich ist, haben damit alle Zyklen
Länge 2 und alle Pfade Länge 1. Dies bedeutet A = B.
Jetzt kommt die entscheidende Beobachtung:
Wenn eine DCJ-Operation auf Genom A angewendet wird und wir gleichzeitig
den Genomgraphen von A und den Adjazenzgraphen von A und B betrachten,
dann wirkt die DCJ-Operation ebenfalls auf den Adjazenzgraphen.
Da der Adjazenzgraph bipartit ist und die DCJ-Operation auf den Knoten ausgeführt wird,
die zum Genom A gehören, lässt sich für den Adjazenzgraphen eine stärkere Aussage als das
allgemeine Lemma 5.9 treffen.
5.15 Lemma. Durch die Anwendung einer DCJ-Operation auf die Adjazenzen und Telomere
des Genomgraphen zu Genom A ändert sich im Adjazenzgraphen die Zahl
• der Zyklen maximal um 1,
• der Pfade insgesamt maximal um 1,
• der ungeraden Pfade um −2, 0, oder 2.
Die Anzahl der Zyklen und ungeraden Pfade kann sich nicht gleichzeitig erhöhen.
Beweis. Wir betrachten wieder alle Fälle (siehe Abbildung 5.3, dieses Mal anhand ihrer
Wirkung auf den Adjazenzgraphen. Da der Adjazenzgraph bipartit ist, haben darin alle
Zyklen gerade Länge.
Daraus lässt sich eine untere Schranke für die DCJ-Distanz herleiten.
62
5.6 Die DCJ-Distanz zwischen zwei Genomen
5.16 Lemma (Untere Schranke für DCJ-Distanz). Seien A, B Genome auf der gleichen
Menge von N Genen. Sei C die Anzahl der Zyklen im Adjazenzgraph; I die Anzahl ungerader
Pfade. Dann gilt dDCJ (A, B) ≥ N − (C + I/2).
Beweis. Durch eine einzelne DCJ-Operation kann sich nach Lemma 5.15 der Ausdruck
C + I/2 um maximal 1 erhöhen. Damit werden mindestens N − (C + I/2) Schritte benötigt,
bis N = C + I/2 gilt, also nach Lemma 5.14 die Genome gleich sind.
Wir zeigen nun durch Angabe eines Algorithmus, dass sich für zwei verschiedene Genome
immer eine DCJ-Operation finden lässt, die C + I/2 um eins erhöht, so dass die Ungleichung
in Lemma 5.16 in Wahrheit sogar eine Gleichung ist.
Die Idee ist bestechend einfach:
• Wenn es in Genom B eine Adjazenz { p.q } gibt, die es nicht in A gibt, dann muss sie in
A erzeugt werden. Sei also u das Element, das p enthält und v das davon verschiedene
Element, das q enthält. Sowohl u als auch v können Adjazenzen oder Telomere sein (im
Telomer-Fall wäre u = { p } und/oder v = { q }). Wir führen nun die DCJ-Operation
durch, die u und v durch { p, q } und die “Restmenge” (u \ { p }) ∪ v \ { q }) ersetzt (ist
diese leer, wird sie nicht berücksichtigt; in diesem Fall werden einfach nur die Telomere
{ p } , { q } “verklebt”). Dadurch wird im Adjazenzgraphen ein neuer Zyklus der Länge
2 erzeugt (zwischen { p, q } in A und in B). Diese beiden Kanten werden dabei aus der
Struktur des Adjazenzgraphen, in der sie vorher enthalten waren (Zyklus oder Pfad),
herausgeschnitten. Da es sich um genau 2 Kanten handelt, ändert sich die Anzahl der
ungeraden Pfade nicht.
• Gibt es in Genom B keine Adjazenz mehr, die es nicht auch in A gibt, dann kann es
aber in B noch ein Paar von Telomeren { p } , { q } geben, das in A eine Adjazenz { p, q }
bildet. Wir wenden nun die DCJ-Operation an, die diese Adjazenz in zwei Telomere
aufteilt. Dabei verringert sich die Anzahl der geraden Pfade um 1 und die die Zahl der
ungeraden Pfade steigt um 2 (siehe Abbildung ??.
Wir geben noch den Algorithmus an. Dabei wird das Genom A solange durch eine DCJOperation geändert, bis es mit B übereinstimmt. Dazu werden zunächst (in beliebiger Reihenfolge) alle Adjazenzen von B in A hergestellt. Danach werden die Telomere von B, sofern
es noch Adjazenzen in A sind, erzeugt; dies entspricht Fissionen oder Linearisierungen. Der
Algorithmus gibt nach jedem Zwischenschritt eine veränderte Version von A aus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def DCJsort (A , B ):
for (p , q ) in B . adjacencies ():
# Erzeuge Adjazenz {p , q } in A
u = A . element_with ( p )
v = A . element_with ( q )
if u != v :
z = (u - set ( p )) + (v - set ( q ))
A . remove ( u )
A . remove ( v )
A . add ( set (p , q ))
A . add ( z ) # tut nichts , wenn z leer
yield A
for p in B . telomeres ():
# Erzeuge Telomer { p } in B
63
5 Genomumordnungen
u = A . element_with ( p )
if len ( u )==2: # wenn u Adjazenz ist
A . remove ( u )
A . add ( p )
A . add (u - set ( p ))
yield A
15
16
17
18
19
20
Wir fassen die Aussagen von Lemma 5.16 und die des DCJsort-Algorithmus in einem Satz
zusammen.
5.17 Satz. Seien A, B Genome auf der gleichen Menge von N Genen. Sei C die Anzahl der
Zyklen im Adjazenzgraph; I die Anzahl ungerader Pfade. Dann gilt
dDCJ (A, B) = N − (C + I/2).
Mit geeigneten Datenstrukturen zur Genomrepräsentation lässt sich der DCJsort-Algorithmus
in linearer Zeit durchführen. Wichtig ist dabei, dass die element_with-Methode nur konstante Zeit benötigt. Dies lässt sich relativ leicht mit einem entsprechenden Index bewerkstelligen.
Eine Implementierung einer Genom-Klasse, so dass obiger Python-Code lauffähig wird, ist
eine gute Übung.
64
KAPITEL
6
Algorithmen der Massenspektrometrie
6.1 Moleküle, Atome und ihre Massen
Massenspektrometer sind in der Lage, sehr genau die Masse von Molekülen zu messen. Organische Moleküle (DNA, Proteine, Metabolite) bestehen letztendlich hauptsächlich aus Kohlenstoff, Wasserstoff, Stickstoff, Sauerstoff, Stickstoff und Schwefel. Ein Atom besteht aus
einem Kern aus Protonen (positiv geladen) und Neutronen (elektrisch neutral) und einer
Elektronenhülle (negativ geladen). Ein Atom insgesamt ist elektrisch neutral, so dass die
Anzahl der Protonen im Kern der Anzahl der Elektronen in der Hülle entspricht. Zu beachten ist, dass es verschiedene Isotope dieser Elemente gibt, die sich durch die Anzahl der
Neutronen im Atomkern unterscheiden. Die verschiedenen Isotope kommen in der Natur
mit bestimmten Häufigkeiten vor. Bei zu großer Neutronenzahl werden diese instabil und
zerfallen spontan (Radioaktivität).
Für die chemischen Eigenschaften eines Elements sind Anzahl und Verteilung der Elektronen
in der Hülle verantwortlich. Zur Masse hingegen tragen nahezu ausschließlich die Protonen
und Neutronen bei; die Elektronen hingegen haben eine vergleichsweise kleine Masse. Die
Massen werden in Dalton (Da) oder atomic units (u) gemessen. 1 Daist definiert als 1/12 der
Masse eines 12 C-Atoms; das ist ein Kohlenstoff-Atom mit 12 Kernteilchen (6 Protonen und
6 Neutronen). In etwa (aber nicht exakt) hat ein Proton und ein Neutron eine Masse von
1 Da. Tabelle 6.1 zeigt verschiedene Elemente und ihre Isotope mit ihren Ordnungszahlen
(OZ, Anzahl der Elektronen), Massenzahlen (MZ, Anzahl der Protonen plus Neutronen im
Kern), Massen und natürlichen Häufigkeiten.
Massenspektrometer messen (mit Hilfe verschiedener Technologien) die Masse eines Moleküls mit sehr hoher Genauigkeit. Im Normalfall wird ein aufgereinigter Stoff gemessen
(mehrere Moleküle desselben Stoffs), wobei sich die Masse der einzelnen Moleküle aufgrund
65
6 Algorithmen der Massenspektrometrie
C
Name
Kohlenstoff
OZ
6
H
Wasserstoff
1
N
Stickstoff
?
O
Sauerstoff
?
P
S
Phosphor
Schwefel
?
?
MZ
12
13
1
2
14
15
16
17
18
31
32
33
34
36
Masse
12.000000
13.003355
1.007825
2.014102
14.003074
15.000109
15.994915
16.999132
17.99916
30.973762
31.972071
32.971458
33.967867
35.967081
Häufigkeit
0.9893
0.0107
0.998851189019365
0.001148810980635
0.99632
0.00368
0.99757
0.00038
0.00205
1.00000
0.9493
0.0076
0.0429
0.0002
Tabelle 6.1: Wichtige Elemente der organischen Chemie und ihre Isotope, ihre Ordnungszahlen (OZ), Massenzahlen (MZ), Massen in Daund natürliche Isotopenhäufigkeiten
verschiedener Isotop-Häufigkeiten der bildenden Atome unterscheidet. Das Massenspektrometer misst, wie viele Moleküler jeder Masse auftreten. Man bekommt also nicht nur eine
Gesamtmasse des Moleküls, sondern auch die Massenverteilung unter Berücksichtigung der
Isotop-Häufigkeiten. Diese ignorieren wir jedoch für den Moment und betrachten nur “die”
Masse eines Moleküls.
6.2 Massenzerlegungsproblem und Subset-Sum
Wir betrachten das Problem, zu einer gegebenen Gesamtmasse M und gegebenen Elementarmassen 0 < a1 < · · · < ak (die wir nach geeigneter Skalierung und Rundung stets als
ganzzahlig annehmen), alle möglichen Zerlegungen von M in die Elementarmassen zu finden, d.h., gesucht sind alle ganzzahligen nichtnegativen Lösungen (n1 , . . . , nk ) ∈ Nk0 der
Gleichung
k
X
M=
nj aj .
j=1
Genauer lassen sich drei Varianten des Problems definieren:
1. Gibt es überhaupt eine Zerlegung von M in die Elementarmassen?
2. Wie viele Zerlegungen gibt es?
3. Zähle alle Zerlegungen auf.
Das Problem ist verwandt zum (aber nicht identisch mit dem) Subset-Sum-Problem, bei
dem Lösungen (n1 , . . . , nk ) ∈ { 0, 1 }k derselben Gleichung gesucht sind, dafür aber die “Elementarmassen” 0 < a1 ≤ · · · ≤ ak erfüllen (statt strikter Ungleichungen). Beim Subset-SumProblem darf jede Elementarmasse also höchstens einmal benutzt werden (bzw. sofern eine
Elementmasse mehrfach gegeben ist, höchstens so oft wie gegeben).
66
6.2 Massenzerlegungsproblem und Subset-Sum
6.2.1 Lösung mit Dynamic Programming
Zur ersten Problemvariante (Existenz einer Zerlegung) machen wir für das Massenzerlegungsproblem folgende Beobachtung:
6.1 Lemma. M ist genau dann in (a1 , . . . , ak ) zerlegbar, wenn es ein i ∈ { 0, 1, . . . , bM/ak c }
gibt, so dass M − iak in (a1 , . . . , ak−1 ) zerlegbar ist.
Dies führt unmittelbar auf einen rekursiven Algorithmus. Hierbei kann es jedoch passieren,
dass (in höheren Rekursionstiefen) dieselben Unterprobleme mehrfach gelöst werden, was
unnötige Arbeit ist. Daher bietet sich ein Algorithmus an, der auf Dynamic Programming
beruht. Wir lösen damit direkt auch die zweite Problemvariante.
Dazu definieren wir die Größen N (m, j) für 0 ≤ m ≤ M und 1 ≤ j ≤ k als die Anzahl der
verschiedenen Zerlegungen von m mit den ersten j Massen (a1 , . . . , aj ).
Offensichtlich ist N (0, j) = 1 für alle j, denn für die Masse m = 0 gibt es immer nur die
eindeutige Zerlegung 0 = 0a1 + · · · + 0aj .
Offensichtlich ist auch N (m, 1) = 1, wenn m ein Vielfaches von a1 ist (Zerlegung m = i · a1
mit i := m/a1 ∈ N) und N (m, 1) = 0, wenn m kein Vielfaches von a1 ist.
Das folgende Lemma gibt die allgemeine Rekurrenz an.
6.2 Lemma. Für m > 0 und j ≥ 2 ist
bm/aj c
N (m, j) =
X
N (m − i · aj , j − 1).
i=0
Beweis. Wir gruppieren alle Zerlegungen danach, wie oft Masse aj benutzt wird. Dies kann
zwischen i = 0 und i = bm/aj c mal geschehen. Die Restmasse m − i · aj muss dann mit
(a1 , . . . , aj−1 ) zerlegt werden; die Anzahl der möglichen Zerlegungen hierzu ist schon als
N (m − i · aj , j − 1) berechnet worden. Da verschiedene Wahlen von i zu verschiedenen
Zerlegungen führen, gilt ≥ im Lemma. Da aber auch jede Zerleung die Masse aj zwischen 0
und bm/aj c mal benutzt, gilt ebenfalls ≤, also Gleichheit.
Dieser DP-Ansatz kann leicht auf andere Problemvarianten angepasst werden, beispielsweise,
indem man für jede Masse aj eine maximale Verwendunghäufigkeit xj vorgibt. Beim SubsetSum-Problem ist xj = 1. Wir erhalten dann die allgemeinere Rekurrenz
max{ bm/aj c,xj }
N (m, j) =
X
N (m − i · aj , j − 1).
i=0
Implementierung: Die Tabelle der N (m, j) kann zeilen- oder spaltenweise berechnet werden.
Bei einer spaltenweisen Berechnung benötigt man zur Berechnung der j-ten Spalte nur die
(j − 1)-te, nicht mehr die vorangehenden.
Mit Hilfe der Tabelle lassen sich auch alle Zerlegungen effizient aufzählen (hierzu werden
wieder alle Spalten benötigt). Man beginnt mit einem m und schaut in der Tabelle nach,
67
6 Algorithmen der Massenspektrometrie
ob Zerlegungen mit i · aj überhaupt existieren: Das ist genau dann der Fall, wenn N (m −
i · aj , j − 1) > 0. Wenn ja, zählt man rekursiv die Zerlegungen von m − i · aj in die ersten
j − 1 Massen auf, und kombiniert diese mit i · aj . Ist hingegen N (m − i · aj ) = 0, so gibt
es keine Zerlegungen, bei denen i-mal aj benutzt wird, und dieser Ast im Rekursionsbaum
muss nicht weiter verfolgt werden.
Die Laufzeit ist O(M · k · M/a1 ) beim Massenzerlegungsproblem, bzw. O(M k) beim SubsetSum-Problem (da hier die Anzahl der Summanden in der Rekurrenz durch zwei beschränkt
ist). Man beachte, dass M dabei durchaus exponentiell in der Eingabegröße sein kann; die
Eingabe besteht aus den Bits für M und a1 , . . . ak . Daher ist die beschriebene Laufzeit kein
Widerspruch zur NP-Schwere von Subset-Sum.
6.2.2 Lösung mit einer Restklassentabelle
Die Tabelle der N (m, j) benötigt O(M ) Platz, um zu bestimmen, ob und auf wie viele Weisen
die Masse M zerlegbar ist. Eine einfache Überlegung zeigt, dass man sich beim Massenzerleungsproblem, wo es keine Obergrenzen für die Verwendung der einzelnen Massen gibt,
darauf beschränken kann, die verschiedenen Restklassen von m modulo a1 zu betrachten:
6.3 Lemma. Ist m zerlegbar, dann auch alle m + i · a1 für i ≥ 0.
Sei Rr die Klasse der nichtnegativen Zahlen mit Rest r bei Division durch a1 (d.h., durch
die kleinste Elementarmasse),
Rr := { m ≥ 0 | m mod a1 = r } .
Aus dem Lemma folgt, dass sobald ein m ∈ Rr zerlegbar ist, auch alle größeren Zahlen in
Rr zerlegbar sind. Es genügt also, die kleinste Zahl in Rr zu ermitteln, die zerlegbar ist. Wir
definieren also Z(r, j) für 0 ≤ r < a1 und 1 ≤ j ≤ k als die kleinste Zahl in Rr , die in die
Elementarmassen a1 , . . . , aj zerlegbar ist.
Offensichtlich ist Z(0, j) = 0 für alle j, da 0 ∈ R0 immer zerlegbar ist, indem jede Masse
0-mal benutzt wird. Ebenso ist Z(r, 1) = ∞ für r 6= 0, da keine Zahl, die nicht durch a1
teilbar ist als Vielfaches von a1 geschrieben werden kann.
Wie erhalten wir Spalte j aus Spalte j − 1? Initial wissen wir Z(r, j) ≤ Z(r, j − 1), da
jede Masse in Restklasse Rr , die schon mit a1 , . . . , aa−1 zerlegbar war, zerlegbar bleibt. Wir
setzen also zunächst Z(r, j) := Z(r, j − 1) und prüfen nun, ob sich mit Hilfe von aj kleinere
Zahlen als Z(r, j −1) zerlegen lassen. Für jede Restklasse r beginnen wir einen Durchlauf mit
(dem bisher bekannten) Z(r, j) und betrachten die daraus durch (mehrfache) Addition von
aj erzeugbaren Zahlen zi := Z(r, j) + i · aj und ihre jeweiligen Restklassen ri := zi mod a1 .
Ist zi < Z(ri , j), dann ersetzen wir Z(ri , j) durch zi . Sobald i so groß wird, dass keine der
existierenden Zahlen mehr verkleinert werden kann, wird der Durchlauf abgebrochen und
für die nächste Restklasse r beonnen.
Dieser Algorithmus kann optimiert werden.
Die Restklassentabelle kann offensichtlich benutzt werden, um zu entscheiden, ob eine Masse
m in a1 , . . . , ak zerlegbar ist: Bestimme die passende Restklasse r := m mod a1 und prüfe
ob m ≥ Z(r, k).
68
6.2 Massenzerlegungsproblem und Subset-Sum
Analog zur DP-Lösung können nun alle Zerlegungen rekursiv aufgezählt werden. Die Anzahl
der Zerlegungen kann man nun nicht mehr direkt an der Tabelle ablesen (dafür ist die Tabelle
viel kleiner), sondern muss während der rekursiven Aufzählung mitzählen. Die Größe der
Tabelle ist nun O(a1 k) und hängt nicht mehr von der zu zerlegenden Masse M ab.
6.2.3 Frobenius-Zahl
Ist in der Restklassentabelle in der letzten Spalte kein Eintrag mehr unendlich, dann ist ab
einer gewissen Größe jede Masse zerlegbar.
Die Frobeniuszahl F (a1 , . . . , ak ) zu Elementarmassen a1 , . . . , ak ist die größte nicht zerlegbare
Masse. Ab F (a1 , . . . , ak ) + 1 sind also alle Zahlen in a1 , . . . , ak zerlegbar.
6.4 Satz. Die Frobeniuszahl berechnet sich aus der Restklassentabelle Z wie folgt:
F (a1 , . . . , ak ) = max Z(r, k) − a1
0<r<a1
Beweis. Z(r, k)−a1 ist die größte Zahl in Restklasse Rr , die nicht zerlegbar ist, denn Z(r, k)
ist ja die minimale zerlegbare Zahl in Rr . Die insgesamt größte nichtzerlegbare Zahl ist das
Maximum über alle Restklassen.
6.5 Beispiel (Hähnchen-Nuggets). Durch Erstellen der Restklassentabelle zu den Packungsgrößen 6, 9, 20 rechnet man aus, dass F (6, 9, 20) = 43, so dass man ab 44 jede Anzahl
Hähnchennuggets mit den üblichen Packungsgrößen kaufen kann.
♥
6.6 Satz. Sei d := ggT(a1 , . . . , ak ) der größte gemeinsame Teiler der Elementarmassen. Sei
F := F (a1 , . . . , ak ) die Frobenius-Zahl. Es ist F < ∞ genau dann wenn d = 1.
Beweis. Ist d ≥ 2, dann sind überhaupt nur Vielfache von d zerlegbar, da jede Elementarmasse ein Vielfaches von d ist. Es gibt also beliebig große nichtzerlegbare Zahlen, und es ist
F = ∞. Ist d = 1, dann gibt es (z.B. mit Hilfe des erweiterten Euklidischen Algorithmus)
eine Darstellung von d = 1 als ganzzahlige Linearkombination der aj ,
1=
k
X
yj · aj
mit yj ∈ Z.
j=1
Durch Multiplikation mit r erhalten wir eine Darstellung
r=
k
X
(ryj ) · aj .
j=1
Durch Addition von Vielfachen von a1 sorgen wir dafür, dass die Koeffizienten von allen aj
positiv werden: Ist ryj < 0, addieren wir kj a1 aj , mit kj so dass ryj + kj a1 ≥ 0 gilt. Somit
bekommen wir ein Element in Restklasse r, das zerlegbar ist, also ist Z(r, k) < ∞. Dies gilt
für jede Restklasse r, also ist auch F < ∞.
69
6 Algorithmen der Massenspektrometrie
Isotop
12 C
13 C
1H
2H
14 N
15 N
16 O
17 O
18 O
31 P
32 S
33 S
34 S
36 S
Masse in 1/6870 Da
82440
89333
6924
13837
96201
103051
109885
116784
123654
212790
219648
226514
233359
247094
Tabelle 6.2: Skalierte und gerundete Massen der Isotope des CHNOPS-Alphabets
6.2.4 Realistisches Beispiel
Drückt man die Massen des CHNOPS-Alphabets in 1/6870 Da aus, erhält man eine gute
Darstellungsgenauigkeit; der Diskretisierungsfehler ist bei dieser Skalierung besonders klein.
Man erhält die in Tabelle 6.2 angegebenen Massen.
Angenommen, die Masse 1233932 wird gemessen. Mit Messungenauigkeiten ist zu rechnen;
sagen wir ±10/6870 Da. Gesucht sind daher alle Zerlegungen von ganzzahligen Massen im
Intervall [1 233 922, 1 233 942]. Sind darunter bekannte oder sinnvolle Moleküle?
Natürlich ist auch die Frobenius-Zahl dieses Problems von Interesse. Welches ist die größte
nicht exakt zerlegbare Masse?
6.3 Vorhersage von Massenspekten
Wie in Tabelle 6.1 zu sehen, gibt es verschiedene Isotope von Elementen mit verschiedenen Massen und Häufigkeiten. Ein Element hat also eine (bekannte) Massenverteilung. Die
zufällige Masse eines Elements x kann durch eine Zufallsvariable X beschrieben werden.
Die zufällige Summe der Masse mehrerer Elemente x1 , . . . , xn ist dann durch die Summe
X1 + · · · + Xn von Zufallsvariablen gegeben.
Wir gehen davon aus, dass die Massen mit einer festen Genauigkeit hochskaliert und dann
gerundet werden, so dass alle auftretenden Massen natürliche Zahlen sind. Wir nehmen an,
dass die Massenverteilung eines Elements durch einen endlichen Wahrscheinlichkeitsvektor p
gegeben ist, wobei pm die Wahrscheinlichkeit ist, dass das Element die Masse m hat. Intern
können die Vektoren mit vielen Null-Einträgen (“sparse”) platzsparend als Listen von Paaren
(m, pm ) mit pm > 0 verwaltet werden.
Wir nehmen an, dass die Massen verschiedener Elemente unabhängig sind. Damit ist die
Verteilung der Summe der Xi die Faltung der Verteilungen der Xi . Für zwei Zufallsvariablen
70
6.3 Vorhersage von Massenspekten
X, Y ist
P(X + Y = k) =
X
j
P(X = j, Y = k − j) =
X
P(X = j) · P(Y = k − j).
j
Bei mehr als zwei Zufallsvariablen wendet man die Faltung mehrfach an. Die Summe erstreckt
sich über die k, für die beide Wahrscheinlichkeiten positiv sind.
Die Faltung von zwei Vektoren p = (p0 , . . . , pm ) und q = (q0 , . . . , qn ) ist also definiert als
X
p ∗ q =: c = (c0 , . . . , cm+n ) mit ck =
pj qk−j .
j
Für die `-fache Faltung von p mit sich schreiben wir p∗` ; z.B. p∗2 = p ∗ p.
Zu den Elementen CHNOPS lesen wir aus Tabelle 6.1 die Verteilungen pC , . . . , pS ab. Zu
∗nC
∗nH
∗nN
einer Summenformel CnC HnH NnN OnO PnP SnS berechnen wir die Faltung pC
∗ pH
∗ pN
∗
∗nO
∗nP
∗nS
pO ∗ pP ∗ pS .
Nachdem zu einer Gesamtmasse (und benachbarten Massen) alle möglichen Massenzerlegungen berechnet wurden, kann der Vergleich eines gemessenen Spektrums mit alles in Frage
kommenden theoretischen Spektren helfen, zuverlässiger zu entscheiden, welche Summenformel die richtige ist.
Ein Problem dabei ist, dass viele Isotope sehr selten sind und daher auch nur selten beobachtet werden; dadurch unterliegen die beobachteten Intensitäten starken Diskretisierungseffekten: Wenn man erwartet, eine bestimmte Masse 0.7 mal zu sehen, kann es passieren,
dass man sie durchaus null mal, ein mal, oder sogar zwei mal sehen.
71
6 Algorithmen der Massenspektrometrie
72
ANHANG
A
Molekularbiologische Grundlagen
Das Ziel der Bioinformatik ist das Lösen von biologischen Problemen mit Hilfe von Informatik, Mathematik und Statistik. Um die zu Grunde liegenden Fragestellungen verständlich zu
machen, geben wir in diesem Kapitel eine kurze Einführung in einige wichtige Beriffe und
Techniken der molekularen Genetik. Für eine weitergehende Beschäftigung mit dem Thema
sei das Buch von Alberts et al. (2007) empfohlen. Dieses Buch hat auch beim Schreiben
dieses Kapitels als Quelle gedient.
A.1 Desoxyribonukleinsäure (DNA)
Die Entdeckung der molekularen Struktur der Desoxyribonukleinsäure (DNA) zählt zu den
wichtigen wissenschaftlichen Durchbrüchen des 20. Jahrhunderts (Franklin and Gosling,
1953; Watson and Crick, 1953; Wilkins et al., 1953)1 . DNA ist ein Doppelhelix-förmiges Molekül, dessen Bestandteile zwei antiparallele Stränge aus einem Zucker-Phosphat-Rückgrat
und Nukleotid-Seitenketten sind. Die Sprossen“ der Leiter werden aus zwei komplementären
”
Basen gebildet; Adenin (A) ist immer mit Thymin (T) gepaart und Cytosin (C) immer mit
Guanin (G). Chemisch gesehen bilden sich Wasserstoffbrücken zwischen den jeweiligen Partnern; das Ausbilden dieser Bindungen bezeichnet man auch als Hybridisierung. Abstrakt
können wir ein DNA-Molekül einfach als eine Sequenz (String) über dem 4-BuchstabenAlphabet { A, C, G, T } auffassen; die Sequenz des zweiten Strangs erhalten wir durch Bildung
des reversen Komplements. Da DNA fast immer doppelsträngig auftritt, ist die DNA-Sequenz
AAGCCT äquivalent zu ihrem reversen Komplement AGGCTT.
1
Zur Rolle Rosalind Franklins bei der Bestimmung der DNA-Struktur sei auf die Artikel von Klug (1968)
und Maddox (2003) hingewiesen.
73
A Molekularbiologische Grundlagen
Chromosom
Zellkern
Zelle
Basenpaar
DNA-Doppelstrang
Abbildung A.1: Dieses Bild zeigt schematisch die Organisation einer eukaryotischen Zelle.
Man sieht, dass sich mit Zellkern verschiedene Chromosomen befinden. Jedes
Chromosom besteht aus einem langen DNA-Doppelstrang, der in verschiedenen Organisationsebenen immer weiter aufgerollt ist. Ein DNA-Strang
besteht aus einem Zucker-Phosphat-Rückgrat und einer Folge verschiedener Nukleobasen (farbig). Diese bilden Paare mit den Basen des reversen
Strangs. (Dieses Bild ist gemeinfrei. Quelle: http://de.wikipedia.org/w/
index.php?title=Datei:Chromosom.svg)
DNA enthält durch die Abfolge der Basen also Informationen. In jeder bekannten Spezies
(von Bakterien über Pflanzen bis hin zu Tieren und Menschen) wird DNA als Träger der
Erbinformationen verwendet. Das bedeutet, dass die kodierte Buchstabenfolge vererbt wird
und den Bauplan“ für das jeweilige Individuum enthält. Die gesamte DNA-Sequenz eines
”
lebenden Organismus bezeichnet man als Genom. In (fast) allen Zellen eines Organismus
befindet sich eine Kopie des Genoms. Man unterscheidet Lebewesen, bei denen die Zellen
einen Zellkern besitzen, die Eukaryoten, und solche bei denen das nicht der Fall ist, die
Prokaryoten. Bakterien sind zum Beispiel Prokaryoten, während alle Tiere und Pflanzen
Eukaryoten sind. Im folgenden behandeln wir nur eukaryotische Zellen.
Das Genom besteht in der Regel aus mehreren DNA-Molekülen. Diese Teilstücke sind mit
Hilfe spezieller Proteine sehr eng aufgerollt“. Den gesamten Komplex aus einem langen
”
DNA-Faden und Strukturproteinen bezeichnet man als Chromosom. In (fast) jeder Zelle eines
Organismus befindet sich im Zellkern ein kompletter Satz an Chromosomen. Abbildung A.1
illustriert diese Sachverhalte.
74
A.2 Ribonukleinsäure (RNA)
Chromosom
DNA-Doppelstrang
Rueckwärtsstrang
RNA-Polymerase
C T GAC GG ATCAGCC GC A AGC GG A A T T GGC G A C A T A A
CGGC GUU
G A CUGC C UAGU
RNA-Transkript
G A C T GC C T AG T C GGC G T T C GC C T T AA C C GC T G T A T T
Vorwärtsstrang
Abbildung A.2: RNA-Polymerase erstellt eine Kopie des Vorwärtsstrangs, indem RNA erzeugt wird, die revers-komplementär zum Rückwärtsstrang ist. (Dieses Bild
ist gemeinfrei. Quelle: http://de.wikipedia.org/w/index.php?title=
Datei:DNA_transcription.svg)
A.2 Ribonukleinsäure (RNA)
Die Ribonukleinsäure (RNA) ist ein der DNA sehr ähnliches Kettenmolekül. Neben chemischen Unterschieden im Rückgrat des Moleküls besteht der wichtigste Unterschied darin, das
RNA (fast) immer als Einzelstrang auftritt. Ein weiterer Unterschied ist, dass RNA statt
der Base Thymin (T) die Base Uracil (U) enthält. Wir können einen RNA-Strang somit als
String über dem Alphabet {A, C, G, U} auffassen.
Ein Vorgang von zentraler Bedeutung ist die Abschrift von DNA in RNA. Diesen Prozess bezeichnet man als Transkription. Dabei lagert sich ein spezielles Protein, die RNAPolymerase, an den DNA-Doppelstrang an und trennt die Bindungen zwischen den gegenüberliegenden Strängen temporär und örtlich begrenzt auf. An dem nun freiliegenden
Teil des Rückwärtsstrangs wird ein zum diesem komplementärer RNA-Strang hergestellt. Die
Reaktion schreitet in Rückwärtsrichtung fort; die RNA-Polymerase rutscht“ dabei an der
”
DNA entlang. Die Bindung zwischen RNA und DNA-Strang wird durch die RNA-Polymerase
sofort wieder getrennt. Die beiden DNA-Stränge binden wieder aneinander. Zurück bleibt
ein Kopie der DNA in Form eines RNA-Moleküls und der unveränderte DNA-Strang. Eine
schematische Darstellung findet sich in Abbildung A.2.
Wichtig ist, dass immer nur ganz bestimmte Regionen der DNA abgeschrieben werden.
Üblicherweise bezeichnet man einen solchen Abschnitt als Gen. Eine präzise, allgemein ak-
75
A Molekularbiologische Grundlagen
Name
Alanin
Arginin
Asparagin
Asparaginsäure
Cystein
Glutamin
Glutaminsäure
Glycin
Histidin
Isoleucin
Leucin
Lysin
Methionin
Phenylalanin
Prolin
Serin
Threonin
Tryptophan
Tyrosin
Valin
Abkürzung (3 Buchstaben)
Ala
Arg
Asn
Asp
Cys
Gln
Glu
Gly
His
Ile
Leu
Lys
Met
Phe
Pro
Ser
Thr
Trp
Tyr
Val
Abkürzung (1 Buchstabe)
A
R
N
D
C
Q
E
G
H
I
L
K
M
F
P
S
T
W
Y
V
Tabelle A.1: Übersicht über die in Proteinen verwendeten Aminosäuren und ihre ein- bzw.
dreibuchstabigen Abkürzungen.
zeptierte Definition des Begriffs Gen gibt es allerdings nicht. Die Diskussion um diesen Begriff
ist in vollem Gange (Gerstein et al., 2007; Prohaska and Stadler, 2008).
A.3 Proteine
Neben den Nukleinsäuren (also DNA und RNA) sind die Proteine eine weitere Klasse von
biologisch wichtigen Kettenmolekülen. Proteine machen in der Regel ungefähr die Hälfte
der Trockenmasse (also des Teils, der nicht Wasser ist) einer Zelle aus. Sie übernehmen
sehr unterschiedliche Funktionen: sie fungieren als Enzyme, Antikörper, Membranproteine,
Transkriptionsfaktoren, etc. Die Liste ließe sich noch weit fortsetzen. Kurz gesagt: Proteine
sind extrem wichtig für das funktionieren von Zellen und ganzen Organismen.
Die Bestandteile von Proteinen sind Aminosäuren. Jede Aminosäure enthält eine Carboxylund eine Aminogruppe. Zwei Aminosäuren können mit Hilfe einer sogenannten Peptidbindung miteinander verbunden werden. Dabei verbindet sich die Carboxylgruppe der ersten
Aminosäure mit der Aminogruppe der zweiten Aminosäure. Das resultierende Molekül (ein
sogenanntes Dipeptid) hat also auf der einen Seite eine freie Aminogruppe und auf der anderen Seite eine freie Carboxylgruppe. Das Ende mit der freien Aminogruppe bezeichnet man
als N-Terminus und das Ende mit der freien Carboxylgruppe als C-Terminus. Dort können
nun weitere Aminosäuren über Peptidbindungen angekoppelt werden um eine lange Ketten
– ein Protein – zu bilden. Die meisten Proteine sind 50 bis 2000 Aminosäuren lang.
76
A.3 Proteine
Aminosäure
Alanin
Arginin
Asparagin
Asparaginsäure
Cystein
Glutamin
Glutaminsäure
Glycin
Histidin
Isoleucin
Leucin
Lysin
Methionin
Phenylalanin
Prolin
Serin
Threonin
Tryptophan
Tyrosin
Valin
Stopp-Signal
Codons
GCA, GCC,
AGA, AGG,
AAC, AAU
GAC, GAU
UGC, UGU
CAA, CAG
GAA, GAG
GGA, GGC,
CAC, CAU
AUA, AUC,
CUA, CUC,
AAA, AAG
AUG
UUC, UUU
CCA, CCC,
AGC, AGU,
ACA, ACC,
UGG
UAC, UAU
GUA, GUC,
UAA, UAG,
GCG, GCU
CGA, CGC, CGG, CGU
GGG, GGU
AUU
CUG, CUU, UUA, UUG
CCG, CCU
UCA, UCC, UCG, UCU
ACG, ACU
GUG, GUU
UGA
Tabelle A.2: Genetischer Code: Zuordnung von Aminosäuren zu Codons. Wird bei der Translation ein Stopp-Codon erreicht, endet der Prozess.
Die Vielfalt unter den Proteinen entsteht durch die Kombination von 20 verschiedenen Aminosäuren (siehe Tabelle A.1). Die Aminosäuren unterscheiden sich durch die sogenannten
Seitenketten. Das sind chemische Komponenten, die neben der Amino- und Carboxylgruppe an dem zentralen Kohlenstoffatom der Aminosäure befestigt sind. Warum im Laufe der
Evolution genau diese 20 Aminosäuren als Komponenten aller Proteine ausgewählt wurden
ist bisher ungeklärt, denn chemisch lassen sich noch viel mehr Aminosäuren herstellen. Fest
steht, dass diese Auswahl sehr früh im Laufe der Evolution stattgefunden haben muss, denn
sie ist allen bekannten Spezies gemein.
Die Herstellung von Proteinen erfolgt durch die Translation von mRNAs. Die Abkürzung
mRNA steht für messenger RNA“ (Boten-RNA). Sie rührt daher, dass die mRNA als Zwi”
schenprodukt bei der Herstellung von Proteinen dient. Nachdem ein Gen in eine mRNA
transkribiert wurden (vgl. Abschnitt A.2), wird diese mRNA aus dem Zellkern exportiert
und danach in ein Protein übersetzt. Dabei kodieren immer drei Basenpaare der RNA eine
Aminosäure. Ein solches Tripel nennt man Codon. In Tabelle A.2 ist zu sehen, welche Codons
jeweils welche Aminosäure kodieren. Diese Zuordnung bezeichnet mal als genetischen Code.
Da es 20 Aminosäuren gibt, aber 43 = 64 mögliche Codons, gibt es Aminosäuren, die durch
mehrere Codons dargestellt werden.
Die Reihenfolge der Aminosäuren bestimmt die Struktur eines Proteins; deshalb nennt
man sie auch Primärstruktur. Nach der Herstellung eines Proteins verbleibt es allerdings
77
A Molekularbiologische Grundlagen
Abbildung A.3: Schematische Darstellung eines Proteins. Jede α-Helix ist als Spirale, jedes
β-Faltblatt als Pfeil dargestellt. (Dieses Bild ist gemeinfrei. Quelle: http:
//en.wikipedia.org/wiki/File:PBB_Protein_AP2A2_image.jpg)
nicht in seiner Form als langer Strang, sondern faltet sich. Man kann sich das Vorstellen
wie ein Faden, der sich verknäult“. Dies geschiet jedoch nicht zufällig, sondern ist be”
stimmt von den Eigenschaften der Aminosäuren-Seitenketten. So gibt es zum Beispiel Aminosäuren, die hydrophob sind; andere sind hydrophil; wieder andere sind positiv/negativ
geladen. So wirken verschiedene Kräfte zwischen den einzelnen Aminosäuren und der umgebenden (wässrigen) Zellflüssigkeit sowie zwischen den Aminosäuren untereinander. Diese
Kräfte zwingen das Protein in eine ganz bestimmte dreidimensionale Struktur. Das Annehmen dieser Struktur heißt Proteinfaltung. Dabei gibt es bestimmte Bausteine“, die in vielen
”
Proteinen vorkommen, nämlich die α-Helix und das β-Faltblatt. Diese Elemente nennt man
Sekundärstruktur, während die vollständige 3D-Struktur als Tertiärstruktur bezeichnet wird
(siehe Abbildung A.3). Es kommt vor, dass mehrere Proteine sich zu einem Proteinkomplex
zusammenschliessen. Ein solcher Komplex heißt dann Quatärstruktur.
A.4 Das zentrale Dogma der Molekularbiologie
Wir wollen die wichtigsten Prozesse noch einmal zusammenfassen: Abschnitte der DNA (die
Gene) werden transkribiert; das Resultat ist mRNA. Aus jeder mRNA wird bei der Translation ein Protein hergestellt. Somit kann man ein Gen als Bauanleitung für ein Protein“
”
bezeichnen. Anders ausgedrückt werden in der DNA kodierte Informationen in RNA und von
dort in Proteine übersetzt. Dieses Prinzip ist so wichtig, dass man es als zentrales Dogma
der Molekularbiologie bezeichnet.
Man muss jedoch anmerken, dass es auch Ausnahmen von dieser Regel gibt. So weiss man
heute, dass zum Beispiel auch RNA in DNA übersetzt werden kann. Ein Prinzip, dass sich
Retroviren zu Nutze machen. Dennoch hat das zentrale Dogma nichts an seiner Wichigkeit
eingebüßt, denn es beschreibt nach wie vor einen sehr wichtigen, wenn nicht den wichtigsten,
Prozess in Zellen.
78
A.5 Genregulation
A.5 Genregulation
Jede Zelle eines Organismus enthält eine exakte Kopie des Genoms. Wie ist es dann möglich,
dass es so verschiedene Zellen wie Haut-, Leber, Nerven- oder Muskelzellen gibt? Die Antwort
liegt in der Regulation der Gene. Die meisten Gene werden in unterschiedlichen Geweben
unterschiedlich stark verwendet; d. h. es kann zum Beispiel sein, dass ein bestimmtes Protein
in Nervenzellen in sehr großer Zahl hergestellt wird, während man es in Hautzellen garnicht
antrifft. Man sagt dann, das dazugehörige Gen ist unterschiedlich stark exprimiert.
Es gibt viele verschiedene Mechanismen, mit denen eine Zelle die Genexpression steuert.
Ein wichtiger Mechanismus, auf den wir uns zunächst beschränken wollen, ist die Regulation der Transkription durch Transkriptionsfaktoren. Das sind spezielle Proteine, die an
DNA binden können. Diese Bindung erfolgt sequenzspezifisch, das bedeutet ein bestimmter
Transkriptionsfaktor bindet nur an eine bestimmte DNA-Sequenz. Solche Sequenzen befinden sich üblicherweise vor Genen auf der DNA in den sogenannten Promoter-Regionen. Ein
DNA-Abschnitt an den ein Transkriptionsfaktor binden kann bezeichnet man als Transkriptionsfaktorbindestelle. Sobald sich ein Transkriptionsfaktor an eine Bindestelle angelagert
hat, beeinflusst er die Transkription des nachfolgenden Gens. Es gibt sowohl Transkriptionsfaktoren, die das Ablesen eines Gens hemmen, als auch solche, die es fördern.
79
A Molekularbiologische Grundlagen
80
ANHANG
B
Molekularbiologische Arbeitstechniken
Voraussetzung für die moderne Molekularbiologie sind zahlreiche experimentelle Techniken
zur DNA-Bearbeitung:
Kopieren mit PCR (polymerase chain reaction, Polymerasekettenreaktion): Zyklen von (Denaturierung, Priming, Erweiterung) und Zugabe von dNTP führen zu exponentieller
Vermehrung der DNA.
Kopieren durch Klonierung in Vektoren: Einfügen von DNA-Abschnitten in Vektoren (DNA
sich vermehrender Organismen, z.B. Viren, Bakterien)
Cut+Paste mit Restriktionsenzymen: Restriktionsenzyme sind Proteine, die einen DNADoppelstrang an charakteristischen Sequenz-Motiven zerschneiden Beispiele: PvuII
(CAG|CTG) oder BamHI (G|GATCC); der Strich (|) kennzeichnet die Schnittstelle.
Zusammenkleben durch Hybridisierung und Ligation. Viele der Schnittstellen sind palindromisch, d.h. revers komplementär zu sich selbst. Wenn nicht symmetrisch geschnitten wird, ergeben sich klebende Enden (sticky ends), so dass man die DNA-Fragmente
in anderer Reihenfolge wieder zusammensetzen kann.
Längenbestimmung mit Gel-Elektrophorese: DNA ist negativ geladen, DNA-Fragmente
wandern zu einem positiv geladenen Pol eines elektrischen Feldes durch ein Gel. Das
Gel wirkt als Bremse; längere Fragmente sind langsamer. Die DNA wird radioaktiv
oder mit fluoreszierenden Farbstoffen sichtbar gemacht. Die Position der sichtbaren
Banden im Gel erlaubt eine relativ genaue Längenermittlung der DNA-Fragmente
Test auf Präsenz eines DNA-Abschnitts: mittels DNA-Sonden und Hybridisierung (z.B.
Microarrays)
81
B Molekularbiologische Arbeitstechniken
82
ANHANG
C
Genomprojekte und Sequenziertechnologien
Ziel eines Genomprojekts: Bestimmung der DNA-Sequenz des gesamten Genoms (Nukleotidsequenzkarte); das Genom wird sequenziert.
Vorgehen bei Genomprojekten bis ca. 2004
1. Isolieren der DNA aus Zellkern
2. Zerschneiden der DNA mit Restriktionsenzymen (Enzym oder Enzymkombination, so
dass viele Fragmente der Längen 300–1000 entstehen)
3. Einbringen der DNA-Fragmente in Bakterien oder Hefe durch Rekombination
4. Vermehrung dieser Organismen = Klonierung der DNA-Fragmente
5. Erstellung einer Klonbibliothek
6. evtl. Auswahl geeigneter Klone (physikalische Karte)
7. Sequenzierung der Klone mittels Sanger Sequencing
8. Zusammensetzen der überlappenden Fragmente per Computer
Man unterscheidet dabei zwei wesentliche Sequenzierstragetien:
• Ende 80er / Anfang 90er Jahre: Sequenzieren ist teuer: Kartierung der Klone, sorgfältige
Auswahl ist billiger als mehr zu sequenzieren (klonbasierte Sequenzierung) –
• Ende der 90er Jahre: Sequenzierung ist relativ billig(er), alles wird sequenziert (whole
genome shotgun). Problem, das Genom aus den Stücken der Länge 100-1000 zusammenzusetzen, ist schwieriger.
Bis ca. 2004 wurde nahezu ausschließlich Sanger Sequencing verwendet.
• TODO
83
C Genomprojekte und Sequenziertechnologien
Neue Sequenziertechnologien ab 2005 erlauben höheren Durchsatz und deutlich geringere
Kosten.
• 454
• Illumina/Solexa
• SOLiD
• ...
84
Literaturverzeichnis
B. Alberts, A. Johnson, J. Lewis, M. Raff, K. Roberts, and P. Walter. Molecular Biology of
the Cell. Garland Science, 2007. ISBN 0815341059.
R. Franklin and R. Gosling. Molecular configuration in sodium thymonucleate. Nature, 171:
740–741, 1953.
M. B. Gerstein, C. Bruce, J. S. Rozowsky, D. Zheng, J. Du, J. O. Korbel, O. Emanuelsson,
Z. D. Zhang, S. Weissman, and M. Snyder. What is a gene, post-ENCODE? History
and updated definition. Genome Research, 17(6):669–681, 2007. ISSN 1088-9051. doi:
10.1101/gr.6339607.
A. Klug. Rosalind Franklin and the discovery of the structure of DNA. Nature, 219:808–844,
1968.
B. Maddox. The double helix and the ’wronged heroine’. Nature, 421:407–408, 2003.
S. Prohaska and P. Stadler. “Genes”. Theory in Biosciences, 127(3):215–221, 2008.
J. Watson and F. Crick. A structure for deoxyribose nucleic acid. Nature, 171:737–738, 1953.
M. Wilkins, A. Stokes, and H. Wilson. Molecular structure of deoxypentose nucleic acids.
Nature, 171:738–740, 1953.
85
Herunterladen