Evolutionary Trees
and
Perfect Phylogeny
Zentrum für Bioinformatik
der Universität des Saarlandes
WS 2001/2002
Nach der vorherrschende Meinung über die Evolution des Lebens sind alle Lebensformen auf
unserem Planeten aus einem „primitiven“ gemeinsamen Vorfahren hervorgegangen. Ferner
glaubt man, dass sich neue Spezies durch Aufsplittung einer Population in zwei oder mehrere
neue Populationen (Spezies) gebildet haben. Es kann zwar nicht ausgeschlossen werden, dass
sich neue Spezies durch die „Verschmelzung“ von zwei „älteren“ Spezies gebildet haben, jedoch
ist die Wahrscheinlichkeit solcher Evolutionsereignisse sehr viel kleiner als die Wahrscheinlichkeit von Aufsplittungen.
In erster Näherung kann die Geschichte des Lebens (die Evolution) durch einen gerichteten
Baum beschrieben und dargestellt werden. Die noch lebenden Spezies werden durch die
Blätter des Baumes repräsentiert. Die Knoten des Baumes repräsentieren die ausgestorbenen
„gemeinsamen“ Vorfahren der noch lebenden, in den Blättern gespeicherten Spezies.
Es existieren eine Reihe von Theorien aus dem Gebiet
der biologischen Systematik (Klassifikation) und der
Evolutionsbiologie, nach welchen Kriterien und wie
Evolutionsbäume (phylogenetische Bäume) konstruiert
werden sollten.
Als Folge der intensiven Diskussionen über diese
Thematik existieren heute viele unterschiedliche
Typen von phylogenetischen Bäumen.
Wir stellen im folgenden einige Arten von Bäumen
vor, die aus der Sicht der mathematischen und der
algorithmischen Theorie interessant sind. Über die
biologischen Relevanz der verschiedenen Klassifikationen wird auch in Zukunft noch heftig diskutiert
werden.
Definition:
Sei D eine symmetrische n x n Matrix von reellen Zahlen. Ein ultrametrischer Baum T ist ein Baum
mit den folgenden Eigenschaften:
(1) T hat n Blätter, jedes dieser Blätter ist mit einer Zeile aus D beschriftet.
(2) Jeder interne Knoten von T ist mit einem Wert von D beschriftet und hat mindestens 2 Kinder.
(3) Auf jedem Pfad von einem Blatt zur Wurzel wachsen die Werte in den Knoten.
(4) Für jedes Paar (i,j) von Blättern gilt: Der kleinste gemeinsame Vorfahr von i und j im Baum T
ist mit dem Wert D(i,j) der Matrix beschriftet.
a
a
b
c
d
e
b
c
d
e
0
8
8
5
3
8
0
3
8
8
8
3
0
8
8
5
8
8
0
5
3
8
8
5
0
8
3
5
3
d
a
b
c
e
Definition:
Ein min-ultrametrischer Baum hat mit Ausnahme von Eigenschaft (3) die gleichen Eigenschaften
wie ein ultrametrischer Baum. Eigenschaft (3) wird ersetzt durch die Forderung, dass die Werte
auf allen Pfaden von Blättern zur Wurzel kleiner werden.
Man beachte, dass nicht jede Matrix einen (min-)ultrametrischen Baum besitzt. Ein ultrametrischer Baum hat höchstens n-1 interne Knoten. Besitzt die Matrix D also mehr als n-1
verschiedene Einträge (Werte), so kann es zu D keinen ultrametrischen Baum geben.
Welche Art von evolutionären Daten beschreibt ein ultrametrischer Baum?
Die internen Knoten repräsentieren Aufspaltungen einer Spezies in zwei oder mehrere neue
Spezies. Der kleinste gemeinsame Vorfahr zweier in den Blättern gespeicherter Spezies i und j
ist mit einem Wert D(i,j) beschriftet. Dieser Wert gibt an, wie lange sich die beiden Spezies i
und j schon divergent entwickelt haben (time since divergence).
a
a
b
c
d
e
b
c
d
e
0
8
8
5
3
8
0
3
8
8
8
3
0
8
8
5
8
8
0
5
3
8
8
5
0
8
3
5
3
d
a
e
b
c
Definition:
Eine symmetrische Matrix D von reellen Zahlen definiert genau dann eine ultrametrische Distanz,
wenn für jedes Tripel von Indizes i, j ,k gilt: Das Maximum der drei Zahlen (Abstände) D(i,j),
D(j,k), D(k,i) ist nicht eindeutig, d.h., mindestens zwei der Distanzen haben den gleichen Wert.
Satz:
Eine symmetrische Matrix D besitzt genau dann einen ultrametrischen Baum, wenn D eine ultrametrische Distanz definiert (man sagt auch, dass D eine ultrametrische Matrix ist).
Beweis:
„=>“: Wir nehmen an, dass D einen ultrametrischen Baum T besitzt. Für jedes Tripel i, j, k
betrachten wir den Teilbaum von T, der durch die drei Blätter i, j, k und ihre gemeinsamen
Vorfahren definiert wird. Die Wurzel dieses Teilbaums ist mit dem nicht eindeutigen Maximum
der drei Werte D(i,j), D(i,k) und D(j,k) beschriftet.
„<=„: Wir nehmen an, dass D eine ultrametrische Matrix ist und zeigen nun konstruktiv, dass
D einen ultrametrischen Baum besitzt. Wir betrachten das Blatt i dieses Baumes und nehmen
an, dass in der i-ten Zeile von D genau d verschiedene Werte eingetragen sind. Der Pfad von i
zur Wurzel von T muß genau d innere Knoten besitzen, wobei jeder dieser Knoten mit einem
der d Werte (in aufsteigender Folge) beschriftet ist. Ferner muß jedes Blatt j, das einen Abstand
D(i,j) zu i besitzt, in dem entsprechenden Teilbaum des inneren Knoten mit diesem Wert auftreten.
5
a b c d e f g h
a
b
c
d
e
f
g
h
0 4 3 4 5 4 3 4
0 4 2 5 1 4 3
0 5 5 4 1 4
4
e
3
b, d, f, h
c, g
a
Der Pfad von Knoten i (in unserem Beispiel a) unterteilt die restlichen n-1 Blätter in d Klassen.
Für jede dieser Klassen rufen wir rekursiv dieses Konstruktionsverfahren auf, wobei wir nur die
Teilmatrix der entsprechenden Elemente in der Klasse betrachten, und hängen den entsprechenden Teilbaum an den entsprechenden Knoten des Pfades von i.
5
Warum funktioniert dieser rekursive Ansatz korrekt?
Sei v ein innerer Knoten mit Wert w auf dem Pfad von i.
Sei j ein Blatt, das zur Klasse von Knoten v gehört:
Sei l ein anderes Blatt.
4
e
3
3
1
2
h
c
1
g d
f
a
b
5
Warum funktioniert dieser rekursive Ansatz korrekt?
Sei v ein innerer Knoten mit Wert w auf dem Pfad von i.
Sei j ein Blatt, das zur Klasse von Knoten v gehört:
Sei l ein anderes Blatt. Wir unterscheiden drei Fälle:
4
e
3
3
1
2
h
(1) l gehört zur gleichen Klasse wie j:
D(i,j) = D(i,l)
D(j,l)  D(i,j)
c
1
g d
f
Hieraus folgt, dass alle inneren Knoten eines ultrametrischen
a
Teilbaumes der Klasse von v Werte kleiner gleich dem Wert
von v besitzen.
(2) l gehört zu einer Klasse zwischen dem Blatt i und dem inneren Knoten v:
D(i,j) > D(i,l)
D(j,l) = D(i,j)
(3) l gehört zu einer Klasse zwischen dem inneren Knoten v und der Wurzel:
D(i,j) < D(i,l)
D(j,l) = D(i,l)
Satz:
Falls D eine ultrametrische Matrix ist, dann ist der ultrametrische Baum eindeutig bestimmt.
Beweis:
Folgt direkt aus der obigen Konstruktion.
b
Satz
Falls D eine ultrametrische Matrix ist, dann kann der ultrametrische Baum T von D in Zeit
O(n2) konstruiert werden.
Wie erhält man ultrametrische Daten?
(1)
The Molecular Clock Theory: Emile Zuckerkandl und Linus Pauling haben zu Anfang
der 60ziger die sogenannte „Molecular Clock Theory“ Jahre vorgeschlagen. Diese Theorie
besagt, dass die Zahl der zulässige Mutationen in den Genen pro Zeiteinheit ungefähr
konstant ist. Zulässig heißt hier, dass diese mutierten Gene bzw. die codierten Proteine
funktionstüchtig sind. Diese Theorie ist heftig umstritten, da man zum Beispiel von verschiedenen Molekülklassen nachgewiesen hat, dass sie unterschiedlich häufig mutiert
wurden. Man nimmt oft an, dass die Zahl der Mutationen pro Zeiteinheit von bestimmten
Proteinklassen in erster Näherung konstant ist und bestimmt für alle Paare in einer solchen
Klasse die Zahl der Mutationen, die die Proteine ineinander überführen.
(2)
Experimentelle Daten: Man betrachte eine Klasse von Genen (DNA). Man mische die
DNA-Moleküle von zwei Genen, denaturiere die Moleküle, so dass Einzelstränge entstehen, mische die Einzelstränge und erlaube den Einzelsträngen wieder zu hybridisieren.
Die Separierungstemperatur der gemischt hybridisierten Stränge ist umso größer, je ähnlicher die Gene sind.
Definition:
Sei D eine symmetrische n x n Matrix, wobei die Zahlen entlang der Diagonalen gleich 0 sind
und sonst größer als 0. Sei T ein Baum mit wenigsten n Knoten und mit gewichteten Kanten,
wobei n Knoten mit den Zeilen von D beschriftet sind. Der Baum T wird als additiver Baum
für die Matrix D bezeichnet, wenn für jedes Paar von beschrifteten Knoten (i,j) gilt:
Der Summe der Gewichte des Pfades von Knoten i nach Knoten j hat Gewicht D(i,j).
a
a
b
c
d
b
c
d
0
3
7
9
3
0
6
8
7
6
0
6
9
8
6
0
d
a
4
2
3
1
2
b
c
Additives-Baum-Problem:
Gegeben eine symmetrische Matrix D mit Nullen auf der Diagonalen und echt positiven Einträgen sonst, berechne einen additiven Baum für D oder beweise, dass es keinen solchen Baum
gibt.
Kompaktes Additives-Baum-Problem:
Gegeben eine symmetrische Matrix D mit Nullen auf der Diagonalen und echt positiven Einträgen sonst, berechne einen additiven Baum für D, der aus genau n beschrifteten Knoten besteht, oder beweise, dass es keinen solchen Baum gibt.
Definition:
Für eine gegebene symmetrische n x n Matrix D bezeichnen wir mit G(D) den vollständigen
Graphen mit n Knoten {1, ..., n} und gewichteten Kanten, wobei die Kante zwischen i und j
das Gewicht D(i,j) besitzt.
Satz:
Wenn es einen kompakten additiven Baum T zu D gibt, dann ist T gleich dem minimalen aufspannenden Baum von G(D).
Beweis:
Sei T der kompakte additive Baum von D und sei e = (x,y) eine beliebige Kante, die nicht zu T
gehört. Da der Pfad von x nach y in T das Gesamtgewicht D(x,y) hat und alle Werte auf dem
Pfad echt positiv sind, muß D(x,y) größer sein als jedes Kantengewicht auf dem Pfad. Wir zeigen
nun, dass die Kante e = (x,y) unter diesen Bedingungen nicht zu einem minimalen aufspannenden
Baum gehören kann.Wir nehmen an, dass e zu einem minimalen aufspannenden Baum T‘ gehört.
T‘
e
x
x‘
y‘
e‘
y
Löschen wir e aus T‘, so zerfällt der Baum in zwei Teilbäume, ein Teilbaum der x enthält und einer der y enthält.
Es muß eine Kante e‘ in T existieren, die auf dem Pfad von
x nach y liegt und die beiden Teilbäume verbindet.
Fügen wir diese Kante zu T‘\{e} hinzu, so erhalten wir
einen Baum T‘‘ mit dem folgenden Gewicht:
D(T‘‘) = D(T‘) – D(x,y) + D(x‘,y‘) < D(T‘)
Algorithmus:
Gegeben eine symmetrische n x n Matrix D.
(1) Berechne den minimalen aufspannenden Baum T von G(D).
(2) Teste, ob der minimale aufspannende Baum T von G(D) additiv bezüglich D ist.
Satz:
Wenn es einen kompakten additiven Baum T zu D gibt, dann ist T gleich dem minimalen aufspannenden Baum von G(D).
Beweis:
Sei T der kompakte additive Baum von D und sei e = (x,y) eine beliebige Kante, die nicht zu T
gehört. Da der Pfad von x nach y in T das Gesamtgewicht D(x,y) hat und alle Werte auf dem
Pfad echt positiv sind, muß D(x,y) größer sein als jedes Kantengewicht auf dem Pfad. Wir zeigen
nun, dass die Kante e = (x,y) unter diesen Bedingungen nicht zu einem minimalen aufspannenden
Baum gehören kann.Wir nehmen an, dass e zu einem minimalen aufspannenden Baum T‘ gehört.
T‘
e
x
x‘
y‘
e‘
y
Löschen wir e aus T‘, so zerfällt der Baum in zwei Teilbäume, ein Teilbaum der x enthält und einer der y enthält.
Es muß eine Kante e‘ in T existieren, die auf dem Pfad von
x nach y liegt und die beiden Teilbäume verbindet.
Fügen wir diese Kante zu T‘\{e} hinzu, so erhalten wir
einen Baum T‘‘ mit dem folgenden Gewicht:
D(T‘‘) = D(T‘) – D(x,y) + D(x‘,y‘) < D(T‘)
Ziel:
Wir zeigen im folgenden, wie man das additive Baum-Problem in Zeit O(n2) zu einem ultrametrischen Problem reduzieren kann. Hierzu generieren wir eine Matrix D‘, die genau dann
eine ultrametrische Matrix ist, wenn die vorgegebene Matrix D additiv ist.
Idee:
Wir nehmen an, dass D additiv ist und dass ein additiver Baum T von D bekannt ist. Wir nehmen
ferner o.B.d.A. an, dass alle Beschriftungen an den Blättern des Baumes angebracht sind. Wir
werden nun die Knoten von T so mit Zahlen beschriften, dass wir einen ultrametrischen Baum T‘
erhalten. Sei v die Zeile von D, die den größten Eintrag mv enthält. Wir machen v zur Wurzel von
T‘. Für jedes Blatt i addieren wir mv – D(v,i) zu der Distanz der Kante, die zum Blatt i führt.
a
a
b
2
(1) Die Distanz von v zu irgendeinem Blatt ist mv.
(2) Jeder innere Knoten hat den gleichen Abstand
zu allen Blättern in seinem Unterbaum.
9
2
1
1+ 6
7
3
3
Nun markieren wir alle inneren Knoten mit
dem Abstand des Knotens zu allen Blättern
in seinem Unterbaum.
b
4
4
c
2
0+4
d
c
2+ 2
d
Diese Zahlen liefern die Einträge für die
ultrametrische Matrix D‘.
Reduktion:
T‘
(D, T)
D‘
Wir benötigen eine direkte Reduktion von D
T‘
T
v = root
v = root
d(v,w)
d(v,w)
w = lca(i,j)
d(i,w)
d(j,w)
i
j
w = lca(i,j)
d(i,w)
+ mv – D(i,v)
i
d(j,w)
+ mv – D(j,v)
j
2 D‘(i,j) = d(i,w) + mv – D(i,v) + d(j,w) + mv – D(j,v)
2 D‘(i,j) = d(i,w) + d(j,w) + 2 mv – D(i,v) – D(j,v)
2 D‘(i,j) = D(i,j) + 2 mv – D(i,v) – D(j,v)
D‘(i,j) = mv + (D(i,j) – D(i,v) – D(j,v))/2
Satz:
Falls D eine additive Matrix ist, dann ist D‘ eine ultrametrische Matrix, wobei
D‘(i,j) = mv + (D(i,j) – D(i,v) – D(j,v))/2
D‘
Beachte! Der vorhergehende Satz erlaubt uns folgenden Test: Gegeben eine Matrix D.
Generiere aus D die Matrix D‘ und teste, ob D‘ eine ultrametrische Matrix ist.
Falls D‘ keine ultrametrische Matrix ist, dann ist D nicht additiv.
Wie sieht es mit der Umkehrung dieser Aussage aus?
Satz: Falls die Matrix D‘ eine ultrametrische Matrix ist, dann ist D eine additive Matrix.
Beweis:
D
a
b
c
d
Sei T‘‘ ein ultrametrischer Baum für die Matrix D‘. Wir ordnen den Kanten von T‘‘
Gewichte zu, so dass jeder Pfad von einem Blatt i zu einem Vorfahren w genau die Distanz
hat, die w als Beschriftung in T‘‘ hat. Jeder Kante (p,q) erhält die Differenz der Beschriftungen
der Knoten als Gewicht. Die resultierende Pfaddistanz für ein Paar von Blättern (i,j) entspricht
jedoch genau der zweifachen Distanz D‘(i,j) in der ultrametrischen Matrix D‘. Ferner gilt:
a b c d
2 D‘(i,j) = 2 mv + D(i,j) – D(i,v) – D(j,v)
0 3 7 9
9
3 0 8 6
09 Wir subtrahieren nun für jedes Blatt i bzw. j von jeder Blattkante
2
7 8 0 6
7
9 6 6 0
mv – D(i,v) bzw.
(mv – D(j,v))
1
7
a b c d
a
3
Hieraus folgt für jedes Paar von Blättern, dass die Pfaddistanz
0 9 9 9
4
im transformierten Baum gleich D(i,j) ist.
9 0 7 7
b
4
24
a
D‘ b
c 9
d 9
7
7
0 4
4 0
c
d
Algorithmus zur Berechnung eines additiven Baumes zu einer vorgegebenen additiven Matrix D.
(1) Generiere aus D die Matrix D‘ und berechne den ultrametrischen Baum T‘‘.
(2) Ordne den Kanten die Differenz der Beschriftungen der Knoten als Gewicht zu.
(3) Für jedes Blatt i subtrahiere mv – D(i,v) von dem Wert der Blattkante.
Satz: Ein additiver Baum für eine additive Matrix D kann in Zeit O(n2) konstruiert werden.
In diesem Abschnitt betrachten wir einen anderen Ansatz, die Geschichte der Evolution zu
rekonstruieren. Die Eingabe besteht hierbei nicht aus einer Distanzmatrix, sondern aus einer
Matrix mit Zeichen bzw. Informationen über die untersuchten Spezies.
Definition einer Eigenschaftsmatrix
Sei M eine (binäre) n x m Matrix, wobei die Zeilen bestimmte Eigenschaften der Spezies kodieren.
Falls die Spezies p (p-te Zeile) die Eigenschaft i (i-te Spalte) besitzt, ist M[p,i] = 1, andernfalls 0.
Wie erhält man die Daten (Eigenschaften)?
• Besitzt oder besitzt kein Rückgrat.
• Hat Federn oder nicht.
• Es können auch bestimmte metabolische oder regulatorische Eigenschaften verwendet werden.
• Welche Art von Base an einer bestimmten Position im Genom vorhanden ist ( 1 bei A und G
(Purin), 0 bei C und T (Pyrimidin)). Hierbei extrahiert man die Informationen aus einem
multiplen Alignment.
• Die Existenz und Größe von Lücken in multiplen Alignments. Mit Hilfe solcher Eigenschaften
hat man zum Beispiel versucht, die Frage der Verwandtschaft von Pilzen, Pflanzen und Tieren
zu klären (die Verwandtschaft zwischen Pilzen und Tieren scheint enger zu sein als zu Pflanzen).
Definition
Sei M eine (binäre) n x m Eigenschaftsmatrix. Ein phylogenetischer Baum für M ist ein Baum T mit
genau n Blättern, der die folgenden Eigenschaften besitzt:
• Jede der n Spezies beschriftet genau ein Blatt von T.
• Jede der m Eigenschaften beschriftet genau eine Kante des Baumes T.
• Für jede Spezies p im Baum T gilt: Die Eigenschaften der Kanten auf dem Pfad von der Wurzel
von T bis zum Blatt p sind genau die Eigenschaften, die p besitzt (mit Wert 1).
1
a
b
c
d
e
2
3
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
a
b
c
d
e
4
4
5
2
3
5
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
Biologische Interpretation:
3
2
1
5
c
e
a
b
4
d
Die Wurzel repräsentiert einen gemeinsamen Vorfahren, der keine der Eigenschaften besitzt.
Jede der Eigenschaften taucht einmal
auf und verschwindet dann nie wieder.
Zu dieser Matrix existiert kein phylogenetischer Baum !
Perfect Phylogeny Problem:
Gegeben eine (binäre) n x m Eigenschaftsmatrix M. Überprüfe, ob es einen phylogenetischen Baum
T für M gibt, und konstruiere den Baum, falls er existiert.
Zunächst sortieren wir die Spalten der Matrix M, so dass sie bezüglich ihrer binären Zahlenwerte
fallend sortiert sind (die größte Spalte zuerst).
2
a
b
c
d
e
1
3
5
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
4
a
b
c
d
e
2
3
4
5
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
Ab jetzt nehmen wir o.B.d.A. an, dass die Spalten der Matrix M bereits sortiert sind.
Ferner nehmen wir o.B.d.A. an, dass die Eigenschaften entsprechend der Sortierung der
Spalten von 1 bis m durchnummeriert sind.
Definition:
Für jede Spalte k bezeichen wir mit Ok die Menge der Spezies, die die Eigenschaft k besitzen
(eine Eins in Spalte k haben).
Lemma:
1)
Ok  Oj
k<j
2) Identische Spalten bilden einen Block in der Matrix M.
Satz:
Die Matrix M hat genau dann einen phylogenetischen Baum T, wenn für jedes Paar i,j von Spalten gilt:
Entweder sind Oi und Oj disjunkt oder eine Menge enthält die andere.
Beweis:
Wir nehmen zunächst an, dass ein Baum T zu M existiert und betrachten zwei beliebige Spalten i,j.
Sei ei bzw. ej die Kante des Baumes T, wo Eigenschaft i bzw. j den Wert 1 annehmen.
• ei = ej
Oi = Oj
• ei liegt auf dem Pfad von der Wurzel zu ej
• ej liegt auf dem Pfad von der Wurzel zu ei
Oi  Oj
Oj  Oi
• Die Pfade zu den beiden Kanten verzweigen,
bevor ei und ej erreicht werden.
Oj  Oi = 
Wir beweisen nun die andere Richtung und betrachten zwei Spezies p und q. Sei k die größte
Eigenschaft, die beide Spezies besitzen. Sei i<k eine weitere Eigenschaft, die p besitzt:
Oi  Ok  
Oi  Ok
Auch q besitzt die Eigenschaft i.
Fortsetzung des Beweises auf der nächsten Seite.
Wir bauen nun einen „Keyword-Tree“ (siehe Suffix-Tree). Hierbei ordnen wir jeder Spezies p einen
String S(p) zu. Der String besteht aus den Nummern der Eigenschaften, die p besitzt, in der Reihenfolge, in der sie in M auftreten. Am Ende der Strings fügt man ein besonderes Endsymbol $ an.
Beispiel:
1
a
b
c
d
e
2
3
4
5
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
12$
3$
124$
35$
1$
3
1
$
2
4$
$
b
$ e
c
a
5$
d
Aus der Überlegung am Ende der vorherigen Seite folgt: Die Strings zweier Spezies p und q sind bis
zu einer bestimmten Eigenschaft k identisch und danach haben sie keine gemeinsamen Eigenschaften
(Symbole) mehr. Hieraus folgt, dass M eine perfekte Phylogenie repräsentiert, deren Baum T durch
Entfernen der $-Symbole aus dem obigen Keyword-Tree gewonnen wird.
Der obige Algorithmus hat eine Laufzeit von O(nm2) (Phylogeny-Test: Tests aller Paare von Spalten).
Ein O(nm) Algorithmus zur Lösung des Perfect Phylogeny Problems:
(1) Sortiere die binären Zahlen in den Spalten von M mittels Radixsort.
(2) Konstruiere zu jeder Zeile der Matrix den entsprechenden Eigenschafts-String.
(3) Bilde den Keyword-Tree T für diese n Strings mit Länge kleiner gleich m.
(4) Teste, ob T (ohne Endsymbole) eine perfekte Phylogeny für M ist.
Der Test in Schritt 4 ist trivial, da die erste und dritte Forderung in der Definition einer perfekten
Phylogeny durch die Konstruktion garantiert werden. Die zweite Forderung, dass jede der Eigenschaften genau eine Kante beschriftet, wird durch eine Begehung aller Kanten plus eine Überprüfund auf doppelte Beschriftungen getestet.
Man kann mit völlig unterschiedlichen Daten evolutionäre Bäume bauen. Es stellt sich dann natürlich die Frage, ob die verschiedenen Bäume zueinander kompatibel sind oder nicht, d.h., ob die
Bäume eine konsistente evolutionäre Geschichte beschreiben oder nicht.
Definition:
Ein phylogenetischer Baum T‘ ist eine Verfeinerung von T, falls man T aus T‘ durch eine Reihe von
Kantenkontraktionen erhält.
T‘
T
fg
g
f
a
b c
de
cde
a
b
Definition:
Zwei Bäume T1 und T2 sind kompatibel, wenn es einen phylogenetischen Baum T3 gibt, der sowohl
eine Verfeinerung von T1 als auch von T2 ist.
Baum-Kompatibilitätsproblem:
Gegeben zwei Bäume T1 und T2. Teste, ob die Bäume kompatibel sind, und falls dies der Fall ist,
so berechne die Verfeinerung T3 von T1 und T2.
Wir nehmen an, dass T1 und T2 zwei phylogenetische Bäume für eine Menge von n Spezies sind
und dass beide Bäume binäre Bäume sind. Nur die Wurzel der Bäume darf den Grad 1 haben.
Sei M1 eine binäre Matrix, die eine Zeile für jede Spezies p und eine Spalte für jeden inneren Knoten j
von T1 enthält. M1[p,j] ist genau dann gleich 1, wenn das Blatt p im Teilbaum von Knoten j liegt,
und 0 sonst
Sei M2 eine binäre Matrix, die eine Zeile für jede Spezies p und eine Spalte für jeden inneren Knoten i
von T2 enthält. M2[p,i] ist genau dann gleich 1, wenn das Blatt p im Teilbaum von Knoten i liegt,
und 0 sonst
Sei M3 die Matrix, die man durch die Vereinigung von M1 und M2 erhält, d.h., man kombiniere
die Spalten der beiden Matrizen.
Satz:
T1 und T2 sind genau dann kompatibel, wenn es einen phylogenetischen Baum für M 3 gibt.
Darüberhinaus ist ein phylogenetischer Baum T3 von M3 eine Verfeinerung von T1 und T2.
Wir zeigen im folgenden, dass man das „Perfect Phylogeny Problem“ als ein ultrametrisches
Problem lösen kann.
Definition:
Sei D eine symmetrische n x n Matrix von reellen Zahlen. Ein ultrametrischer Baum T ist ein Baum
mit den folgenden Eigenschaften:
(1) T hat n Blätter, jedes dieser Blätter ist mit einer Zeile aus D beschriftet.
(2) Jeder innere Knoten von T ist mit einem Wert von D beschriftet und hat mindestens 2 Kinder.
(3) Auf jedem Pfad von einem Blatt zur Wurzel wachsen die Werte in den Knoten.
(4) Für jedes Paar (i,j) von Blättern gilt: Der kleinste gemeinsame Vorfahr von i und j im Baum T
ist mit dem Wert D(i,j) der Matrix beschriftet.
a
a
b
c
d
e
b
c
d
e
0
8
8
5
3
8
0
3
8
8
8
3
0
8
8
5
8
8
0
5
3
8
8
5
0
8
3
5
3
d
a
b
c
e
Definition:
Ein min-ultrametrischer Baum hat mit Ausnahme von Eigenschaft (3) die gleichen Eigenschaften
wie ein ultrametrischer Baum. Eigenschaft (3) wird ersetzt durch die Forderung, dass die Werte
auf allen Pfaden von Blättern zur Wurzel kleiner werden.
Definition:
Gegeben eine n x m Eigenschaftsmatrix M. Wir definieren eine n x n Matrix D M wie folgt:
Für jedes Paar p,q von Spezies setzen wir die Einträge DM[p,q] und DM[q,p] gleich der Zahl
der Eigenschaften, die p und q gemeinsam haben.
Lemma:
Falls M eine perfekte Phylogeny besitzt, dann ist DM eine ultrametrische Matrix.
Beweis:
Sei T die perfekte Phylogeny von M. Wir werden T in einen min-ultrametrischen Baum für die
Matrix DM transformieren. Die Wurzel beschriften wir mit 0. Dann beschriften wir den restlichen
Baum und zwar von oben nach unten (top-down) wie folgt: Die Beschriftung eines Knotens v ist
gleich der Beschriftung seines Vaters plus der Zahl der Eigenschaften, die der Kante vom Vater
zu v zugeordnet sind. Die Zahl im kleinsten gemeinsamen Vorfahren von zwei beliebigen Spezies
p und q entspricht also der Zahl der Eigenschaften DM[p,q], die p und q gemeinsam besitzen.
0
Ferner wachsen die Zahlen auf jedem Pfad von einem Blatt zur Wurzel.
3
2
1
Man beachte, dass der (min)-ultrametrische Baum einer ultra1
4
metrischen Matrix eindeutig bestimmt ist.
1
2
d
b
5
e
c
a
Perfect Phylogeny via ultrametrischen Baum:
(1) Berechne die Matrix DM aus M wie auf der vorhergehenden Seite beschrieben.
(2) Teste, ob DM einen ultrametrischen Baum besitzt, und falls dies der Fall ist, berechne ihn.
Falls es keinen ultrametrischen Baum gibt, dann hat M keine perfekte Phylogeny.
(3) Falls DM einen ultrametrischen Baum T‘ besitzt, dann versuche die Kanten so zu
mit den m Eigenschaften zu beschriften, dass T‘ in eine perfekte Phylogeny von M
transformiert wird. Falls dies nicht funktioniert, dann hat M keine perfekte Phylogeny.
Übung: Man beschreibe ein effizientes Verfahren zur Beschriftung der Kanten (bzw.
zum Testen, ob eine Beschriftung überhaupt möglich ist).
Ein anderes wichtiges Werkzeug zum Analysieren und Visualisieren von Distanz- und Sequenzdaten ist SPLITSTREE (Dress & Huson & Moulton [1996]). Obwohl der Name suggeriert, dass
hiermit auch nur Bäume konstruiert werden, konstruiert dieses Tool eventuell auch Graphen (SplitGraphen), falls die Distanzdaten nicht unbedingt durch eine Baumform beschrieben werden können
bzw. die Interpretation der Daten keine eindeutige, wohldefinierte Baumform als Resultat hervorbringt.
Dieses neue Tool basiert auf der sogenannten Split-Decomposition-Technik, die von Bandelt und
Dress zu Beginn der neunziger Jahre in Bielefeld entwickelt wurde. Diese Technik erlaubt es eine
gegebene Metrik, die auf einer endlichen Menge definiert ist, auf kanonische Art und Weise in eine
Summe von einfacheren Metriken zu zerlegen.
• Die Summe der Längen der Kanten des kürzesten Weges von einem Knoten (z.B. blue) zu
einem anderen Knoten (z.B. red) ist proportional (eine Approximation) zur tatsächlichen
(in der Distanzmatrix vorgegebenen) Distanz der beiden Knoten.
• Entfernt man aus einem Baum eine Kante, so zerfällt der Baum in zwei Zusammenhangskomponenten. Hierdurch werden die Daten in zwei nicht-leere, disjunkte Teilmengen zerlegt.
• Um einen Split-Graphen „aufzusplitten“, kann es erforderlich sein, dass ein ganzes Bündel von
parallelen, gleichlangen Kanten entfernt werden muß.
i
k
j
i
l
j
l
i
k
j
l
k
Definition:
Sei X = {1,2, ... , n} die Menge der Spezies mit Distanzmatrix d = (dij)1 i, j  n. Eine Bipartition
von X ist eine Zerlegung von X in zwei disjunkte Teilmengen A und B, d.h.,
X = A  B und A  B = .
Ein Bipartition A, B von X heißt ein d-Split, wenn für alle i, j  A und alle k, l  B gilt:
dij + dkl < max {dik + djl , dil + djk }
Wie berechnet man die d-Splits einer Menge X={1, ... , n} von Spezies?
Hierzu verwendet man eine rekursive Prozedur: Wir nehmen an, dass die d-Splits der Menge
{1, ..., i-1} bereits berechnet wurden, und beschreiben, wie wir ausgehend von diesen d-Splits
die Menge der d-Splits von {1, ... , i } berechnen können:
Für jeden d-Split A,B von {1, ... , i-1} testen wir, ob (1) A  {i}, B ein d-Split von {1, ... , i} ist, und
ob (2) A, B  {i} ein d-Split von {1, ... , i} ist.
Ferner testen wir, ob {1, ... , i-1}, {i} ein d-Split von {1, ... , i } ist.
d1
d2
d 1 < d2 + d3
d-Split Bedingung für alle Paare von {1, ... , i-1}
d3
Falls d eine Metrik ist, so gilt für jedes Element xX, dass nicht auf einer durch die restlichen
Paare von Punkten gebildeten „Linie“ liegt: {x}, X\{x} ist ein d-Split von X.
Bei den obigen Tests betrachtet man natürlich in A  {i} bzw. B  {i} nur Paare mit i, da alle
anderen Paare bereits vorher getestet wurden.
Die Laufzeit des obigen Algorithmus kann durch ein Polynom sechsten Grades in n (O(n 6))
nach oben abgeschätzt werden.
Wie berechnet man den Split-Graphen einer Menge X={1, ... , n} von Spezies?
Zunächst berechnen wir mit der rekursiven Prozedur die Menge {S1 , ... , Sk } aller d-Splits von X.
Wir beginnen mit einem Knoten v, der mit den Namen aller Spezies beschriftet ist. Dann erweitern
wir diesen Graphen, indem wir d-Split für d-Split von X betrachten. Sei G=(V,E) der Graph der
d-Splits {S1 , ... , Sk-1}. Wir betrachten nun den Split Sk = A, B:
(1)
(2)
(3)
Erstelle zwei Kopien GA und GB von G, wobei die Knoten von GA nur mit den Elementen
von A und die Knoten von GB nur mit den Elementen von B beschriftet werden.
Lösche alle leeren Knoten in GA und GB , die nicht auf einem kürzesten Pfad zwischen
zwei beschrifteten Knoten liegen, und die entsprechenden Kanten.
Verbinde die Paare von Knoten von GA und GB, die aus dem gleichen Ursprungsknoten
von G hervorgegangen sind.
Beispiel: X = {a,b,c,d,e,f,g}
a,b,c,d,e,f,g
S2 = {a,f,g},{b,c,d,e}
S3 = {a,b,c,d},{e,f,g}
c,d,e
a,b,f,g
S1 = {a,b,f,g},{c,d,e}
a,f,g
b
c,d,e
a
b
c,d
f,g
S4 = {a,b,c,g},{d,e,f}
a
g
e
b
c
d
Welche Längen erhalten die Kanten eines d-Splits?
Definition:
Jedem d-Split A, B von X ordnen wir einen Isolations- oder Trennungsindex A,B wie folgt zu:
 A,B : 
d
A, B
1
:
min {max{ d ik  d jl , d il  d jk }  d ij  d kl }
i
,
j

2 A,k ,lB
Diese Definition kann zu einem Isolationsindex für alle Splits wie folgt erweitert werden:
 A,B : 
d
A, B
1
:
min {max{ d ik  d jl , d il  d jk , d ij  d kl }  d ij  d kl }
i
,
j

2 A,k ,lB
Für Splits, die keine d-Splits sind, hat der Isolationsindex den Wert 0.
Ferner können wir jedem Split A, B eine Split-Metrik A,B zuordnen. A,B (x,y) = 1 genau dann,
wenn x ein Element von A und y ein Element von B ist oder umgekehrt. A,B (x,y) = 0, falls beide
Elemente zur gleichen Menge (A oder B) gehören.
Bandelt & Dress haben gezeigt, dass folgende Ungleichung gilt:
Ferner definierten Sie eine Abbildung (Pseudo-Metrik):
d 0 ( x, y )  d ( x, y ) 
 A,B A,B ( x, y)
SplitsA,B

 A,B ( x, y)  d ( x, y )
A,B
SplitsA, B
d ( x, y)  d 0 ( x, y ) 

 A,B ( x, y )
A,B
SplitsA,B
Die Kanten eines d-Splits erhalten den Wert des Isolationsindexes als Länge. Der Gesamtabstand
zwischen zwei Elementen x und y im Split-Graphen entspricht d(x,y) – d0(x,y).

Definition