Evolutionäre Bäume Madox Sesen 30. Juni 2014 1 Einleitung Phylogenetische Bäume sind ein wichtiges Darstellungsmittel der Evolutionsforschung. Durch sie werden Verwandtschaftsbeziehungen zwischen Spezies simpel, aber dennoch informationsreich aufgezeigt. Durch die stetig wachsenden Datenbanken an genetischen Daten verschiedenster Spezies ist die Erstellung phylogenetischer Bäume zu einer wichtigen, bioinformatischen Problemstellung geworden. In meiner Ausarbeitung werde ich einige Beispiele an Algorithmen zur Erstellung von phylogenetischen Bäumen vorstellen. 2 Definition[2] Ein phylogenetischer Baum kann für jede mögliche taxonomische Einheit erstellt werden. So lassen sich beispielsweise taxonomische Familien, Stämme, Spezies und sogar einzelne Populationen vergleichen. Ein phylogenetischer Baum ist ein ungerichteter, azyklischer, zusammenhängender Graph. In den äußeren Knoten, den Blättern, werden die zu untersuchenden Objekte angezeigt. Die inneren Knoten stellen hypothetische Objekte dar. Diese müssen evolutionär gesehen nicht existiert haben, werden aber als Abspaltpunkt der beiden Objekte definiert. Der früheste Vaterknoten von zwei Knoten ist der letzte gemeinsame Vorfahre der Kinderknoten. Phylogenetische Bäume enthalten Informationen auf zwei verschiedene Arten. Die erste ist die Topologie. Eine Topologie ist die Konfiguration eines Baumes. Sie beschreibt die Struktur, in der die Knoten zueinander aufgebaut sind. Abbildung 1: Eine simple Topologie für 3 Objekte 1 Die zweite sind die Kantenbeschriftungen. Diese können je nach Methode zusätzliche Informationen zur Verfügung stellen, die Auskunft über die Verwandtschaftsbeziehungen geben. Üblicherweise wird hier der evolutionäre Abstand dargestellt. In der Regel sind phylogenetische Bäume zweigabelig. Das bedeutet, jeder Knoten (mit Ausnahme der Wurzel) hat entweder den Grad 1 (Blätter) oder den Grad 3 (innere Knoten). Es gibt jedoch Algorithmen, die vor allem bei Unsicherheiten mehrgabelige Bäume ausgeben können. Phylogenetische Bäume können gewurzelt oder ungewurzelt sein. Gewurzelte Bäume geben mehr Informationen über die Verwandtschaftsbeziehungen, da dadurch alle Blätter einen gemeinsamen Vorfahren zu allen anderen haben - sind allerdings auch schwieriger zu berechnen. Für eine Anzahl von n Objekten gibt es deutlich mehr mögliche gewurzelte als ungewurzelte Bäume: Die Anzahl möglicher gewurzelter Bäume für n Objekte ist: Qn i=2 2i −3 Die Anzahl möglicher ungewurzelter Bäume für n Objekte ist: Qn i=3 2i −5 Da diese zwei Funktionen schneller als n! wachsen, wird deutlich, dass alle möglichen Topologien zu erstellen und nach einer sinnvollen zu suchen schon bei kleinem n viel zu ineffizient ist. Man sucht also Algorithmen, die Bäume in effizienter Zeit aufbauen können. Algorithmen, die Bäume aufbauen können auf verschiedene Eigenschaften der zugrunde liegenden Daten basieren: Diskrete Eigenschaften, numerische Eigenschaften und Sequenzen. • Diskrete Eigenschaften werden in einer n ∗ m-Matrix übergeben, wobei n die Anzahl der Objekte und m die Anzahl der Eigenschaften sind. Objekte belegen dabei Zustände jeder Eigenschaft. Bei binären Eigenschaften sind diese lediglich 0 und 1, bei nicht binären kann jede Eigenschaft eine endliche Menge von Zuständen besitzen. Um aus diskreten Eigenschaften Bäume erstellen zu können müssen die Zustände eine feste Ordnung besitzen. • Numerische Eigenschaften werden aus dem genetischen Unterschied der Objekte berechnet. Dafür gibt es eine n∗n-Matrix M, die in der Zelle Mi,j den genetischen Unterschied der Objekte i und j beinhaltet. Da diese Matrix symmetrisch ist wird nur die halbe Matrix benötigt. Diese numerischen Werte können durch diverse Methoden anhand der genetischen Sequenzen der Objekte berechnet werden. Beispiele dafür wären die p-Distanz, die lediglich den Anteil der unterschiedlichen Stellen ausgibt, Jukes-Kantor, welches auch Rückmutationen berücksichtigt, und Kimura, das unterschiedliche Frequenzen für Transversionen und Transitionen angibt. 2 • Die sequenzbasierten Bäume bekommen als Eingabe für jede der n Spezies eine repräsentative Sequenz und erstellen dadurch eine Topologie. Im Folgenden werden einige Methoden zur Erstellung von Bäumen aus diskreten Eigenschaften und numerischen Eigenschaften vorgestellt. 3 Diskrete Eigenschaften Um aus diskreten Eigenschaften einen phylogenetischen Baum zu erstellen sind einige Kriterien zu beachten. Zum Einen müssen die betrachteten Eigenschaften evolutionär bedeutend sein, das heißt, sie müssen Selektionskriterien darstellen. Weiterhin muss jede Eigenschaft unabhängig von jeder anderen vererbbar sein. 3.1 Perfekte Phylogenie[1] Das Problem der Perfekten Phylogenie ist für diskrete Eigenschaften mit binären Zuständen definiert. Dabei geht man von einer Ordnung 0 → 1 aus. Eine perfekte Phylogenie ist die Topologie eines Baumes, die an jeder Kante maximal eine Eigenschaft dazugewinnt. Aufgrund dieser Bedingung sind evolutionäre Ereignisse wie Koevolution und Verlust von Eigenschaften nicht erlaubt. Perfekte Phylogenien sind immer gewurzelt. Dies geschieht ohne zusätzlichen Aufwand und ist einer der Vorteile des Algorithmus. Der Algorithmus ist im Idealfall mit beiden Schritten in O(nm) realisierbar. Ich beschränke mich im Folgenden jedoch auf die naive Variante. Der naive Algorithmus wird in 2 Teilen ausgeführt, wobei der erste Teil überprüft, ob die Matrix die Voraussetzungen für eine perfekte Phylogenie erfüllt, und der zweite Teil den Baum erstellt. • Für die Überprüfung liegen folgende Definitionen zu Grunde: S(j) ist die Menge der Objekte, die für Eigenschaft j den Zustand 1 belegen. Nun ist zu überprüfen, ob: ∀i, j S(i) in S(j) enthalten ist, S(j) in S(i) enthalten ist oder die beiden Mengen disjunkt sind. Dafür geht man die Matrix spaltenweise durch und überprüft jede Menge mit allen anderen auf diese Bedingungen. Sind diese Bedingungen nicht erfüllt kann man keinen perfekte Phylogenie aus den Daten erstellen. • Der zweite Teil erstellt schließlich den Baum. Der Anfangszustand ist nur ein existierender Knoten: die Wurzel, die im Augenblick auch der aktuelle Knoten ist. Nun geht man die Matrix zeilenweise durch. Bei jeder 1 in der Zelle überprüft man, ob vom aktuellen Knoten eine Kante mit Beschriftung der Eigenschaft zu einem Knoten führt. Wenn ja, geht man die Kante entlang und setzt diesen Knoten als aktuellen Knoten. Wenn nein, erstellt man eine so beschriftete Kante und einen 3 Knoten. Am Anfang jeder Zeile wird der aktuelle Knoten wieder auf die Wurzel gesetzt. Nachdem man so alle Zeilen bearbeitet hat müssen nur noch die Objekte hinzugefügt werden. Dafür geht man einfach für jedes Objekt die Kanten entlang, welche die Eigenschaften des Objekts enthalten. Ist der aktuelle Knoten am Ende der Zeile ein Blatt, wird dieser lediglich mit dem Objekt beschriftet. Ist er ein innerer Knoten, wird von diesem aus ein neues Blatt mit dem Objekt erstellt. Der Algorithmus der Perfekten Phylogenie ist simpel und effektiv, sein Problem liegt lediglich im beschränkten Anwendungsgebiet, da in der Praxis nur selten Fälle eintreten in denen es weder Koevolution oder Verlust von Eigenschaften gibt. 4 Numerische Eigenschaften Um Bäume aus numerischen Eigenschaften herzustellen muss die Matrix bestimmte Voraussetzungen erfüllen. Alle numerischen Bäume müssen die Metrik erfüllen. Seien a,b,c zu untersuchende Objekte der Matrix, so muss gelten: ∀ a, b, c d(a, c) ≤ d(a, b) + d(b, c) Trivial ausgedrückt bedeutet dies, dass die Kantenlänge von a nach c nicht länger sein kann als ein Umweg von a nach b und anschließend von b nach c. Ebenfalls muss die Symmetrie gelten, also d(a, b) = d(b, a). Es handelt sich also um eine an der Hauptdiagonalen gespiegelte Matrix. 4.1 Ultrametrische Bäume Zusätzlich zur Metrik müssen ultrametrische Bäume noch die sogenannte 3-PunktBedingung erfüllen: Seien a,b,c zu untersuchende Objekte der Matrix, so muss gelten: ∀ a, b, c d(a, c) ≤ max(d(a, b), d(b, c)) Dies ist eine Einschränkung der Metrik, die besagt, dass der direkte Weg von a nach c nicht länger sein kann als der Längste der Wege a → b oder b → c. Ultrametrische Bäume gehen von der Hypothese der molekularen Uhr aus. Dies bedeutet, dass die Evolutionsraten aller Objekte gleich ist. Auf einer Achse wird mit Hilfe einer Legende die Zeit dargestellt, beginnend von den Blättern aus(siehe Abb. 2). Innere Knoten sind hier von jedem Blatt unter ihnen gleich weit entfernt. Die andere Achse ist nur für die optische Aufteilung der Bäume zuständig. 4 Abbildung 2: Beispiel für einen ultrametrischen Baum 4.2 UPGMA - “Unweighted Pair Group Method with Arithmetic Mean“[3] Bei UPGMA wird Schritt für Schritt der Baum von den Blättern aus aufgebaut. Dabei durchsucht man die Matrix nach der kleinsten Distanz zwischen zwei Knoten a und b. Diese beiden Knoten werden nun durch einen neuen Knoten k ersetzt. Die Höhe von k zu jedem seiner Kinder wird mit d(a,b) neu initialisiert. Anschließend wird die 2 Matrix neu berechnet. Dabei wird für alle übrigen Objekte n die neue Distanz wie folgt berechnet (Na ist hier die Anzahl alle Blätter unter dem Knoten a): d(n, k) = Na d(n,a)+d(n,b) Nb Na +Nb Dies ist der Durchschnitt aus den Distanzen der zusammengefügten Objekte. Das Schema wird nun so lange wiederholt, bis nur noch ein Objekt in der Matrix übrig ist. Dieser Knoten ist nun die Wurzel des ultrametrischen Baumes. Durch den einfachen Algorithmus und die effektive Darstellung ist UPGMA zu einer der populärsten Algorithmen für ultrametrische Bäume geworden. Sein Nachteil liegt vor allem in der Distanzmatrix. Diese ist oft nicht ultrametrisch, bzw. lässt sich nicht durch einen ultrametrischen Baum darstellen. 4.3 Additive Bäume Sowohl für ultrametrische, als auch additive Bäume muss die Distanzmatrix die Eigenschaft einer Metrik erfüllen. Im Gegensatz zur Ultrametrik, muss für die Algorithmen allerdings nicht die 3-Punkt-, sondern zusätzlich die sogenannte 4-Punkt-Bedingung gelten: ∀ a, b, c, d d(a, b) + d(c, d) ≤ max(d(a, c) + d(b, d), d(a, d) + d(b, c)) Vereinfacht ausgedrückt müssen alle Punkte folgende Form einnehmen können. 5 Abbildung 3: 4-Punkt-Bedingung für a,b,c und d 4.4 Fitch-Margoliash[4] Im Gegensatz zu UPGMA geht Fitch-Margoliash nicht von einer gleichen Evolutionsrate aus. Der Algorithmus resultiert in einem ungewurzelten, additiven Baum. Dafür zerlegt Fitch-Margoliash den Baum in Abschnitte aus drei Knoten, die über einen inneren Knoten miteinander verbunden sind. Abbildung 4: Additiver Baum für drei Knoten Seien a,b,c Knoten dieses Konstruktes, dann besteht der Weg von a nach c aus den Kanten b1 und b2, der Weg von b nach c aus b3 und b1 und der Weg von a nach b aus b2 und b3. Da man die Weglängen anhand der Matrix ablesen kann muss man nun nur noch die Längen der einzelnen Kanten berechnen. Die Länge einer dieser Kanten besteht dabei aus der Summe aller Wege, die diese Kante beinhalten, subtrahiert von dem Weg, der diese Kante nicht beinhaltet. Da man auf diese Weise die Länge der Kante doppelt ausgerechnet hat, muss man nun nur noch das Ergebnis halbieren. Für die Kante b2 wäre dies: b2 = 0.5(d(a, b) + d(a, c) − d(b, c)) Nach diesem Prinzip wird bei Fitch-Margoliash der ganze Baum aufgebaut. Man beginnt mit den zwei Objekten, die laut der Matrix die geringste Distanz haben, also dem minimalen Wert der Matrix. Der dritte Knoten ist ein Platzhalter, der alle anderen Kanten der Matrix enthält. Im nächsten Schritt würde man nun die bereits berechneten 6 Knoten in einem inneren Knoten k, und deren Kanten zu einer temporären Kante zusammenfassen. Deren Länge ist der Mittelwert der Kantenlängen zum inneren Knoten. Dies wiederholt man nun so lange bis der Baum vollständig ist. Das Problem bei Fitch-Margoliash ist, dass bei zu großen evolutionären Abständen sowohl die falsche Topologie, als auch falsche Kantenlängen entstehen können. Um dies zu umgehen wird im Folgenden der Neighbor Joining Algorithmus vorgestellt. 4.5 Neighbor Joining[4] Wie auch Fitch-Margoliash geht der Neighbor Joining-Algorithmus nicht von einer konstanten Evolutionsrate aus. Um einen Baum mit Neighbor Joining zu erstellen, benötigt man zwei Hilfskonstrukte: • Zum Einen muss man den sogenannten U -Wert für alle Objekte der Matrix wie folgt berechnen. Wobei i ein Objekt der Matrix ist: Ui = Pn j=1 d(i, j) Ui entspricht also der Zeilensumme der Matrix für das Objekt i. • Außerdem wird eine Hilfsmatrix δ wie folgt berechnet(N ist dabei die Anzahl Objekte in der Matrix): δ(i, j) = d(i, j) − Ui +Uj N −2 Nun sucht man sich die Zelle mit dem Minimum δ(a, b) in δ. Die beiden Knoten a,b werden nun zu einem neuen inneren Knoten k vereinigt. Dabei lassen sich die Distanzen wie folgt berechnen: d(a, k) = 0.5(d(a, b) + Ua −Ub N −2 ) d(b, k) = d(a, b) − d(a, k) Anschließend werden beide Matrizen und die U -Werte neu berechnet. Dabei benutzt man nun den neuen Knoten k anstatt a und b. Die Berechnungen für den U -Wert und für δ sind analog. Die Distanzmatrix wird für alle Zellen, die den neuen Knoten k enthalten wie folgt berechnet (dabei sind a und b die zu k vereinigten Knoten, und c ein beliebiger anderer der Matrix): d(c, k) = 0.5(d(a, c) + d(b, c) − d(a, b)) Diese Schritte werden nun so lange wiederholt, bis die Matrix leer und somit der Baum vollständig ist. 7 Der Vorteil am Neighbor Joining liegt vor allem in der Geschwindigkeit. Er ist auch bei großen Datenmengen, die andere phylogenetische Algorithmen nicht mehr schaffen, noch gut durchführbar. Aus jeder Distanzmatrix, die die Voraussetzungen erfüllt, kann mit Neighbor Joining ein passender Baum berechnet werden. Ein Problem des Algorithmus ist jedoch, dass, wie auch bei Fitch-Margoliash, die Distanzmatrix nur selten die 4-Punkt-Bedingung erfüllt. 5 Zusammenfassung Die Mittel zur Erstellung von phylogenetischen Bäumen sind vielfältig. Zur Auswahl stehen diverse Methoden, alle mit unterschiedlichen Eigenschaften und Voraussetzungen. Pauschal gibt es keine richtige Antwort, welchen Algorithmus man verwenden sollte. Es kommt hierbei auf die zu untersuchenden Daten und das gewünschte Anwendungsgebiet des Baumes an. 6 Quellen [1] J. Setubal, J. Meidanis: Introduction to Computational Molecular Biology, PWS, 1997; Abschnitte 6.1, 6.2, 6.5.1 sowie Errata zu Lemma 6.1. [2] M. Waterman: Introduction to Computational Biology, Chapman & Hall, 1995; Abschnitt 14.1.0 [3] P. Clote, R. Backofen: Computational Molecular Biology — An Introduction, Wiley 2000; Abschnitte 4.3.0 und 4.3.1. [4] M. Zvelebil, J. O. Baum: Understanding Bioinformatics, Garland Science, 2008; Abschnitte 7 und 8. 8