Phylogenetische Bäume & ihre Konstruktion

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Polynomial Root Isolation
Schnelle Matrizenoperationen von Christian Büttner
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Vom graphischen Differenzieren
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kapitel 6: Klassifizierung von Sortiertechniken
Suche in Texten (Stringsuche )
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Marco Barz Seminar über Algorithmen SoSe2007
Suche in Texten: Suffix-Bäume
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmentheorie 7 – Bin Packing
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Kapitel 5 Stetigkeit.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Algorithmen und Komplexität
Evolutionary Trees and Perfect Phylogeny Zentrum für Bioinformatik
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Approximationsalgorithmen Facility Location K-Median Cheng, Wei 12. Juli.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Das Traveling Salesman Problem (TSP)
Analyse der Laufzeit von Algorithmen
Vom graphischen Differenzieren
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Binärbäume.
Geoinformationssysteme
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Präsentation transkript:

Phylogenetische Bäume & ihre Konstruktion Proseminar “Algorithmen und Datenstrukturen” im WS 02/03 Phylogenetische Bäume & ihre Konstruktion referiert von Marc Bachstein und Youssef Ben cheikh

Gliederung 1. Was ist Phylogenie? 2. Aufbau von phylogenetischen Bäumen 3. Konstruktion von phylogenetischen Bäumen 1. UPGMA (Greedy-Ansatz)  Ultra-Metriken 2. Neighbour Joining 4. Zusammenfassung

Phylogenie beschäftigt sich mit der Verwandtschaft zwischen „Spezies“ 1. Was ist Phylogenie? Phylogenie beschäftigt sich mit der Verwandtschaft zwischen „Spezies“ ( Darwins Evolutionstheorie) Baumartige Darstellung der Verwandschaftsgrade Klassifizierung hier unter morphologischen Gesichtspunkten wie z.B. Fell, Federn

2. Aufbau von phylogenetischen Bäumen Nun Differenzierung über die verschiedenen DNAs Zur Erinnerung: DNA – Sequenz ist eine Folge von Buchstaben (bzw. Basen) aus dem Alphabet A = {A,G,C,T} z. B. S = ATCGAATACAGATTCGGT Doch wie sehen diese Bäume nun aus?

Bei phylogenetischen Bäumen gibt es 2 verschiedene Darstellungen: Phylogenetischer Baum ohne „Urvater“ Phylogenetischer Baum mit „Urvater“ Zeit S1 S3 S5 S2 S4 S1, ..., S8 sind DNA-Sequenzen Bei beiden gilt: Kanten sind gewichtet ( Kantenlänge gibt zeitlichen Abstand zwischen zwei Sequenzen an) Es ist ein natürliches Distanzmaß D(Si,Sj) zwischen zwei Sequenzen Si und Sj gegeben

Sequenzfamilie S = {S1, ..., S5} Definition: Ein phylogenetischer Baum T auf einer Sequenzfamilie S ist ein Baum dessen Blätter mit den Elementen von S markiert sind. Zeit S1 S3 S5 S2 S4 S1, ..., S5 sind DNA-Sequenzen Sequenzfamilie S = {S1, ..., S5} Ein (phylogenetisches) Alignment für T ist eine Markierung der inneren Knoten von T. (Die Struktur des Baumes wird dabei nicht verändert!) Dieses Alignment heißt intern (pseudo-lifted) wenn alle Markierungen aus S stammen, und streng intern (lifted), wenn jeder Elter-Knoten die Markierung eines seiner Kind-Knoten übernimmt.

Betrachten wir noch einmal das Kostenmaß zwischen zwei Sequenzen: Zwei Sequenzen si und sj stehen in einer (zeitlichen) Distanz D(si,sj) zueinander. Für jede dieser Distanzen gilt die Eigenschaft der Metrik: Die Funktion D: S2  R+ heißt Metrik, wenn (M1)  s1,s2  S: D(s1,s2) = 0  s1 = s2 (Definitheit), (M2)  s1,s2  S: D(s1,s2) = D(s2,s1) (Symmetrie), (M3)  s1, s2, s3  S: D(s1,s3)  D(s1,s2) + D(s2,s3) (Dreiecksungleichung) Im folgenden werden alle Distanzen zwischen den Sequenzen als vorgegeben vorausgesetzt. Sie können aber auch anhand von Algorithmen (1. Vortrag) im Vorfeld berechnet werden. In unseren Beispielen gehen wir von der einfachsten Form, der Hamming-Distanz DH aus. s1 = AGCACGAT s2 = ATCACACT Beispiel: DH(s1,s2) = 3

Gegeben sei nun ein Baum T. Wir suchen ein optimales Alignment, welches die kleinsten Gesamtkosten (Summe aller Kantenkosten) in einem Baum verursacht.  NP-hartes Problem Problem wird auf optimales internes Alignment beschränkt (s  S) (Approximationsalgorithmus)  Hier Lösung in O(|S|3) durch dynamische Programmierung d(v,s) bezeichnet die Summe aller Kantenkosten des Baumes mit der Wurzel v und mit der Markierung s an v. s v ... ... ... ... ... Demnach ist dopt = min ( d(Wurzel,s)). s  S Wir probieren also an der Wurzel alle s  S aus und wählen dann das s, welches die geringsten Gesamtkosten verursacht.

alle Blätter xi mit Markierung si Wie berechnen wir d(v,s)? Angenommen v habe nur Blätter: d(v,s) =  D(si,s) alle Blätter xi mit Markierung si v habe nun auch Teilbäume mit Wurzeln w1, w2, ..., wr d(v,s) = min [  [D(s,si) + d(wi,si)]] s1,..., sr 1 i r (|S|r verschiedene Möglichkeiten) Da Wahlen der si unabhängig voneinander: d(v,s) =  min [D(s,si) + d(wi,si)] si 1 i r Bei streng internem Alignment noch weniger zu berechnen: d(v,s) = [  min [D(s,si) + d(wi,si)]]+ d(wj,s) S Blatt im j-ten Teilbaum 1 i r, ij

Dopt(lifted Alignment)  2  D(opt Aligmnet) Also: Wir werden nun zeigen, dass ein Baum mit optimalem lifted Alignment höchstens doppelt so große Gesamtkosten hat wie ein Baum mit optimalem Alignment: Dopt(lifted Alignment)  2  D(opt Aligmnet) Also: Beim lifted Alignment existieren Kanten mit Kosten 0 und > 0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s1 s3 s4 s10 s8 s5 := Kosten >0 := Kosten 0 Beispiel für phylogenetischen Baum TL mit lifted Alignment

Vergleich der Kosten von TL und T* s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s1 s3 s4 s10 s8 s5 TL (optimales lifted Alignment) Vergleich der Kosten von TL und T* Bevor wir die Kosten der Bäume miteinander vergleichen können, benötigen wir aber zunächst einen Zwischenschritt, in welchem wir zeigen werden, dass: D(SvL,SwL)  2  D(SwL,Sv*) s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 T* (optimales Alignment) TL T* SvL SwL Sv*

D(SvL,SwL)  2  D(SwL,Sv*) Z.z.: TL T* SvL SwL SqL = Sv* SqL D(SvL,SwL)  D(SvL,Sv*) + D(Sv*,SwL) Unter den Kindern von v wählen wir ein Kind q aus, das den Wert D(SqL,Sv*) minimiert. = D(SqL,Sv*) + D(Sv*,SwL)  D(SwL,Sv*) + D(Sv*,SwL) = 2  D(SwL,Sv*) Als Markierung von vL wählen wir SqL.

D(SvL,SwL)  2  D(SwL,Sv*) Z.z.: TL T* SvL SwL SqL Sv* SqL = Nun können wir die Kosten der Bäume miteinander vergleichen: Kosten(T*)  Kosten(TL) =  Kantenkosten  0 =  Kosten der durch Si verursachten Kante i  S = 2  Kosten (T*)

 (D(i,j) - d(i,j))2 3. Konstruktion von phylogenetischen Bäumen In der Praxis handelt es sich bei phylogenetischen Bäumen stets um binäre Bäume! Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es möglichst nah am optimalen Baum zu bleiben. D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering halten, also folgenden Ausdruck minimieren: D(i,j) = vorgegebene Distanz d(i,j)= im Baum abgelesene Distanz  (D(i,j) - d(i,j))2 (i,j)  NP-hartes Problem Eine effiziente Alternative dazu bietet z.B. der Greedy-Ansatz UPGMA

3.1 UPGMA (unweighted pair groups methods with arithmetic mean) Idee: Wir gruppieren die Sequenzen in Cluster (Mengen), berechnen die Distanzen der Cluster zueinander, und gruppieren erneut... s1 s2 s3 s4 Die Distanz zwischen zwei Clustern ergibt sich durch: Dij = d(Ci,Cj) :=  d(p,q) |Ci|  |Cj| pCi, qCj Ci und Cj sind Cluster (Mengen)

Die Distanz zwischen zwei bereits vereinigten Clustern (i,j) und einem neuen Cluster k: d((i,j),k) = d(Ci U Cj, Ck)  d(p,q) (|Ci| + |Cj|)  |Ck| p Ci U Cj, qCk =  d(p,q) |Ck| pCi, qCk pCj, qCk + 1 |Ci| + |Cj| ( ) =  d(p,q) |Ci|  |Ck| pCi, qCk + 1 |Ci| + |Cj| ( ) = |Ci| |Cj|  |Ck| pCj, qCk |Cj| 1 |Ci| + |Cj| = |Ci|  dik + |Cj|  djk ) ( Die Distanz ist also in O(1) berechenbar.

Der Algorithmus von UPGMA: Initialisierung: Bilde aus jeder Sequenz ein Cluster der Größe 1 und der Höhe 0. Wähle 2 Cluster Ci und Cj mit minimaler Distanz. Bilde neues Cluster Ck = Ci U Cj, streiche Ci, Cj, berechne alle dkl Bilde Knoten für Ck mit Kindern Ci und Cj und Höhe dij 2 Also: s1 s2 s3 s4 Cluster: C1 = {s1}, C2 = {s2}, C3 = {s3}, C4 = {s4} s1 s2 s3 s4 Cluster: C1 = {s1}, C2 = {s2}, C3 = {s3}, C4 = {s4} Cluster: C1 = {s1}, C5 = {s2,s3}, C4 = {s4} dij 2 s1 s2 s3 s4

In einer Ultra-Metrik gilt für 3 Werte a,b,c entweder Ultra-Metriken: In einer Ultra-Metrik gilt für 3 Werte a,b,c entweder a = b = c oder (sei c o.B.d.A. der kleinste der 3 Werte) a = b > c Übertragen auf die Distanzen bedeutet dies: a b c dab = dac = dbc a b c dac = dbc > dab Besitzen die Distanzen der Eingabe-Sequenzen zueinander nicht die Ultrametrik-Eigenschaft, dann kann es bei dem durch UPGMA konstruierten Baum zu falschen Ergebnissen kommen.

) ( UPGMA mit Ultra-Metrik Behauptung: Wenn die Distanzen eine Ultra-Metrik bilden, bekommen wir duch den UPGMA-Algorithmus einen vernünftigen Baum. (d.h. Höhe Eltern ≥ Höhe Kinder) Beweis (durch Widerspruch): Annahme: Höhe(p) < Höhe(k) (also k kein Blatt, da Blätter Höhe 0 haben) dkl = 1 |Ci| + |Cj| (dil  |Ci| + djl  |Cj|) p l k i j = 2  Höhe(p) < 2  Höhe(k) =dij (nach Annahme) 1 |Ci| + |Cj| |Ci|  dil + |Cj|  djl ) ( Also: < dij => |Ci|  dil + |Cj|  djl < dij  |Ci| + dij  |Cj| Nach der Ultrametrik-Eigenschaft gilt: dil = djl ≥ dij => dil < dij und djl < dij dij nicht kleinste Distanz war. (Widerspruch) => i und j durften gar nicht verbunden werden, weil

- 1 4 6 2 A B C D E A B C D E Beispiel: Wir haben 5 unterschiedliche Sequenzen: A: ATCGAATACAGATTCGGT B: AACGAATACAGATTCGGT C: ACCGTATGCAGCTTCGGT D: AGTGCATCCAGTTTCAGT E: AGAGCATCCAGTTTCCGT Bestimmen des Minimus: d(A,B) = 1 A B C D E A B C D E - 1 4 6 2 => neues Cluster = {{A},{B}} Berechnung der Kantenlänge bis zum Knoten: => d(A,B)/2 = 0,5 A B C D E 0,5 Distanzmatrix M

) ( - 1 4 6 2 - 6 2 A B C D E {A,B} C D E A B C D E {A,B} C D E Die Distanz zwischen zwei Clustern Ci,j und Ck berechnet man (wie schon gezeigt) mit folgender Formel: d((i,j),k) 1 |Ci| + |Cj| = |Ci|  dik + |Cj|  djk ) ( Man erhält somit folgende neue Distanzmatrix: A B C D E {A,B} C D E A B C D E - 1 4 6 2 {A,B} C D E - (4+4)/2 =4 (6+6)/2 =6 6 2 neue Distanzmatrix M’ alte Distanzmatrix M

- 4 6 2 - 4 {A,B} C D E {A,B} C D E {A,B} C {D,E} C {D,E} {A,B} Mit der neuen Matrix M’ fahren wir nun genauso fort: {A,B} C D E Bestimmen des Minimus: d(D,E) = 2 {A,B} C D E - 4 6 2 => neues Cluster = {{D},{E}} Berechnung der Kantenlänge bis zum Knoten: => d(D,E)/2 = 1 Distanzmatrix M’ {A,B} C {D,E} A B C D E 0,5 1 C {D,E} {A,B} - 4 (6+6)/2 =6 neue Distanzmatrix M’’

- 4 6 - {A,B} C {D,E} C {D,E} {A,B} {A,B,C} {D,E} {D,E} {A,B,C} Analog geht es weiter mit der Matrix M’’: {A,B} C {D,E} Bestimmen des Minimus: d((A,B),C) = 4 C {D,E} {A,B} - 4 6 => neues Cluster = {{A,B},{C}} Berechnung der Kantenlänge bis zum Knoten: => d((A,B),C)/2 = 2 Distanzmatrix M’’ {A,B,C} {D,E} A B C D E 0,5 1 1,5 - (12+6)/(2+1) =6 {D,E} {A,B,C} neue Distanzmatrix M’’’

Als letztes wird die Matrix M’’’ bearbeitet: {A,B,C} {D,E} Bestimmen des Minimus: d((A,B,C),(D,E)) = 6 - 6 {D,E} {A,B,C} => neues Cluster = {{A,B,C},{D,E}} Berechnung der Kantenlänge bis zum Knoten: => d((A,B,C),(D,E))/2 = 3 Distanzmatrix M’’’ Unser fertiger UPGMA-Baum! A B C D E 0,5 1 1,5 2

Bei dem UPGMA-Verfahren entstehen immer Bäume mit Urvater, wobei zwei Sequenzen als benachbart angesehen werden, deren Abstand minimal ist. Bei dem nächsten Algorithmus entstehen Bäume ohne Urvater. Es werden Distanzen gebildet, die die mittlere Distanz zu allen anderen Sequenzen abziehen. Es können hier Kanten zwischen Sequenzen entstehen, die nicht die minimale Distanz zueinander haben. Es wird ein ungewurzelter, additiver Baum konstruiert. Es handelt sich um den Neighbour –Joining-Algorithmus.

 (D(i,j) - d(i,j))2 3.2 Neighbour-Joining Algorithmus Zur Erinnerung: Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es möglichst nah am optimalen Baum zu bleiben. D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering halten, also folgenden Ausdruck minimieren:  (D(i,j) - d(i,j))2 (i,j) D(i,j) = vorgegebene Distanz d(i,j)= im Baum abgelesene Distanz  NP-hartes Problem Zur Erinnerung: Wie der UPGMA-Algorithmus bietet der Neighbour-Joining eine effiziente Alternative mit einer Laufzeit von O(N3).

∑ m≠i Distanz von einem neuen Elterknoten k zu allen anderen Knoten Gegeben sind dim, dij, djm. m i j k = (i,j) dim = dik + dkm djm = djk + dkm 2 dkm = dim – dik + djm - djk = dim + djm - dij (wegen dij = dik + djk) dkm = dim + djm - dij 2 Also: Wir haben also zwei Knoten i und j miteinander verbunden, erhalten dabei den Knoten k, und berechnen die Distanzen von k zu allen anderen Knoten. Doch es bleibt die Frage, welche Knoten i und j man verbinden soll. Dazu definieren wir eine sog. “Kunstdistanz” K: Kij := dij – (ri +rj) ri ist der durchschnittliche Abstand zu allen anderen Knoten ri := n-2 1 ∑ m≠i dim dij+(ri-rj) dik = 2 dij+(rj-ri) djk = 2 Wir definieren dik und djk:

Wir haben nun alle Formeln, mit denen der Neighbour-Joining Algorithmus arbeitet: ri ist der durchschnittliche Abstand zu allen anderen Knoten ri := n-2 1 ∑ k≠i dik Wir haben eine “Kunstdistanz” K definiert, um i und j zu wählen: Kij := dij – (ri +rj) dkm = dim + djm - dij 2 dij+(ri-rj) dik = dij+(rj-ri) djk = m i j Zusammgefasst: k = (i,j) Die Kantenlängen dki und dkj: Distanz von neuem Knoten k zu allen anderen Knoten Es folgt jetzt der Algorithmus.

Algorithmus: Neighbour Joining 1) Berechne alle ri und alle Kij. 2) Wähle i und j mit minimalem Kij. 3) Erzeuge den neuen Knoten k=(i,j) und Kanten (i,(i,j)) und (j,(i,j)) mit den Längen: dij+(ri-rj) dik = 2 dij+(rj-ri) djk = Dann ist zwar dik ≠ djk, aber dij ist richtig widergegeben. 4) Berechne für m  {i,j} dkm = dim + djm - dij 2 5) Die neue Blättermenge B’ ergibt sich aus der alten Blättermenge B durch B’ = (B – {i,j}) U {k} Alle Schritte werden iteriert, bis alle Blätter im Baum durchlaufen sind, also (n-1)-mal.

- 8 7 12 9 14 11 A B C D A B C D -21 -20 -20 -20 -20 -21 Beispiel: B= {A,B,C,D} Gegeben seien 4 Sequenzen, die sich in der folgenden Distanzmatrix darstellen lassen. 5) B’ ={C,D,k1} A B C D A B C D - 8 7 12 9 14 11 1) Alle ri werden berechnet: rA = ½ (8+7+12)=13,5 rB = ½ (8+9+14)=15,5 rC = ½ (7+9+11)=13,5 rD = ½ (12+14+11)=18,5 -21 -20 -20 -20 -20 -21 Alle Kunstdistanzen Kij werden berechnet: KAB = dAB – (rA +rB) Distanzmatrix M = 8 – (13,5 +15,5) = -21 A B C D 2) Wähle i und j mit minimalem Kij. k1 5 => KAB oder KCD 3 Wir wählen die Knoten A und B 3) Bestimmung der Kantenlänge: 8 +(13,5-15,5) dA,k = 2 = 3 1 8 +(15,5-13,5) dB,k = 2 = 5 1 4)  nächste Seite

4) Distanzen von k1 werden neu ermittelt 4) Distanzen von k1 werden neu ermittelt. Es entsteht eine neue Distanzmatrix. A B C D K1 C D A B C D - 8 7 12 9 14 11 - 4 9 11 K1 C D -21 -20 -20 -20 -20 -21 alte Distanzmatrix M neue Distanzmatrix M’ = 4 Hierbei ist: dk C = dAC + dBC - dAB 2 1 dk D = dAD + dBD - dAB = 9 Mit dieser Distanzmatrix wird analog verfahren.

- 4 9 11 K1 C D K1 C D -10 -7,5 -6,5 1) Alle ri werden berechnet: B ={C,D,k1} 5) B’ ={D,k2} rK = ½ (4+9)=6,5 rC = ½ (4+11)=7,5 rD = ½ (9+11)=10 1 K1 C D - 4 9 11 K1 C D Alle Kunstdistanzen Kij werden berechnet: 2) Wähle i und j mit minimalem Kij. Wir wählen die Knoten K1 und C -10 -7,5 -6,5 3) Bestimmung der Kantenlänge: Distanzmatrix M’ 2 4+(6,5-7,5) dk , k = = 1,5 1 4 +(7,5-6,5) dC,k = 2 = 2,5 A B k1 3 5 4) Da wir nur noch 2 Knoten verbinden müssen, berechnen wir keine neue Distanzmatrix,sondern verbinden sie direkt. C k2 2,5 1,5 8,5 Es bleibt nur noch die Kantenlänge von k2 zu D zu berechnen. D Aus der vorgegebenen Distanzmatrix entnehmen wir die Distanz dCD = 11. Hieraus ergibt sich dk D = 8,5. 2

Zur Laufzeitanalyse von Neighbour Joining: In der ersten Runde ergibt sich 1. Schritt: Berechnung ri: O(n2) Berechnung Kij: O(n2) 2. Schritt: Minimales Kij wählen: O(n2) 3. Schritt: Neuer Knoten mit Längen: O(1) 4. Schritt: Neue Distanzmatrix erstellen: O(n) 5. Schritt: Neue Blättermenge erstellen: O(n) Für die weiteren Durchläufe gilt: 1. Schritt: Berechnung ri: O(n) Berechnung Kij: O(n) 3.- 5. Schritt: Zusammen in O(n2) Damit hat der Algorithmus eine Gesamtlaufzeit von O(n3)

4. Zusammenfassung