Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Phylogenetische Bäume & ihre Konstruktion referiert von Marc Bachstein und Youssef Ben cheikh Proseminar Algorithmen und Datenstrukturen im WS 02/03 im."—  Präsentation transkript:

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

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

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

4 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? 2.Aufbau von phylogenetischen Bäumen

5 Bei phylogenetischen Bäumen gibt es 2 verschiedene Darstellungen: S2S2S2S2 S1S1S1S1 S3S3S3S3 S4S4S4S4 S5S5S5S5 S6S6S6S6 S7S7S7S7 S8S8S8S8 Phylogenetischer Baum ohne Urvater Bei beiden gilt: Kanten sind gewichtet ( Kantenlänge gibt zeitlichen Abstand zwischen zwei Sequenzen an)Kanten sind gewichtet ( Kantenlänge gibt zeitlichen Abstand zwischen zwei Sequenzen an) Phylogenetischer Baum mit Urvater Zeit S 1 S 3 S 5 S 2 S 4 S 1,..., S 8 sind DNA-Sequenzen Es ist ein natürliches Distanzmaß D(S i,S j ) zwischen zwei Sequenzen S i und S j gegebenEs ist ein natürliches Distanzmaß D(S i,S j ) zwischen zwei Sequenzen S i und S j gegeben

6 Definition: Ein phylogenetischer Baum T auf einer Sequenzfamilie S ist ein Baum dessen Blätter mit den Elementen von S markiert sind. Zeit S 1 S 3 S 5 S 2 S 4 Ein (phylogenetisches) Alignment für T ist eine Markierung der inneren Knoten von T. 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. S 1,..., S 5 sind DNA-Sequenzen Sequenzfamilie S = {S 1,..., S 5 } (Die Struktur des Baumes wird dabei nicht verändert!)

7 Betrachten wir noch einmal das Kostenmaß zwischen zwei Sequenzen: Für jede dieser Distanzen gilt die Eigenschaft der Metrik: Die Funktion D: S 2 R + heißt Metrik, wenn (M1) s 1,s 2 S: D(s 1,s 2 ) = 0 s 1 = s 2 (Definitheit), (M2) s 1,s 2 S: D(s 1,s 2 ) = D(s 2,s 1 ) (Symmetrie), (M3) s 1, s 2, s 3 S: D(s 1,s 3 ) D(s 1,s 2 ) + D(s 2,s 3 ) (Dreiecksungleichung) Zwei Sequenzen s i und s j stehen in einer (zeitlichen) Distanz D(s i,s j ) zueinander. 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. s 1 = AGCACGAT s 2 = ATCACACT Beispiel: D H (s 1,s 2 ) = 3 In unseren Beispielen gehen wir von der einfachsten Form, der Hamming- Distanz D H aus.

8 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 NP-hartes Problem Problem wird auf optimales internes Alignment beschränkt (s S) (Approximationsalgorithmus) Hier Lösung in O(|S| 3 ) durch dynamische Programmierung 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. Demnach ist d opt = 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. sv

9 Wie berechnen wir d(v,s)? Angenommen v habe nur Blätter: d(v,s) = D(s i,s) alle Blätter x i mit Markierung s i v habe nun auch Teilbäume mit Wurzeln w 1, w 2,..., w r d(v,s) = min [ [ D(s,s i ) + d(w i,s i ) ] ] s 1,..., s r 1 i r (|S| r verschiedene Möglichkeiten) Da Wahlen der s i unabhängig voneinander: d(v,s) = min [ D(s,s i ) + d(w i,s i ) ] sisisisi 1 i r Bei streng internem Alignment noch weniger zu berechnen: d(v,s) = [ min [ D(s,s i ) + d(w i,s i ) ] ] + d(w j,s) S Blatt im j-ten Teilbaum 1 i r, i j

10 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: D opt (lifted Alignment) D opt (lifted Alignment) 2 D(opt Aligmnet)Also: Beim lifted Alignment existieren Kanten mit Kosten 0 und > 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s1s1s1s1 s3s3s3s3 s4s4s4s4 s4s4s4s4 s4s4s4s4 s 10 s8s8s8s8 s5s5s5s5 := Kosten >0 := Kosten 0 Beispiel für phylogenetischen Baum T L mit lifted Alignment

11 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 T * (optimales Alignment) Vergleich der Kosten von T L 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: TLTLTLTL T*T*T*T* SvLSvLSvLSvL SwLSwLSwLSwL Sv*Sv*Sv*Sv* D(S v L,S w L ) 2 D(S w L,S v * ) s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s1s1s1s1 s3s3s3s3 s4s4s4s4 s4s4s4s4 s4s4s4s4 s 10 s8s8s8s8 s5s5s5s5 T L (optimales lifted Alignment)

12 D(S v L,S w L ) 2 D(S w L,S v * ) Z.z.: D(S v L,S w L ) D(S v L,S v * ) + D(S v *,S w L ) = D(S q L,S v * ) + D(S v *,S w L ) D(S w L,S v * ) + D(S v *,S w L ) D(S w L,S v * ) = 2 D(S w L,S v * ) Unter den Kindern von v wählen wir ein Kind q aus, das den Wert D(S q L,S v * ) minimiert. Als Markierung von v L wählen wir S q L. TLTLTLTL T*T*T*T* SvLSvLSvLSvL SwLSwLSwLSwL SqLSqLSqLSqL Sv*Sv*Sv*Sv* S q L =

13 Kosten(T * ) Kosten(T L ) Nun können wir die Kosten der Bäume miteinander vergleichen: = Kantenkosten = Kantenkosten 0 = Kosten der durch S i verursachten Kante i S = 2 Kosten (T * ) D(S v L,S w L ) 2 D(S w L,S v * ) Z.z.: TLTLTLTL T*T*T*T* SvLSvLSvLSvL SwLSwLSwLSwL SqLSqLSqLSqL Sv*Sv*Sv*Sv* S q L =

14 3.Konstruktion von phylogenetischen Bäumen 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 (D(i,j) - d(i,j)) 2(i,j) D(i,j) = vorgegebene Distanz d(i,j)= im Baum abgelesene Distanz NP-hartes Problem NP-hartes Problem Eine effiziente Alternative dazu bietet z.B. der Greedy-Ansatz UPGMA In der Praxis handelt es sich bei phylogenetischen Bäumen stets um binäre Bäume!

15 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... s 1 s 2 s 3 s 4 D ij = d(C i,C j ) := D ij = d(C i,C j ) := d(p,q) |C i | C j | |C i | |C j | pC i, qC j p C i, q C j Die Distanz zwischen zwei Clustern ergibt sich durch: C i und C j sind Cluster (Mengen)

16 Die Distanz zwischen zwei bereits vereinigten Clustern (i,j) und einem neuen Cluster k: d((i,j),k) = d(C i C j, C k ) = d(C i U C j, C k )d(p,q) (|C i | +C j |) |C k | (|C i | + |C j |) |C k | pC i C j, qC k p C i U C j, q C k = d(p,q) |C k | pC i, qC k p C i, q C k d(p,q) |C k | pC j, qC k p C j, q C k + 1 |C i | + |C j | ()= d(p,q) |C i | |C k | pC i, qC k p C i, q C k + 1 |C i | + |C j | ()= |C i | d(p,q) |C j | |C k | pC j, qC k p C j, q C k |C j | 1 |C i | + |C j | = |C i | d ik + |C j | d jk )( Die Distanz ist also in O(1) berechenbar.

17 Der Algorithmus von UPGMA: Initialisierung: Bilde aus jeder Sequenz ein Cluster der Größe 1 und der Höhe 0.Initialisierung: Bilde aus jeder Sequenz ein Cluster der Größe 1 und der Höhe 0. Wähle 2 Cluster C i und C j mit minimaler Distanz.Wähle 2 Cluster C i und C j mit minimaler Distanz. Bilde neues Cluster C k = C i U C j, streiche C i, C j, berechne alle d klBilde neues Cluster C k = C i U C j, streiche C i, C j, berechne alle d kl s 1 s 2 s 3 s 4 Cluster: C 1 = {s 1 }, C 2 = {s 2 }, C 3 = {s 3 }, C 4 = {s 4 } s 1 s 2 s 3 s 4 Cluster: C 1 = {s 1 }, C 2 = {s 2 }, C 3 = {s 3 }, C 4 = {s 4 } Also: Cluster: C 1 = {s 1 }, C 5 = {s 2,s 3 }, C 4 = {s 4 } Bilde Knoten für C k mit Kindern C i und C j und HöheBilde Knoten für C k mit Kindern C i und C j und Höhe d ij 2 2

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

19 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) p lk ij d kl = 1 |C i | + |C j | (d il |C i | + d jl |C j |) = 2 Höhe(p) < 2 Höhe(k) =d ij (nach Annahme) 1 |C i | + |C j | |C i | d il + |C j | d jl )( Also: < d ij => |C i | d il + |C j | d jl |C i | d il + |C j | d jl < d ij |C i | + d ij |C j | Nach der Ultrametrik-Eigenschaft gilt: d il = d jl d ij => d il d il < d ij und d jl < d ij d ij nicht kleinste Distanz war. (Widerspruch) => i und j durften gar nicht verbunden werden, weil

20 Beispiel: A: ATCGAATACAGATTCGGT B: AACGAATACAGATTCGGT C: ACCGTATGCAGCTTCGGT D: AGTGCATCCAGTTTCAGT E: AGAGCATCCAGTTTCCGT Wir haben 5 unterschiedliche Sequenzen: ABCDE AB C D E Bestimmen des Minimus: d(A,B) = 1 => 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

21 d((i,j),k)1 |C i | + |C j | = |C i | d ik + |C j | d jk )( Die Distanz zwischen zwei Clustern C i,j und C k berechnet man (wie schon gezeigt) mit folgender Formel: Man erhält somit folgende neue Distanzmatrix: ABCDE AB C D E alte Distanzmatrix M {A,B}CDE {A,B}C D E neue Distanzmatrix M - (4+4)/2 =4 (6+6)/2 =

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

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

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

25 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 handelt sich um den Neighbour –Joining-Algorithmus. Es können hier Kanten zwischen Sequenzen entstehen, die nicht die minimale Distanz zueinander haben. Es wird ein ungewurzelter, additiver Baum konstruiert.

26 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 (D(i,j) - d(i,j)) 2 (i,j) D(i,j) = vorgegebene Distanz d(i,j)= im Baum abgelesene Distanz NP-hartes Problem NP-hartes Problem Zur Erinnerung: Wie der UPGMA-Algorithmus bietet der Neighbour-Joining eine effiziente Alternative mit einer Laufzeit von O(N 3 ). 3.2 Neighbour-Joining Algorithmus

27 mij k = (i,j) Gegeben sind d im, d ij, d jm. d im = d ik + d km d jm = d jk + d km 2 d km = d im – d ik + d jm - d jk = d im + d jm - d ij (wegen d ij = d ik + d jk ) Distanz von einem neuen Elterknoten k zu allen anderen Knoten d km = d im + d jm - d ij 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: K ij := d ij – (r i +r j ) r i ist der durchschnittliche Abstand zu allen anderen Knoten r i := n-21 mi mi d im Wir definieren d ik und d jk : d ij +(r i -r j ) d ik = 2 d ij +(r j -r i ) d jk = 2

28 Wir haben nun alle Formeln, mit denen der Neighbour-Joining Algorithmus arbeitet: Es folgt jetzt der Algorithmus. r i ist der durchschnittliche Abstand zu allen anderen Knoten r i := n-2 1 ki ki d ik Wir haben eine Kunstdistanz K definiert, um i und j zu wählen: K ij := d ij – (r i +r j ) d km = d im + d jm - d ij 2 d ij +(r i -r j ) d ik = 2 d ij +(r j -r i ) d jk = 2mijZusammgefasst: k = (i,j) Die Kantenlängen d ki und d kj : Distanz von neuem Knoten k zu allen anderen Knoten

29 Algorithmus: Neighbour Joining 1) Berechne alle r i und alle K ij. 2) Wähle i und j mit minimalem K ij. d ij +(r i -r j ) d ik = 2 d ij +(r j -r i ) d jk = 2 Dann ist zwar d ik d jk, aber d ij ist richtig widergegeben. 3) Erzeuge den neuen Knoten k=(i,j) und Kanten (i,(i,j)) und (j,(i,j)) mit den Längen: 4) Berechne für m {i,j} d km = d im + d jm - d ij 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.

30 Beispiel: ABCD AB C D Gegeben seien 4 Sequenzen, die sich in der folgenden Distanzmatrix darstellen lassen. Distanzmatrix M 1) Alle r i werden berechnet: r A = ½ (8+7+12)=13,5 r B = ½ (8+9+14)=15,5 r C = ½ (7+9+11)=13,5 r D = ½ ( )=18,5 Alle Kunstdistanzen K ij werden berechnet: K AB = d AB – (r A +r B ) = 8 – (13,5 +15,5) = ) Wähle i und j mit minimalem K ij. => K AB oder K CD Wir wählen die Knoten A und B ABC D k1k1k1k1 B= {A,B,C,D} 3) Bestimmung der Kantenlänge: 3 5 4) nächste Seite 5) B ={C,D,k 1 } 8 +(13,5-15,5) d A,k = 2 = (15,5-13,5) d B,k = 2 = 5 1

31 ABCD AB C D alte Distanzmatrix M ) Distanzen von k 1 werden neu ermittelt. Es entsteht eine neue Distanzmatrix K1K1K1K1CD K1K1K1K1C D = 4 Hierbei ist: d k C = d AC + d BC - d AB 21 d k D = d AD + d BD - d AB 21 = 9 neue Distanzmatrix M Mit dieser Distanzmatrix wird analog verfahren.

32 K1K1K1K1CD K1K1K1K1C D Distanzmatrix M B ={C,D,k 1 } 1) Alle r i werden berechnet: r K = ½ (4+9)=6,5 r C = ½ (4+11)=7,5 r D = ½ (9+11)=10 1 Alle Kunstdistanzen K ij werden berechnet: ,5-6,5 2) Wähle i und j mit minimalem K ij. Wir wählen die Knoten K 1 und C C D AB k1k1k1k1 3 5 k2k2k2k2 3) Bestimmung der Kantenlänge: 4 +(7,5-6,5) d C,k = 2 = 2,5 224+(6,5-7,5) d k, k = = 1,5 21 1,5 2,5 5) B ={D,k 2 } Es bleibt nur noch die Kantenlänge von k 2 zu D zu berechnen. 4) Da wir nur noch 2 Knoten verbinden müssen, berechnen wir keine neue Distanzmatrix,sondern verbinden sie direkt. Aus der vorgegebenen Distanzmatrix entnehmen wir die Distanz d CD = 11. 8,5 Hieraus ergibt sich d k D = 8,5. 2

33 Zur Laufzeitanalyse von Neighbour Joining: In der ersten Runde ergibt sich 1. Schritt: Berechnung r i : O(n 2 ) Berechnung K ij : O(n 2 ) 2. Schritt: Minimales K ij wählen: O(n 2 ) 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 r i : O(n) Berechnung K ij : O(n) Schritt: Zusammen in O(n 2 ) Damit hat der Algorithmus eine Gesamtlaufzeit von O(n 3 )

34 4. Zusammenfassung


Herunterladen ppt "Phylogenetische Bäume & ihre Konstruktion referiert von Marc Bachstein und Youssef Ben cheikh Proseminar Algorithmen und Datenstrukturen im WS 02/03 im."

Ähnliche Präsentationen


Google-Anzeigen