Genome Rearrangements Zentrum für Bioinformatik der Universität des Saarlandes WS 2002/2003 Ende der achtziger Jahre haben Jeffrey Palmer und seine Kollegen durch Vergleich der mitrochondralen Genome von Pflanzen ein bemerkenswertes Muster evolutionärer Entwicklung entdeckt. 1 2 3 4 5 B. oleracea (Kohl) 1 -5 -4 -3 -2 1 -5 4 -3 -2 -5 4 B. campestris (Steckrübe) 1 -3 2 Viele Gene sind zu 99 % identisch nur ihre Reihenfolge (und ihre Richtung) haben sich geändert. Ganze Blöcke von Genen wurden umsortiert und eventuell wurde auch die Richtung der Blöcke geändert. Genome Rearrangement: Finde eine minimale Reihe von Transformationen, die ein Genom (oder Chromosom) in ein anderes Genom (oder Chromosom) überführt. Die Standardtransformation ist die Umkehrung (Reversal). Ein Reversal kehrt die Richtung eines oder mehrerer Blöcke um. 1 2 3 4 5 1 4 2 6 7 8 Maus (X Chromosom) Mensch (X Chromosom) -4 -6 -3 5 8 Da sich die Gene auf den X Chromosomen der Säugetiere im Laufe der Evolution kaum geändert haben (Ohno [1967]), kann man durch das Studium der X Chromsomen und der vorliegenden Rearrangements die Evolution der Säugetiere in den letzten 125 Millionen Jahren studieren. Herpes Viren haben bis zu 200 Gene. Die Genome dieser Viren entwickeln sich so schnell weiter, dass man kaum mehr eine Ähnlichkeit zwischen den „verwandten“ Genen verschiedener Herpes Arten feststellen kann. Aber alle Arten weisen sieben Blöcke von Genen auf, die in den verschiedenen Viren unterschiedlich angeordnet sind. David Sankoff hat den folgenden Ansatz zum Vergleich der Genreihenfolge formuliert: Sorting by Reversals: Die Reihenfolge der Gene von zwei Organismen wird durch zwei Permutationen repräsentiert: = 1 2 ... n = 1 2 ... n Ein Reversal ( i, j) eines Intervals [i,j] ist die Permutation 12...(i 1)i (i 1)...( j 1) j ( j 1)...n 12...(i 1) j ( j 1)...(i 1)i ( j 1)...n = 1 2 ... i-1 i i+1... j-1 j j+1 ...n ( i, j) = 1 2 ... i-1 j j-1... i+1 i j+1 ...n Reversal Distance Problem: Gegeben zwei Permutationen und . Bestimme eine minimale Serie von Reversals 1 2... t , so dass gilt: 1 2... t = Die minimale Zahl d( ) von Reversals, die eine Permutation in die Identität überführt, nennt man die Reversal-Distanz von . Identität = (1 2 3 ... n). Pancake Flipping Problem: Die minimale Zahl dpräf( ) von Präfix-Reversals (1,i) , die eine Permutation in die Identität überführt, nennt man die Präfix-Reversal-Distanz von . Identität = (1 2 3 ... n). Bill Gates (ein „undergraduate“ Student in Harvard) und Christos Papadimitriou machten die ersten Versuche dieses Problem zu lösen (Gates & Papadimitriou [1979]). Sie zeigten, dass der Präfix-Reversal-Diameter dpräf(n) = max dpräf() der symmetrischen Gruppe mit n Elementen kleiner gleich (5/3)(n+1) ist und für unendlich viele n größer gleich (17/16)n ist. Bezeichnung: Definition: Falls |i-j| = 1, dann schreiben wir i~j . Falls |i-j| 1, dann schreiben wir i~j . Man nennt ein Paar (i , i+1) adjazent, falls i ~ i+1. Man nennt ein Paar (i , i+1) einen Haltepunkt, falls i ~ i+1 Da die Identität keine Haltepunkte hat und da jedes Reversal bestenfalls zwei Haltepunkte beseitigen kann, gilt: b( ) d ( ) 2 wobei b() die Zahl der Haltepunkte von ist. Der Haltepunkt-Graph einer Permutation = 0 1 ...n n+1 ist ein Graph mit n+2 Knoten V = {0 ,1, ...,n ,n+1} und gefärbten Kanten: Die benachbarten Knoten i und i+1 werden durch blaue Kanten verbunden. Jedes Knotenpaar (i , j) mit i ~ j wird über eine rote Kante miteinander verbunden. 0 2 3 1 4 6 5 7 Definition: Man nennt einen Rundgang in diesem Graphen alternierend, wenn jedes aufeinander folgende Paar von Kanten im Rundgang aus einer blauen und einer roten Kante besteht. ( ... rot, blau, rot, blau, rot, ....) Wenn wir im folgenden Abschnitt von einem Rundgang sprechen, so ist immer ein alternierender Rundgang gemeint. Die Knoten im Haltepunkt-Graphen sind balanciert, d.h., #rote Kanten (v) = #blauen Kanten (v). Es existiert ein alternier. Euler-Rundgang (d.h. der Rundgang geht genau einmal über jede Kante). Der Graph kann in kanten-disjunkte alternierende Rundgänge zerlegt werden. 0 2 3 1 4 6 5 7 0 2 3 1 4 6 5 7 0 2 3 1 4 6 5 7 0 2 3 1 4 6 5 7 0 2 3 1 4 6 5 7 Zerlegung in kantendisjunkte alternierende Rundgänge. Der Graph kann in kanten-disjunkte alternierende Rundgänge zerlegt werden. Wir interessieren uns für die Zerlegung eines Haltepunkt-Graphen in maximal viele Rundgänge. 0 1 2 3 4 5 6 7 Die Identität kann in n+1 Rundgänge zerlegt werden. Sei eine Permutation. Der HaltepunktGraph von G() habe eine maximale Rundgang-Zerlegung der Größe c(). Wir werden im folgenden Abschnitt zeigen, dass Satz: Die Anwendung eines beliebigen Reversals auf die maximale Zahl von Rundgängen um höchstens einen Rundgang vergrößert, d.h. c() – c() 1 Beweis: Siehe nächste Seite! Es folgt dann: Satz (Bafna & Pevzner [1996]) Für jede Permutation gilt: d() n+1 – c(). Beweis des Satzes: Jedes Reversal (i,j) verändert G() in vier Knoten. Die blauen Kanten 0 DEL={(i-1, i), (j, j+1)} werden ersetzt durch ADD={(i-1, j), (i, j+1)} 0 2 3 1 4 6 (5,6) 2 3 1 4 5 7 6 7 DEL 5 ADD (1) Gehören die Kanten in ADD zum gleichen Rundgang einer maximalen Zerlegung von G(), so erhalten wir durch Löschen dieses Rundgangs eine Menge von c() –1 Rundgängen von (in) G(). Also ist c() c() –1. 0 1 2 3 0 2 1 3 2 3 4 (1,2) 5 6 7 4 5 6 7 4 5 6 7 ADD 0 1 Beweis des Satzes: Jedes Reversal (i,j) verändert G() in vier Knoten. Die blauen Kanten DEL={(i-1, i), (j, j+1)} werden ersetzt durch ADD={(i-1, j), (i, j+1)} 0 2 3 1 4 6 (5,6) 0 2 3 1 4 5 7 6 7 DEL 5 ADD (1) Gehören die Kanten in ADD zu zwei Rundgängen R1 und R2 der maximalen Zerlegung von G (), so erhalten wir durch Löschen dieser Rundgänge eine Menge von c() –2 Rundgängen von (in) G()\(R1R2). Offensichtlich bildet die Kanten (R1 R2 DEL)\ADD einen balanciertenTeilgraphen 4 5 6 2 1 0 7 3 von G(), der wenigstens (1,2) R1 einen weiteren Rundgang R2 enthält. c() c() - 2 + 1 c() c() - 1 0 1 2 3 4 5 6 7 1 3 4 5 6 7 ADD 0 2 Erwartete Reversal-Distanz: Für eine belieb. Permutation Sn betrachten wir eine max. Rundgang-Zerlegung. Sei ci() die Zahl der Rundgänge mit Länge i in der max. Zerlegung (die nicht 0 und n+1 besuchen). Sei 2 die Zahl der Rundgänge in der max. Zerlegung, die entweder 0 oder n+1 besuchen. Es gilt: c( ) 2 ( n 1) c ( ) i 2 i Wir betrachten nun alle Rundgänge deren Länge mindestens k ist. Die Zahl dieser k 1 Rundgänge ist c( ) ci ( ) i 2 Da G() genau 2(n+1) Kanten hat und da die Rundgänge kanten-disjunkt sind, gilt: k 1 1 k 2(n 1) c( ) ci ( ) 2(n 1) ici ( ) k i 2 i 2 k 1 k 2(n 1) d() (n+1) – c() k 2(n 1) k 1 1 c( ) 2(n 1) (k i )ci ( ) k i 2 k 1 2 1 d ( ) (1 )( n 1) (k i )ci ( ) 2 k k i 2 Erwartete Reversal-Distanz: Für eine beliebige Permutation Sn bezeichnen wir die erwartete Zahl von Rundgängen der Länge i in der maximalen Zerlegung von G() mit E(ci()). Lemma: 2i E (ci ( )) i Beweis: Ein Rundgang der Länge i = 2t enthält t blaue Kanten von der Form {(x‘t , x1), (x‘1 , x2), (x‘2 , x3), .... , (x‘t-1 , xt) } mit xj ~ x‘j Wir betrachten die Menge x1, x2 , .... , xt und zeigen, dass für jeden Rundgang in einer max. Zerlegung gilt, dass alle xi verschieden sind (xi xj). Wir nehmen an, dass xk = xl ist. (x‘t , x1) .... (x‘k-1 , xk) (x‘k , xk+1) .... (x‘l-1 , xl)(x‘l , xl+1) .... (x‘t-1 , xt) = Dann ist die Zerlegung nicht maximal, da wir einen weiteren Rundgang (siehe Bild) zur Zerlegung hinzufügen könnten und eine Menge von balancierten Knoten übrigbleiben würde (weitere Rundgänge). Wir erhalten also einen Widerspruch zur Annahme, dass x k = xl. Fortsetzung des Beweises auf der nächsten Seite. Es gibt n!/(n-t)! mögliche Auswahlen von sortierten Menge x1, ... , xt. Für jede mögliche Auswahl gilt: Es existieren für jedes xi (höchstens) zwei Nachbarn x‘i. 2t n!/(n-t)! mögliche Rundgänge der Länge 2t. Man beachte, dass wir bei dieser Zählung jeden Rundgang 2t mal zählen. (2t /2t)(n!/(n-t)!) mögliche Rundgänge der Länge 2t. Man wähle einen beliebigen 2t-Rundgang. Die Zahl der Permutationen, in denen dieser Rundgang höchtens auftreten kann, kann wie folgt abgeschätzt werden: 2t(n-t)! da die Elemente der t Paare nebeneinander gesetzt werden müssen und man daher nur die möglichen Permutationen von (n-t) Elemente betrachten muß (=>(n-t)!)und man für jedes Paar zwei mögliche Reihenfolgen hat => 2t. Die Wahrscheinlichkeit p, dass irgend ein 2t-Rundgang in einer zufällig gewählten Permutation auftritt, kann daher wie folgt abgeschätzt werden: 2t (n t )! p n! 2t (n t )! 22t (n t )! n! 22t 2i E (ci ( )) E (c2t ( )) n ! ( n t )! n ! ( 2 t ) 2 t 2t alle2 tRundgänge 3 n E (d ( )) 1 log( n ) log( n ) Satz (Bafna & Pevzner [1996]) Beweis: 2 1 k 1 d ( ) (1 )( n 1) (k i )ci ( ) 2 k k i 2 2 k 1 d ( ) (1 )( n 1) ci ( ) 2 k i 2 k 1 2i 2 2 k 1 E (d ( )) (1 )( n 1) E (ci ( )) 2 (1 )( n 1) 4 k k i 2 i 4 i 2 k 1 i 2 k 1 i (1 )( n 1) 2 4 (1 )( n 1) 2 1 2 4 8 4 k k i 0 i 4 n 2n 2 2n (1 ) (2k 1) 1 2 8 n 2k k k k Fortsetzung des Beweises auf der nächsten Seite. E (d ( )) n 2n 2k k Wähle k log( E (d ( )) (1 n ) log( n ) 3 n log( ) log( n ) 2k n k )n Bafna und Pevzner geben ferner die folgende Abschätzung an: 4.5 E (d ( )) 1 n log( n ) Satz (Caprara [1997]) Das Reversal-Distanz-Problem für vorzeichenlose Permutationen ist NP-hard. Satz (Kaplan, Shamir, Tarjan [1997]) Es existiert ein Algorithmus mit Laufzeit O(n2), der die optimale Folge von Reversals (Reversal-Distanz) für jede vorgegebene Permutation mit Vorzeichen (signed permutation) bestimmt. 1 2 3 4 5 1 4 2 6 7 8 Maus (X Chromosom) Mensch (X Chromosom) -4 -6 -3 5 8 Definition: Ein Block einer Permutation ist ein maximales Teilinterval von , das keine Haltepunkte enthält. 1567432 Ein Block wird wachsend genannt, wenn die Zahlenwerte im Block wachsen. Der Block wird fallend genannt, wenn die Zahlenwerte vom Anfang zum Ende hin im Block kleiner werden. Ein Block, der nur aus einer Zahl besteht, wird auch fallend genannt. Sei eine Permutation, die einen fallenden Block (gelb markiert) enthält: ....i-1 i i+1 ..... i+1 i - 1 und i+1 i + 1 Haltepunkt Unter der Annahme, dass ..... i-1 i der fallende Block in mit der kleinsten Zahl i am Ende des Blocks ist, gilt: Es existiert ein weiterer Haltepunkt zwischen der Zahl i - 1 und dem rechten Nachbarn der Zahl i – 1. Fall1: ..i i+1 .. (j = i-1) j+1 .. Haltepunkte Fall2: (j = i-1) j+1 .. i i+1. ..i (j = i-1) .... i+1j+1 .. Haltepunkt ? (j = i-1) i .... j+1i+1 .. Lemma: Falls eine Permutation einen fallenden Block enthält, dann existiert ein Reversal, das die Zahl der Haltepunkte um wenigstens einen Haltepunkt verkleinert. Beweis: Siehe vorhergehende Seite. Sei eine Permutation, die keinen fallenden Block enthält. Jeder Block ist steigend und besteht daher aus mindestens zwei aufeinander folgenden Zahlen. Falls nicht die Identität ist, so gibt es an jedem Ende eines Blockes einen Haltepunkt. Dreht man einen solchen steigenden Block um, so erhält man einen fallenden Block und die Zahl der Haltepunkte ändert sich nicht. Lemma: Sei eine Permutation, die nicht die Identität ist und keine fallenden Blöcke enthält, dann gibt es ein Reversal, das nicht die Zahl der Haltepunkte ändert und einen fallenden Block der Länge größer gleich 2 produziert. Heuristik 1: Gegeben eine Permutation . Solange die Permutation ungleich der Identität ist, führe man die folgenden Operationen aus: • Falls es mindestens einen fallenden Block gibt, dann finde einen, dessen Umkehrung (Reversal) die Zahl der Haltepunkte reduziert und drehe ihn um. • Falls es keinen fallenden Block gibt, dann finde einen steigenden Block und drehe ihn um (Reversal). Satz: Die vorhergehende Heuristik (1) benötigt im schlimmsten Fall 2b() Reversals, um eine beliebige Permutation in die Identität zu überführen. Hierbei ist b( ) die Zahl der Haltepunkte von . Daher ist die Zahl der von der Heuristik verwendeten Reversals immer kleiner gleich 4 * d(), wobei d() die Reversal-Distanz (die optimale Zahl von Reversals) ist. Beweis: Siehe vorhergehende Seite und siehe Seite 5: d() b()/2, wobei b() die Zahl der Haltepunkte ist. Lemma: Sei eine Permutation mit einem fallenden Block. Falls es kein Reversal gibt, das die Zahl der Haltepunkte verkleinert und einen anderen fallenden Block zurücklässt (oder produziert), dann gibt es ein Reversal in , das die Zahl der Haltepunkte um zwei verkleinert. Beweis: Sei ..... i-1 i der fallende Block in mit der kleinsten Zahl i am Ende des Blocks: Es existiert ein weiterer Haltepunkt zwischen der Zahl i - 1 und dem rechten Nachbarn der Zahl i – 1. Fall1: ..i i+1 .. (j = i-1) j+1 .. Haltepunkte Fall2: .. (j = i-1) j+1 .. i i+1. ..i (j = i-1) .... i+1j+1 .. Haltepunkt ? .. (j = i-1) i .... j+1i+1 .. Es existiert ein fallender Block ..... i (j = i-1)... ! (j = i-1) muß links von i liegen! Sei ..... k k+1 .... der fallende Block in mit der größten Zahl k am Anfang des Blocks: Mit einem symmetrischen Argument kann man zeigen, dass k + 1 rechts von k liegen muß. i -1 k i k + 1 k muß links von i liegen, da andernfalls das Reversal des Intervals von i – 1 bis i die Zahl der Haltepunkte reduzieren würde und den fallenden Block mit k zurücklassen würde. k muß rechts von i -1 liegen, da andernfalls das Reversal des Intervals von i – 1 bis i die Zahl der Haltepunkte reduzieren würde und den fallenden Block mit k zurücklassen würde. Mit symmetrischer Argumentation folgt, dass i links von k + 1 liegen muß. Wir zeigen nun, dass k + 1 direkt auf i folgt, d.h., die oben eingezeichnete rote Box ist leer und enthält kein Element. Hierzu nehmen wir an, dass die Box nicht leer ist, und leiten einen Widerspruch zu der Annahme des Lemmas ab. Die Box kann keinen fallenden Block enthalten, da andernfalls das Reversal des Intervals von i – 1 bis i die Zahl der Haltepunkte reduzieren würde und den in der Box enthaltenen fallenden Block zurücklassen würde. Also muß die Box mindestens einen steigenden Block enthalten. Das Reversal des Intervals von k bis k + 1 würde die Zahl der Haltepunkte verkleinern und den steigenden Block Widerspruch zur Annahme im Lemma. in der Box in einen fallenden Block umwandeln. Eine symmetrische Argumentation zeigt, dass k direkt auf i –1 folgt. Das Reversal des Intervals von k bis i eliminiert zwei Haltepunkte. Heuristik 2: Gegeben eine Permutation . Solange die Permutation ungleich der Identität ist, führe man die folgenden Operationen aus: • Falls es einen fallenden Block gibt, dessen Reversal die Zahl der Haltepunkte reduziert und einen fallenden Block zurücklässt, dann drehe ihn um. • Falls es keinen solchen Block gibt, dann finde (1) einen Block, dessen Reversal die Zahl der Haltepunkte um zwei reduziert, und drehe ihn um und, falls man nicht durch das Reversal bereits die Identität hat, dann (2) suche einen steigenden Block, dessen Reversal keine neuen Haltepunkte produziert, und drehe ihn um. Satz: Die Heuristik 2 verwendet höchstens b() Reversals und verwendet daher höchstens 2 * d() viele Reversals (höchstens zweimal die optimale Zahl von Reversals).