Phylogenetische Bäume & ihre Konstruktion referiert von Marc Bachstein und Youssef Ben cheikh...

Post on 05-Apr-2015

105 views 0 download

Transcript of Phylogenetische Bäume & ihre Konstruktion referiert von Marc Bachstein und Youssef Ben cheikh...

Phylogenetische Bäume & Phylogenetische Bäume & ihre Konstruktionihre Konstruktion

referiert von

Marc Bachstein und Youssef Ben cheikh

Proseminar “Algorithmen und Datenstrukturen”Proseminar “Algorithmen und Datenstrukturen”

im WS 02/03im WS 02/03

GliederungGliederung

2.2. Aufbau von phylogenetischen BäumenAufbau von phylogenetischen Bäumen

3.3. Konstruktion von phylogenetischen BäumenKonstruktion von phylogenetischen Bäumen

1. UPGMA (Greedy-Ansatz)1. UPGMA (Greedy-Ansatz)

Ultra-MetrikenUltra-Metriken

2. Neighbour Joining2. Neighbour Joining

4. Zusammenfassung4. Zusammenfassung

1. Was ist Phylogenie?1. Was ist Phylogenie?

Phylogenie beschäftigt sich mit der Verwandtschaft zwischen „Spezies“ Phylogenie beschäftigt sich mit der Verwandtschaft zwischen „Spezies“

Baumartige Darstellung der VerwandschaftsgradeBaumartige Darstellung der Verwandschaftsgrade

Klassifizierung hier unter morphologischen Gesichtspunkten wie z.B. Fell, FedernKlassifizierung hier unter morphologischen Gesichtspunkten wie z.B. Fell, Federn

1. 1. Was ist Phylogenie?Was ist Phylogenie?

(( Darwins Evolutionstheorie) Darwins Evolutionstheorie)

Nun Differenzierung über die verschiedenen DNAsNun Differenzierung über die verschiedenen DNAs

Zur Erinnerung:Zur Erinnerung:

DNA – SequenzDNA – Sequenz ist eine Folge von Buchstaben (bzw. Basen) ist eine Folge von Buchstaben (bzw. Basen) aus dem Alphabet A = {A,G,C,T}aus dem Alphabet A = {A,G,C,T}

z. B. z. B. S = ATCGAATACAGATTCGGTS = ATCGAATACAGATTCGGT

Doch wie sehen diese Bäume nun aus?Doch wie sehen diese Bäume nun aus?

2.2. Aufbau von phylogenetischen BäumenAufbau von phylogenetischen Bäumen

Bei phylogenetischen Bäumen gibt es 2 verschiedene Darstellungen:Bei phylogenetischen Bäumen gibt es 2 verschiedene Darstellungen:

SS22

SS11

SS33

SS44

SS55

SS66

SS77

SS88

Phylogenetischer Phylogenetischer Baum Baum ohneohne „Urvater“ „Urvater“

Bei beiden gilt:Bei beiden gilt:

•Kanten sind gewichtet (Kanten sind gewichtet ( Kantenlänge gibt zeitlichen Abstand zwischen Kantenlänge gibt zeitlichen Abstand zwischen zwei Sequenzen an)zwei Sequenzen an)

Phylogenetischer Phylogenetischer Baum Baum mitmit „Urvater“ „Urvater“

ZeitZeitSS11 S S33 S S55 S S22 S S44

SS11, ..., S, ..., S88 sind DNA-Sequenzen sind DNA-Sequenzen

•Es ist ein natürliches Distanzmaß D(SEs ist ein natürliches Distanzmaß D(Sii,S,Sjj) zwischen zwei Sequenzen S) zwischen zwei Sequenzen Si i und und

SSjj gegeben gegeben

Definition:Definition:

Ein Ein phylogenetischer Baumphylogenetischer Baum T auf einer Sequenzfamilie S ist ein Baum T auf einer Sequenzfamilie S ist ein Baum dessen Blätter mit den Elementen von S markiert sind.dessen Blätter mit den Elementen von S markiert sind.

ZeitZeitSS11 S S33 S S55 S S22 S S44

Ein (Ein (phylogenetisches) Alignmentphylogenetisches) Alignment für T ist eine Markierung der inneren für T ist eine Markierung der inneren Knoten von T.Knoten von T.

Dieses Alignment heißt Dieses Alignment heißt intern (pseudo-lifted)intern (pseudo-lifted) wenn alle Markierungen wenn alle Markierungen aus S stammen, und aus S stammen, und streng intern (lifted)streng intern (lifted), wenn jeder Elter-Knoten die , wenn jeder Elter-Knoten die Markierung eines seiner Kind-Knoten übernimmt.Markierung eines seiner Kind-Knoten übernimmt.

SS11, ..., S, ..., S55 sind DNA-Sequenzen sind DNA-Sequenzen

Sequenzfamilie S = {SSequenzfamilie S = {S11, ..., S, ..., S55}}

(Die Struktur des Baumes wird dabei nicht (Die Struktur des Baumes wird dabei nicht verändert!)verändert!)

Betrachten wir noch einmal das Betrachten wir noch einmal das KostenmaßKostenmaß zwischen zwei Sequenzen: zwischen zwei Sequenzen:

Für jede dieser Distanzen gilt die Eigenschaft der Für jede dieser Distanzen gilt die Eigenschaft der MetrikMetrik::

Die Funktion D: SDie Funktion D: S22 R R++ heißt heißt MetrikMetrik, wenn, wenn

(M1) (M1) s s11,s,s22 S: D(s S: D(s11,s,s22) = 0 ) = 0 s s11 = s = s22 (Definitheit), (Definitheit),

(M2) (M2) s s11,s,s22 S: D(s S: D(s11,s,s22) = D(s) = D(s22,s,s11) ) (Symmetrie), (Symmetrie),

(M3) (M3) s s1, 1, ss2, 2, ss3 3 S: D(s S: D(s11,s,s33) ) D(s D(s11,s,s22) + D(s) + D(s22,s,s33) (Dreiecksungleichung)) (Dreiecksungleichung)

Zwei Sequenzen sZwei Sequenzen sii und s und sjj stehen in einer (zeitlichen) Distanz stehen in einer (zeitlichen) Distanz D(sD(sii,s,sjj))

zueinander. zueinander.

Im folgenden werden alle Distanzen zwischen den Sequenzen als vorgegeben Im folgenden werden alle Distanzen zwischen den Sequenzen als vorgegeben vorausgesetzt. Sie können aber auch anhand von Algorithmen (1. Vortrag) im vorausgesetzt. Sie können aber auch anhand von Algorithmen (1. Vortrag) im Vorfeld berechnet werden.Vorfeld berechnet werden.

ss11 = A = AGGCACCACGAGATT

ss22 = A = ATTCACCACACACTT

Beispiel:Beispiel:DDHH(s(s11,s,s22) =) = 3 3

In unseren Beispielen gehen wir von der einfachsten Form, der Hamming-In unseren Beispielen gehen wir von der einfachsten Form, der Hamming-Distanz DDistanz DHH aus. aus.

Gegeben sei nun ein Baum T.Gegeben sei nun ein Baum T.

Wir suchen ein optimales Alignment, welches die kleinsten Gesamtkosten Wir suchen ein optimales Alignment, welches die kleinsten Gesamtkosten (Summe aller Kantenkosten) in einem Baum verursacht.(Summe aller Kantenkosten) in einem Baum verursacht.

NP-hartes ProblemNP-hartes Problem

Problem wird auf optimales Problem wird auf optimales internesinternes Alignment beschränkt (s Alignment beschränkt (s S) S) (Approximationsalgorithmus)(Approximationsalgorithmus)

Hier Lösung in O(|S|Hier Lösung in O(|S|33) durch dynamische Programmierung) durch dynamische Programmierung

d(v,s) bezeichnet die Summe aller Kantenkosten des Baumes mit der Wurzel v d(v,s) bezeichnet die Summe aller Kantenkosten des Baumes mit der Wurzel v und mit der Markierung s an v.und mit der Markierung s an v.

Demnach ist dDemnach ist doptopt = min ( d(Wurzel,s)). = min ( d(Wurzel,s)).s s S S

Wir probieren also an der Wurzel alle s Wir probieren also an der Wurzel alle s S aus S aus und wählen dann das s, welches die geringsten und wählen dann das s, welches die geringsten Gesamtkosten verursacht.Gesamtkosten verursacht.

ssvv

... ... ... ... ...... ... ... ... ...

Wie berechnen wir d(v,s)?Wie berechnen wir d(v,s)?

Angenommen v habe nur Blätter:Angenommen v habe nur Blätter:

d(v,s) = d(v,s) = D(s D(sii,s),s)alle Blätter xalle Blätter xii mit mit

Markierung sMarkierung sii

v habe nun auch Teilbäume mit Wurzeln wv habe nun auch Teilbäume mit Wurzeln w11, w, w22, ..., w, ..., wrr

d(v,s) = min d(v,s) = min [[ [[D(s,sD(s,sii) + d(w) + d(wii,s,sii))]]]]ss11,..., s,..., srr 11 i i r r(|S|(|S|r r verschiedene Möglichkeiten)verschiedene Möglichkeiten)

Da Wahlen der sDa Wahlen der si i unabhängig voneinander:unabhängig voneinander:

d(v,s) = d(v,s) = min min [[D(s,sD(s,sii) + d(w) + d(wii,s,sii))]]ssii11 i i rrBei streng internem Alignment noch weniger zu berechnen:Bei streng internem Alignment noch weniger zu berechnen:

d(v,s) = d(v,s) = [ [ min min [[D(s,sD(s,sii) + d(w) + d(wii,s,sii))]]]]+ d(w+ d(wjj,s),s)

S Blatt im j-ten TeilbaumS Blatt im j-ten Teilbaum11 i i r, i r, ijj

Wir werden nun zeigen, dass ein Baum mit optimalem lifted Alignment Wir werden nun zeigen, dass ein Baum mit optimalem lifted Alignment höchstens doppelt so große Gesamtkosten hat wie ein Baum mit optimalem höchstens doppelt so große Gesamtkosten hat wie ein Baum mit optimalem Alignment:Alignment:

DDoptopt(lifted Alignment) (lifted Alignment) 2 D(opt Aligmnet)

Also:Also:

Beim lifted Alignment existieren Kanten mit Kosten 0 und > 0Beim lifted Alignment existieren Kanten mit Kosten 0 und > 0

ss1 1 ss2 2 ss3 3 ss4 4 ss5 5 ss6 6 ss7 7 ss8 8 ss9 9 ss10 10 ss11 11

ss11

ss33

ss44

ss44

ss44

ss1010

ss1010

ss1010ss88ss55

:= Kosten >0:= Kosten >0

:= Kosten 0:= Kosten 0

Beispiel für phylogenetischen Baum TBeispiel für phylogenetischen Baum TLL mit lifted Alignment mit lifted Alignment

ss1 1 ss2 2 ss3 3 ss4 4 ss5 5 ss6 6 ss7 7 ss8 8 ss9 9 ss10 10 ss11 11

TT** (optimales Alignment) (optimales Alignment)

Vergleich der Kosten von TVergleich der Kosten von TLL und T* und T*

Bevor wir die Kosten der Bäume Bevor wir die Kosten der Bäume miteinander vergleichen können, miteinander vergleichen können, benötigen wir aber zunächst einen benötigen wir aber zunächst einen ZwischenschrittZwischenschritt, in welchem wir , in welchem wir zeigen werden, dass:zeigen werden, dass:

TTLLTT**

SSvvLL

SSwwLL

SSvv**

D(SD(SvvLL,S,Sww

LL)) 2 2 D(SD(SwwLL,S,Svv

**))

ss1 1 ss2 2 ss3 3 ss4 4 ss5 5 ss6 6 ss7 7 ss8 8 ss9 9 ss10 10 ss11 11

ss11

ss33

ss44

ss44

ss44

ss1010

ss1010

ss1010ss88ss55

TTLL (optimales lifted Alignment) (optimales lifted Alignment)

D(SD(SvvLL,S,Sww

LL)) 2 2 D(SD(SwwLL,S,Svv

**))Z.z.:Z.z.:

D(SD(SvvLL,S,Sww

LL) ) D(SD(SvvLL,S,Svv

**) + D(S) + D(Svv**,S,Sww

LL) )

= D(S= D(SqqLL,S,Svv

**) + D(S) + D(Svv**,S,Sww

LL) )

D(SD(SwwLL,S,Svv

**) + D(S) + D(Svv**,S,Sww

LL) )

= 2 D(SD(Sww

LL,S,Svv**) )

Unter den Kindern von vUnter den Kindern von v

wählen wir ein Kind q aus, das wählen wir ein Kind q aus, das den Wert D(Sden Wert D(Sqq

LL,S,Svv**) minimiert.) minimiert.

Als Markierung von vAls Markierung von vLL wählen wählen wir Swir Sqq

LL..

TTLLTT**

SSvvLL

SSwwLLSSqq

LL

SSvv**SSqq

L L ==

Kosten(TKosten(T**) ) Kosten(T Kosten(TLL))

Nun können wir die Kosten der Bäume miteinander vergleichen:Nun können wir die Kosten der Bäume miteinander vergleichen:

= = Kantenkosten Kantenkosten 0

= = Kosten der durch S Kosten der durch Sii verursachten Kante verursachten Kantei i SS

= 2 = 2 Kosten (T Kosten (T**))

D(SD(SvvLL,S,Sww

LL)) 2 2 D(SD(SwwLL,S,Svv

**))Z.z.:Z.z.:

TTLLTT**

SSvvLL

SSwwLLSSqq

LL

SSvv**SSqq

L L ==

3.3. Konstruktion von phylogenetischen BäumenKonstruktion von phylogenetischen Bäumen

Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es möglichst nah am optimalen Baum zu bleiben.möglichst nah am optimalen Baum zu bleiben.

D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering halten, also folgenden Ausdruck minimieren:halten, also folgenden Ausdruck minimieren:

(D(i,j) - d(i,j))(D(i,j) - d(i,j))22

(i,j)(i,j)

D(i,j) = vorgegebene DistanzD(i,j) = vorgegebene Distanz

d(i,j)= im Baum abgelesene Distanzd(i,j)= im Baum abgelesene Distanz

NP-hartes ProblemNP-hartes Problem

Eine effiziente Alternative dazu bietet z.B. der Eine effiziente Alternative dazu bietet z.B. der Greedy-Ansatz UPGMAGreedy-Ansatz UPGMA

In der Praxis handelt es sich bei phylogenetischen Bäumen stets um In der Praxis handelt es sich bei phylogenetischen Bäumen stets um binäre Bäumebinäre Bäume!!

3.1 UPGMA (unweighted pair groups methods with arithmetic mean)3.1 UPGMA (unweighted pair groups methods with arithmetic mean)

Idee:Idee: Wir gruppieren die Sequenzen in Cluster (Mengen), berechnen Wir gruppieren die Sequenzen in Cluster (Mengen), berechnen die Distanzen der Cluster zueinander, und gruppieren erneut...die Distanzen der Cluster zueinander, und gruppieren erneut...

ss1 1 ss2 2 ss3 3 ss44

DDijij = d(C = d(Cii,C,Cjj) := ) := d(p,q)d(p,q)

|C|Cii| | |

CCjj||ppCCii, q, qCCjj

Die Distanz zwischen zwei Clustern ergibt sich durch:Die Distanz zwischen zwei Clustern ergibt sich durch:

CCii und C und Cjj sind Cluster (Mengen) sind Cluster (Mengen)

Die Distanz zwischen zwei bereits vereinigten Clustern (i,j) und einem neuen Die Distanz zwischen zwei bereits vereinigten Clustern (i,j) und einem neuen Cluster k:Cluster k:

d((i,j),k)d((i,j),k) = d(C= d(Ci i U CCjj, C, Ckk))

d(p,q)d(p,q)

(|C(|Cii| +| + |CCjj|) |) | |

CCkk||pp CCii U CCjj, q, qCCkk

==

d(p,q)d(p,q)

|C|Ckk||ppCCii, q, qCCkk

d(p,q)d(p,q)

|C|Ckk||ppCCjj, q, qCCkk

++11

|C|Cii| + |C| + |Cjj|| (( ))==

d(p,q)d(p,q)

|C|Cii| | |C |Ckk||ppCCii, q, qCCkk

++11

|C|Cii| + |C| + |Cjj|| (( ))== |C|Cii|| d(p,q)d(p,q)

|C|Cjj| | |C |Ckk||ppCCjj, q, qCCkk

|C|Cjj||

11

|C|Cii| + |C| + |Cjj||== |C|Cii| | d dikik + |C + |Cjj| |

ddjkjk

))((

Die Distanz ist also in O(1) Die Distanz ist also in O(1) berechenbar.berechenbar.

Der Algorithmus von UPGMA:Der Algorithmus von UPGMA:

•Initialisierung: Bilde aus jeder Sequenz ein Cluster der Größe 1 und Initialisierung: Bilde aus jeder Sequenz ein Cluster der Größe 1 und der Höhe 0.der Höhe 0.

•Wähle 2 Cluster CWähle 2 Cluster Cii und C und Cjj mit minimaler Distanz. mit minimaler Distanz.

•Bilde neues Cluster CBilde neues Cluster Ckk = C = Ci i UU C Cjj, streiche C, streiche Cii, C, Cjj, berechne alle d, berechne alle dklkl

ss1 1 ss2 2 ss3 3 ss44

ss1 1 ss2 2 ss3 3 ss44 Cluster: CCluster: C11 = {s = {s11}, C}, C22 = {s = {s22}, C}, C33 = {s = {s33}, C}, C4 4 = {s= {s44} }

ss1 1 ss2 2 ss3 3 ss44 Cluster: CCluster: C11 = {s = {s11}, }, CC22 = {s = {s22}}, , CC33 = {s = {s33}}, C, C4 4 = {s= {s44} }

Also:Also:

Cluster: CCluster: C11 = {s = {s11}, }, CC55 = {s = {s22,s,s33}}, C, C4 4 = {s= {s44}}

•Bilde Knoten für CBilde Knoten für Ckk mit Kindern C mit Kindern Cii und C und Cjj und Höhe und Höheddijij

22

ddijij

22

Ultra-Metriken:Ultra-Metriken:

In einer Ultra-Metrik gilt für 3 Werte a,b,c entwederIn einer Ultra-Metrik gilt für 3 Werte a,b,c entweder

•a = b = c a = b = c •oder (sei oder (sei cc o.B.d.A. der o.B.d.A. der kleinstekleinste der 3 Werte) der 3 Werte) a = ba = b > c> c

Übertragen auf die Distanzen bedeutet dies:Übertragen auf die Distanzen bedeutet dies:

a ba b c c

ddabab = d = dacac = d = dbcbc

a ba b c c

ddacac = d = dbcbc > d> dabab

Besitzen die Distanzen der Eingabe-Sequenzen zueinander Besitzen die Distanzen der Eingabe-Sequenzen zueinander nichtnicht die die Ultrametrik-Eigenschaft, dann kann es bei dem durch UPGMA Ultrametrik-Eigenschaft, dann kann es bei dem durch UPGMA konstruierten Baum zu konstruierten Baum zu falschen Ergebnissenfalschen Ergebnissen kommen. kommen.

UPGMA mit Ultra-MetrikUPGMA mit Ultra-Metrik

Behauptung:Behauptung: Wenn die Distanzen eine Ultra-Metrik bilden, bekommen wir Wenn die Distanzen eine Ultra-Metrik bilden, bekommen wir duch den UPGMA-Algorithmus einen vernünftigen Baum. duch den UPGMA-Algorithmus einen vernünftigen Baum. (d.h. Höhe Eltern ≥ Höhe Kinder)(d.h. Höhe Eltern ≥ Höhe Kinder)

Beweis (durch Widerspruch):Beweis (durch Widerspruch):

Annahme: Höhe(p) < Höhe(k)Annahme: Höhe(p) < Höhe(k) (also k kein Blatt, da Blätter Höhe 0 haben)(also k kein Blatt, da Blätter Höhe 0 haben)

pp

llkk

ii jj

ddklkl = =11

|C|Cii| + |C| + |Cjj||(d(dil il |C|Cii| + d| + djl jl | |

CCjj|)|)

= 2 = 2 Höhe(p) Höhe(p) < 2 < 2 Höhe(k) =d Höhe(k) =dij ij (nach (nach

Annahme)Annahme)11

|C|Cii| + |C| + |Cjj|||C|Cii| | d dilil + |C + |Cjj| |

ddjljl

))((Also:Also: < d< dijij

=> |C=> |Cii| | d dilil + |C + |Cjj| | d djl jl < d< dijij |C |Cii| + | + ddijij | |

CCjj||Nach der Ultrametrik-Eigenschaft gilt:Nach der Ultrametrik-Eigenschaft gilt: ddilil = d = djljl ≥ d ≥ dijij

=> d=> dilil < d < dijij und d und djljl < d < dijij

ddijij nicht kleinste Distanz war. (Widerspruch) nicht kleinste Distanz war. (Widerspruch)=> i und j durften gar nicht verbunden werden, weil=> i und j durften gar nicht verbunden werden, weil

Beispiel:Beispiel:

A:A: A ATTCGAATACAGATTCGGTCGAATACAGATTCGGT

B:B: A AAACGAATACAGATTCGGTCGAATACAGATTCGGT

C:C: ACCGTATGCAGCTTCGGT ACCGTATGCAGCTTCGGT

D:D: AGTGCATCCAGTTTCAGT AGTGCATCCAGTTTCAGT

E:E: AGAGCATCCAGTTTCCGT AGAGCATCCAGTTTCCGT

Wir haben 5 unterschiedliche Sequenzen:Wir haben 5 unterschiedliche Sequenzen:

- 1 4 6 6

- 4 6 6

- 6 6

- 2

-

AA BB CC DD EE

AA

BB

CC

DD

EE

Bestimmen des Minimus:Bestimmen des Minimus: d(A,B) = 1d(A,B) = 1

=>=> neues Cluster = {{A},{B}} neues Cluster = {{A},{B}}

Berechnung der Kantenlänge bis zum Berechnung der Kantenlänge bis zum Knoten: Knoten: => d(A,B)/2 = 0,5=> d(A,B)/2 = 0,5

A B C D EA B C D E0,50,5

Distanzmatrix MDistanzmatrix M

d((i,j),k)d((i,j),k)11

|C|Cii| + |C| + |Cjj||== |C|Cii| | d dikik + |C + |Cjj| |

ddjkjk

))((

Die Distanz zwischen zwei Clustern CDie Distanz zwischen zwei Clustern Ci,ji,j und C und Ckk berechnet man (wie schon berechnet man (wie schon

gezeigt) mit folgender Formel:gezeigt) mit folgender Formel:

Man erhält somit folgende neue Distanzmatrix:Man erhält somit folgende neue Distanzmatrix:

- 1 4 6 6

- 4 6 6

- 6 6

- 2

-

AA BB CC DD EE

AA

BB

CC

DD

EE

alte Distanzmatrix Malte Distanzmatrix M

{A,B}{A,B} CC DD EE

{A,B}{A,B}

CC

DD

EE

neue Distanzmatrix M’neue Distanzmatrix M’

- (4+4)/2 =4

(6+6)/2 =6

(6+6)/2 =6

- 6 6

- 2

-

Bestimmen des Minimus:Bestimmen des Minimus: d(D,E) = 2d(D,E) = 2

=>=> neues Cluster = {{D},{E}} neues Cluster = {{D},{E}}

Berechnung der Kantenlänge bis zum Berechnung der Kantenlänge bis zum Knoten: Knoten: => d(D,E)/2 = 1=> d(D,E)/2 = 1

{A,B}{A,B} CC DD EE

{A,B}{A,B}

CC

DD

EE

Distanzmatrix M’Distanzmatrix M’

- 4 6 6

- 6 6

- 2

-

Mit der neuen Matrix M’ fahren wir nun genauso fort:Mit der neuen Matrix M’ fahren wir nun genauso fort:

A B C D EA B C D E0,50,5

11{A,B}{A,B} CC {D,E}{D,E}

neue Distanzmatrix M’’neue Distanzmatrix M’’

- 4 (6+6)/2 =6

- (6+6)/2 =6

-

CC

{D,E}{D,E}

{A,B}{A,B}

Bestimmen des Minimus:Bestimmen des Minimus: d((A,B),C) = 4d((A,B),C) = 4

=>=> neues Cluster = {{A,B},{C}} neues Cluster = {{A,B},{C}}

Berechnung der Kantenlänge bis zum Berechnung der Kantenlänge bis zum Knoten: Knoten: => d((A,B),C)/2 = 2=> d((A,B),C)/2 = 2

Distanzmatrix M’’Distanzmatrix M’’

Analog geht es weiter mit der Matrix M’’:Analog geht es weiter mit der Matrix M’’:

{A,B,C}{A,B,C} {D,E}{D,E}

neue Distanzmatrix M’’’neue Distanzmatrix M’’’

{D,E}{D,E}

{A,B,C}{A,B,C}

{A,B}{A,B} CC {D,E}{D,E}

- 4 6

- 6

-

CC

{D,E}{D,E}

{A,B}{A,B}

A B C D EA B C D E0,50,5

11

1,51,5- (12+6)/(2+1) =6

-

Bestimmen des Minimus:Bestimmen des Minimus: d((A,B,C),(D,E)) = 6d((A,B,C),(D,E)) = 6

=>=> neues Cluster = {{A,B,C},{D,E}} neues Cluster = {{A,B,C},{D,E}}

Berechnung der Kantenlänge bis zum Berechnung der Kantenlänge bis zum Knoten: Knoten: => d((A,B,C),(D,E))/2 = 3=> d((A,B,C),(D,E))/2 = 3

Als letztes wird die Matrix M’’’ bearbeitet:Als letztes wird die Matrix M’’’ bearbeitet:

{A,B,C}{A,B,C} {D,E}{D,E}

Distanzmatrix M’’’Distanzmatrix M’’’

{D,E}{D,E}

{A,B,C}{A,B,C} - 6

-

Unser fertiger UPGMA-Baum!Unser fertiger UPGMA-Baum!

A B C D EA B C D E0,50,5

11

1,51,5

2211

Bei dem Bei dem UPGMA-VerfahrenUPGMA-Verfahren entstehen immer Bäume entstehen immer Bäume mitmit Urvater, wobei Urvater, wobei zwei Sequenzen als benachbart angesehen werden, deren Abstand minimal ist.zwei Sequenzen als benachbart angesehen werden, deren Abstand minimal ist.

Bei dem nächsten Algorithmus entstehen Bäume Bei dem nächsten Algorithmus entstehen Bäume ohneohne Urvater. Es werden Urvater. Es werden Distanzen gebildet, die die mittlere Distanz zu allen anderen Sequenzen Distanzen gebildet, die die mittlere Distanz zu allen anderen Sequenzen abziehen.abziehen.

Es handelt sich um den Es handelt sich um den Neighbour –Joining-AlgorithmusNeighbour –Joining-Algorithmus..

Es können hier Kanten zwischen Sequenzen entstehen, die nicht die minimale Es können hier Kanten zwischen Sequenzen entstehen, die nicht die minimale Distanz zueinander haben.Distanz zueinander haben.

Es wird ein Es wird ein ungewurzelterungewurzelter, additiver Baum konstruiert., additiver Baum konstruiert.

Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es Unser Ziel bei der Konstruktion von phylogenetischen Bäumen ist es möglichst nah am optimalen Baum zu bleiben.möglichst nah am optimalen Baum zu bleiben.

D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering D.h. wir wollen die „Fehler“ zum optimalen Baum möglichst gering halten, also folgenden Ausdruck minimieren:halten, also folgenden Ausdruck minimieren:

(D(i,j) - d(i,j))(D(i,j) - d(i,j))22

(i,j)(i,j)

D(i,j) = vorgegebene DistanzD(i,j) = vorgegebene Distanz

d(i,j)= im Baum abgelesene Distanzd(i,j)= im Baum abgelesene Distanz

NP-hartes ProblemNP-hartes Problem

Zur Erinnerung: Zur Erinnerung:

Wie der UPGMA-Algorithmus bietet der Neighbour-Joining eine Wie der UPGMA-Algorithmus bietet der Neighbour-Joining eine effiziente Alternative mit einer Laufzeit von O(Neffiziente Alternative mit einer Laufzeit von O(N33).).

3.2 Neighbour-Joining Algorithmus3.2 Neighbour-Joining Algorithmus

mm

ii jj

k = (i,j)k = (i,j)

Gegeben sind dGegeben sind dimim, d, dijij, d, djmjm..

ddimim = d = dikik + d + dkmkm

ddjmjm = d = djkjk + d + dkmkm

2 d2 dkmkm = = ddimim – d– dikik + d + djmjm - d- djkjk

= d= dimim + d + djmjm - d- dijij (wegen d(wegen dijij = d = dikik + d + djkjk))

Distanz von einem neuen Elterknoten k zu allen anderen KnotenDistanz von einem neuen Elterknoten k zu allen anderen Knoten

ddkmkm = =ddimim + d + djmjm - d - dijij

22Also:Also:

Wir haben also zwei Knoten i und j miteinander verbunden, erhalten dabei 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.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.Doch es bleibt die Frage, welche Knoten i und j man verbinden soll.

Dazu definieren wir eine sog. “Kunstdistanz” K:Dazu definieren wir eine sog. “Kunstdistanz” K:

KKijij := d := dijij – (r – (rii +r +rjj))

rrii ist der ist der durchschnittliche Abstanddurchschnittliche Abstand zu allen anderen Knoten zu allen anderen Knoten

rrii := :=n-2n-211 ∑∑ m≠im≠i ddimim

Wir definieren dWir definieren dikik und d und djkjk::ddijij+(r+(rii-r-rjj))ddikik = =

22

ddijij+(r+(rjj-r-rii))ddjkjk = =22

Wir haben nun alle Formeln, mit denen der Wir haben nun alle Formeln, mit denen der Neighbour-JoiningNeighbour-Joining Algorithmus Algorithmus arbeitet:arbeitet:

Es folgt jetzt der Algorithmus.Es folgt jetzt der Algorithmus.

rrii ist der durchschnittliche Abstand zu allen anderen Knoten ist der durchschnittliche Abstand zu allen anderen Knoten

rrii := :=n-2n-211 ∑∑ k≠ik≠i ddikik

Wir haben eine “Kunstdistanz” K definiert, um i und j zu wählen:Wir haben eine “Kunstdistanz” K definiert, um i und j zu wählen:

KKijij := d := dijij – (r – (rii +r +rjj))

ddkmkm = =ddimim + d + djmjm - d - dijij

22

ddijij+(r+(rii-r-rjj))ddikik = =22

ddijij+(r+(rjj-r-rii))ddjkjk = =22

mm

ii jj

Zusammgefasst:Zusammgefasst:

k = (i,j)k = (i,j)

Die Kantenlängen dDie Kantenlängen dkiki und d und dkjkj::

Distanz von neuem Knoten k zu allen anderen KnotenDistanz von neuem Knoten k zu allen anderen Knoten

Algorithmus: Neighbour JoiningAlgorithmus: Neighbour Joining

1) Berechne alle r1) Berechne alle rii und alle K und alle Kijij..

2) Wähle i und j mit minimalem K2) Wähle i und j mit minimalem Kijij..

ddijij+(r+(rii-r-rjj))ddikik = =22

ddijij+(r+(rjj-r-rii))ddjkjk = =22

Dann ist zwar dDann ist zwar dikik ≠≠ d djkjk, aber d, aber dijij ist richtig widergegeben. ist richtig widergegeben.

3) Erzeuge den neuen Knoten k=(i,j) und Kanten (i,(i,j)) und (j,(i,j)) mit den3) Erzeuge den neuen Knoten k=(i,j) und Kanten (i,(i,j)) und (j,(i,j)) mit denLängen:Längen:

4) Berechne für m 4) Berechne für m {i,j}{i,j}ddkmkm = =

ddimim + d + djmjm - d - dijij

225) Die neue Blättermenge B’ ergibt sich aus der alten Blättermenge B durch5) Die neue Blättermenge B’ ergibt sich aus der alten Blättermenge B durch

B’ = (B – {i,j}) B’ = (B – {i,j}) UU {k} {k}

Alle Schritte werden iteriert, bis alle Blätter im Baum durchlaufen sind, also Alle Schritte werden iteriert, bis alle Blätter im Baum durchlaufen sind, also (n-1)-mal.(n-1)-mal.

Beispiel:Beispiel:

- 8 7 12

- 9 14

- 11

-

AA BB CC DD

AA

BB

CC

DD

Gegeben seien 4 Sequenzen, die sich in Gegeben seien 4 Sequenzen, die sich in der folgenden Distanzmatrix darstellen der folgenden Distanzmatrix darstellen lassen.lassen.

Distanzmatrix MDistanzmatrix M

1) Alle r1) Alle rii werden berechnet: werden berechnet:rrAA = ½ (8+7+12)=13,5 = ½ (8+7+12)=13,5rrBB = ½ (8+9+14)=15,5 = ½ (8+9+14)=15,5rrCC = ½ (7+9+11)=13,5 = ½ (7+9+11)=13,5rrDD = ½ (12+14+11)=18,5 = ½ (12+14+11)=18,5

Alle Kunstdistanzen KAlle Kunstdistanzen Kijij werden berechnet: werden berechnet:

KKABAB = d = dABAB – (r – (rAA +r +rBB))

= 8 – (13,5 +15,5) = = 8 – (13,5 +15,5) = -21-21

-21-21

-20-20 -20-20

-20-20 -20-20 -21-21

2) Wähle i und j mit minimalem K2) Wähle i und j mit minimalem Kijij..

=> K=> KABAB oder K oder KCDCD

Wir wählen die Knoten A und BWir wählen die Knoten A und B AA

BBCC

DD

kk11

B= {A,B,C,D}B= {A,B,C,D}

3) Bestimmung der Kantenlänge:3) Bestimmung der Kantenlänge:

33

55

4) 4) nächste Seite nächste Seite

5) B’ ={C,D,5) B’ ={C,D,kk11}}

8 +(13,5-15,5)8 +(13,5-15,5)ddA,kA,k = =22

= 3= 311

8 +(15,5-13,5)8 +(15,5-13,5)ddB,kB,k = =22

= 5= 511

- 8 7 12

- 9 14

- 11

-

AA BB CC DD

AA

BB

CC

DD

alte Distanzmatrix Malte Distanzmatrix M

-21-21

-20-20 -20-20

-20-20 -20-20 -21-21

4) Distanzen von k4) Distanzen von k11 werden neu ermittelt. Es entsteht eine neue Distanzmatrix. werden neu ermittelt. Es entsteht eine neue Distanzmatrix.

- 44 99

- 11

-

KK11 CC DD

KK11

CC

DD

= = 44

Hierbei ist:Hierbei ist:

ddk C k C ==ddACAC + d + dBCBC - d - dABAB

2211

ddk D k D ==ddADAD + d + dBDBD - d - dABAB

2211= = 99

neue Distanzmatrix M’neue Distanzmatrix M’

Mit dieser Distanzmatrix wird Mit dieser Distanzmatrix wird analog verfahren.analog verfahren.

- 44 99

- 11

-

KK11 CC DD

KK11

CC

DD

Distanzmatrix M’Distanzmatrix M’

B ={C,D,kB ={C,D,k11}}1) Alle r1) Alle rii werden berechnet: werden berechnet:

rrKK = ½ (4+9)=6,5 = ½ (4+9)=6,5

rrCC = ½ (4+11)=7,5 = ½ (4+11)=7,5rrDD = ½ (9+11)=10 = ½ (9+11)=10

11

Alle Kunstdistanzen KAlle Kunstdistanzen Kijij werden berechnet: werden berechnet:

-10-10

-7,5-7,5 -6,5-6,5

2) Wähle i und j mit minimalem K2) Wähle i und j mit minimalem Kijij..

Wir wählen die Knoten KWir wählen die Knoten K1 1 und Cund C

CC

DD

AA

BB

kk11

33

55 kk22

3) Bestimmung der Kantenlänge:3) Bestimmung der Kantenlänge:

4 +(7,5-6,5)4 +(7,5-6,5)ddC,kC,k = =22

= 2,5= 2,52222

4+(6,5-7,5)4+(6,5-7,5)ddk , kk , k = = = 1,5= 1,52211

1,51,5

2,52,5

5) B’ ={D,5) B’ ={D,kk22}}

Es bleibt nur noch die Kantenlänge von kEs bleibt nur noch die Kantenlänge von k22 zu D zu berechnen. zu D zu berechnen.

4) Da wir nur noch 2 Knoten verbinden müssen, 4) Da wir nur noch 2 Knoten verbinden müssen, berechnen wir keine neue Distanzmatrix,sondern berechnen wir keine neue Distanzmatrix,sondern verbinden sie direkt.verbinden sie direkt.

Aus der vorgegebenen Distanzmatrix entnehmen wir die Distanz dAus der vorgegebenen Distanzmatrix entnehmen wir die Distanz dCDCD = 11. = 11.

8,58,5

Hieraus ergibt sich dHieraus ergibt sich dk Dk D = 8,5. = 8,5.22

Zur Laufzeitanalyse von Neighbour Joining:Zur Laufzeitanalyse von Neighbour Joining:

In der ersten Runde ergibt sichIn der ersten Runde ergibt sich

1. Schritt:1. Schritt: Berechnung rBerechnung rii: O(n: O(n22))

Berechnung KBerechnung Kijij: O(n: O(n22))

2. Schritt:2. Schritt: Minimales KMinimales Kijij wählen: O(n wählen: O(n22))

3. Schritt:3. Schritt: Neuer Knoten mit Längen: O(1)Neuer Knoten mit Längen: O(1)

4. Schritt:4. Schritt: Neue Distanzmatrix erstellen: O(n)Neue Distanzmatrix erstellen: O(n)

5. Schritt:5. Schritt: Neue Blättermenge erstellen: O(n)Neue Blättermenge erstellen: O(n)

Für die weiteren Durchläufe gilt:Für die weiteren Durchläufe gilt:

1. Schritt:1. Schritt: Berechnung rBerechnung rii: O(n): O(n)

Berechnung KBerechnung Kijij: O(n): O(n)

3.- 5. 3.- 5. Schritt:Schritt:

Zusammen in O(nZusammen in O(n22))

Damit hat der Algorithmus eine Gesamtlaufzeit von O(nDamit hat der Algorithmus eine Gesamtlaufzeit von O(n33))

4. Zusammenfassung4. Zusammenfassung