Proseminar Algorithmen der Bioinformatik WS 2010/11 Genome Rearrangements Valentina Klaus 17.01.2011 1. Biologischer Hintergrund Sequenzvergleiche sind aus der heutigen Forschung kaum mehr wegzudenken. Sie bieten unter anderem Aufschluss über Verwandtschaftsbeziehungen und auch über die Evolution der einzelnen Arten. Möchte man nun beispielsweise einen Stammbaum nah verwandter Arten erstellen, ist es möglich, dass die Unterschiede innerhalb der Sequenz, die die einzelnen Gene kodiert, zu gering sind, um ein aufschlussreiches Ergebnis zu liefern. Andererseits könnte auch die Untersuchung der Evolution von Herpesviren problematisch werden. Ihre Genome entwickeln sich so rapide weiter, dass diese anhand ihrer genkodierenden Sequenzen fast nicht mehr als verwandt erkannt werden können. Betrachtet werden das Genom als Gesamtheit der Gene eines Organismus und die Gene als Teilfolge der DNA. Vergleicht man nicht die Gensequenz, sondern die Anordnung der Gene innerhalb des Genoms zweier Arten, lässt sich durchaus die molekulare Evolution dieser beiden Arten nachweisen. Die Reihenfolge der Gene innerhalb des Genoms wird dabei durch Mutationen auf Genomebene beeinflusst, diese werden Genome Rearrangements genannt. Genome Rearrangements werden in intrachromosomale und interchromosomale Transformationen untergliedert. Intrachromosomale Transformationen ändern die Anordnung der Gene innerhalb eines Chromosoms. Hierbei unterscheidet man wiederum zwischen Reversals und Transpositionen. Im Falle einer Transposition, wird die ausgeschnittene Teilfolge von Genen bei gleicher Orientierung an einer anderen Stelle eingefügt. Bei Reversals, die auch als Inversionen bezeichnet werden, wird eine Teilfolge von Genen ausgeschnitten und in umgekehrter Orientierung wieder eingefügt. Interchromosomale Transformationen, wie reziproke Translokationen, vertauschen Teilfolgen zwischen zwei Chromosomen. Um die Distanz zweier Genome zueinander herauszufinden, muss zuerst die Reihenfolge der Gene des einen Genoms in die Anordnung der Gene des anderen Genoms durch Genome Rearrangements umgewandelt werden. Als Distanz wird dann die minimale Anzahl ausgeführter Genome Rearrangements angesehen, da diese die wahrscheinlichste ist. 2. Darstellung als Permutation Um das Problem zu vereinfachen, orientiert man sich an einem in der Natur vorkommenden Spezialfall. In Genomen von Chloroplasten und mitochondrialen Genomen kommen im Falle von Genome Rearrangements hauptsächlich Reversals vor. Zudem geht man davon aus, dass in den untersuchten Genomen jeweils nur ein Chromosom vorliegt und kein Gen doppelt vorkommt. Soll nun die Abfolge der Gene eines Genoms in die des anderen Genoms umgeformt werden, entspricht dies dem Problem des Sortierens einer Permutation durch Reversals, da die Zielpermutation die identische Permutation ist. Ein Reversal einer Teilfolge von Genen ist somit ein Reversal von Permutationen, entspricht also dem Umdrehen einer Teilpermutation. 2 Valentina Klaus Permutationen sind Veränderungen der Anordnung einer Menge durch Vertauschen ihrer Elemente. Gerichtete Permutationen sind hierbei Permutationen, deren Elemente jeweils eine von zwei Richtungen besitzen. Die identische Permutation ist die Permutation, deren Elemente bereits sortiert sind. Sei also π = ( π1, … , πn) eine Permutation der Ordnung n. Für 1 ≤ i < j ≤ n ist ein (i, j) Reversal eine Permutation ρ (i, j), sodass gilt: π · ρ (i, j) = (π1, … , πi-1, πj, πj-1, … , πi+1, πi, πj+1, … , πn). Dadurch ergeben sich zwei mögliche Problemstellungen, je nachdem ob die Leserichtung der Gene bekannt ist oder nicht. 2.1 beschreibt die Problemstellung, die sich ergibt, falls die Leserichtung nicht bekannt ist, in 2.2 wird auf die zweite Option eingegangen. 2.1 Sortieren ungerichteter Permutationen In diesem ersten Fall muss eine gewöhnliche Permutation durch Reversals sortiert werden. Das Problem ist als MINSR-Problem bekannt. MINSR-Problem Gegeben ist eine Permutation π = ( π1, … , πn ) der Ordnung n. Alle Folgen ρ1, … , ρt von Reversals der Ordnung n sind zulässige Lösungen, sodass die identische Permutation als die Hintereinanderausführung der Permutationen π und ρ1 bis ρt beschrieben werden kann.Es gilt also π ρ1 · · · ρt = ( 1, … , n). Es ergeben sich für jede Lösung ρ1, … , ρt Kosten in Höhe der Anzahl t der Reversals. Da hier nach der minimalen Anzahl an Reversals gesucht wird, soll t möglichst gering gehalten werden. Die Suche nach einer effizienteren Lösung bleibt erfolglos. Das MINSR-Problem ist NP – schwer, das heißt es ist vermutlich nicht möglich, dieses Problem in polynomieller Zeit exakt zu lösen. Ein nicht ganz so exaktes dafür aber in polynomieller Zeit errechnetes Ergebnis erhält man mit Hilfe eines Approximationsalgorithmus, der wenigstens eine Lösung findet, die der optimalen möglichst nahe kommt. 2.1.1 Definitionen und Begriffe Gegeben ist zum Beispiel eine Permutation π = (4, 3, 5, 1, 2) der Ordnung 5. Die erweiterte Darstellung von π, genannt ext(π) = ( π0, π1, … , πn, πn+1) mit π0 = 0 und πn+1 = n+1, ist in diesem Fall ext(0, 4, 3, 5, 1, 2, 6). Die Breakpoints von π befinden sich hier zwischen der 3, der 5 und der 1. Ein Breakpoint von π ist definiert als ein Paar ( i, i+1) von Positionen, wobei der Betrag der Differenz von πi und πi+1 nicht 1 ist. Strips von π sind Teilfolgen der Elemente einer Permutation, die durch einen Breakpoint getrennt werden. Unterschieden werden dabei aufund absteigende Strips. Die beiden äußersten Strips der erweiterten Darstellung ext(π) und Strips, deren Elemente aufsteigend sortiert sind, sind aufsteigende Strips. Absteigende Strips sind Strips der Länge 1 ist und Strips, deren Elemente absteigend sortiert sind. In diesem Beispiel gehören die Strips (4,3) und (5) zu den absteigenden Strips, (1,2), (0) und (6) sind absteigende Strips. 3 Valentina Klaus Die identische Permutation ist die einzige erweiterte Permutation ohne Breakpoints. Damit entspricht das Umsortieren der Elemente dem Eliminieren der Breakpoints. Die Mindestanzahl der Reversals die zur Umsortierung nötig sind, wird mit brp(π)/ 2 berechnet. Dies liegt daran, dass ein ( i, j) - Reversal maximal zwei Breakpoints eliminieren kann, da es nur auf die Breakpoints an den Positionen ( i, i+1) und ( j, j+1) Einfluss nehmen kann. 2.1.2 Signifikanz absteigender Strips Absteigende Strips sind in diesem Zusammenhang besonders wichtig, da bei ihrem Vorhandensein immer mindestens ein Reversal existiert, das mindestens einen Breakpoint eliminiert. Dies wird deutlich, wenn man sich die möglichen Situationen vor Augen führt. Ausgegangen wird von einer erweiterten Permutation π der Ordnung n. Man wählt ein Element k als kleinstes Element eines absteigenden Strips und ein zweites Element l als das größte Element eines absteigenden Strips aus ext(π). 1. Liegt k in einem absteigenden Strip und k-1 in einem aufsteigenden Strip, sind k und k-1 nun Teil eines Breakpoints, da sie beide das letzte Element ihres Strips sein müssen. K-1 muss in einem aufsteigenden Strip liegen, da es sonst bereits Teil des Strips wäre, in dem k liegt. Das letzte Element ist jeweils das kleinste in einem absteigenden Strip und das größte in einem aufsteigenden Strip. Liegt k in π links von k-1, enthält das Reversal, das die beiden nebeneinander sortiert, den aufsteigenden Strip, in dem k-1 liegt. Liegt k in π jedoch rechts von k-1, enthält das Reversal den absteigenden Strip, der k enthält. 2. Liegt l in einem absteigenden und l+1 einem aufsteigenden Strip, sind l und l+1 Teil eines Breakpoints, da auch sie jeweils das letzte Element ihres Strips sein müssen. L+1 muss in einem aufsteigenden Strip liegen, da es sonst bereits Teil des Strips wäre, in dem l liegt. Auch hier ergeben sich, je nach Anordnung der Strips, zwei mögliche Reversals. Liegt l in π links von l+1, enthält das Reversal, das die beiden nebeneinander sortiert, den absteigenden Strip, in dem l liegt. Liegt l in π rechts von l+1, enthält das Reversal den aufsteigenden Strip, in dem l+1 liegt. 3. Die ersten beiden Fälle machen deutlich, dass es mindestens ein Reversal geben muss, das einen Breakpoint eliminiert, sobald eine Permutation einen absteigenden Strip besitzt. Sollte k = 1 gelten, also k-1 = 0 sein, gilt dies immer noch, da in der erweiterten Darstellung von π ext(π) der Strip s0 = 0, als einer der beiden äußersten Strips, als aufsteigend definiert ist. 4. Für den Fall, dass es zwei Reversals gibt, die einander entsprechen und die, auf die Permutation angewandt, eine Permutation ohne absteigende Strips erzeugen, werden zwei Breakpoints auf einmal eliminiert. Um nur aufsteigende Strips zu erhalten, müssen die angewandten Reversals die absteigenden Strips enthalten. Damit liegt k in π rechts von k-1 und l liegt in π links von l+1. Um zwei Breakpoints auf einmal zu eliminieren, müssen nun die beiden Reversals gleich sein. Dies bedeutet, dass k in dem Reversal enthalten sein muss, das den Breakpoint zwischen l und l+1 eliminiert. Gleichzeitig muss l in dem Reversal enthalten sein, das wiederum den Breakpoint zwischen k und k-1 entfernt. Wäre dies nicht der Fall, würden absteigende Strips erhalten bleiben. 4 Valentina Klaus Diese beiden Reversals müssen einander entsprechen, da sonst ein Strip existieren würde, der nur in einem der beiden Reversals enthalten ist. Dieser Strip wäre, egal ob ab – oder aufsteigend in π, in der resultierenden Permutation absteigend. 5. Zuletzt betrachten wir den Fall, dass die Permutation π nur aufsteigende Strips enthält. Sie ist nun entweder die identische Permutation, also fertig sortiert, dann liegen 0 und n+1 in einem Strip. Oder es gibt ein Reversal, das eine Permutation mit einem absteigenden Strip erzeugt. In diesem Fall wird jedoch nicht unbedingt ein Breakpoint eliminiert, es wird jedoch auch kein neuer Breakpoint erzeugt, da die Permutation mindestens zwei Breakpoints enthält und das Reversal nur den Bereich zwischen diesen beiden Breakpoints umdreht. Der im Folgenden vorgestellte Approximationsalgorithmus verwendet genau diese Eigenschaften zur Lösung des MINSR-Problems. 2.1.3 Algorithmus Der Algorithmus ist ein 2-approximativer Algorithmus des MINSR-Problems, da jedes gefundene Reversal durchschnittlich einen Breakpoint eliminiert. Zuerst soll nun die Vorgehensweise des Algorithmus aufgezeigt und anschließend seine Approximationsgüte und Laufzeit erörtert werden. Vorgehensweise Ermittelt werden alle Reversals einer gegebenen Permutation π der Ordnung n, die diese Permutation in die identische Permutation umformen. Diese werden in eine Liste eingefügt. Die Liste wird ausgegeben, sobald die Permutation der identischen Permutation entspricht. Am Anfang sucht der Algorithmus nach absteigenden Strips in der Ausgangspermutation. Ist keiner vorhanden, wird das Reversal durchgeführt, das den Strip zwischen den ersten beiden Breakpoints umdreht. Dadurch ändert sich die Anzahl der Breakpoints zwar nicht, die Permutation besitzt nun jedoch einen absteigenden Strip. Die weitere Vorgehensweise ist davon abhängig, ob die Permutation nach Ausführen eines Reversals noch mindestens einen absteigenden Strip besitzt. Ist dies der Fall, wird das kleinste Element k eines absteigenden Strips von π ermittelt. Zusätzlich wird dessen Position i in π und die Position i' des nächstkleineren Elements k-1 in π bestimmt. Das Reversal, das nun zur Liste hinzugefügt wird, lautet ρ (i'+1, i) der erweiterten Darstellung von π. Existiert allerdings nach Durchführung des gefundenen Reversals kein absteigender Strip in der Permutation, wird das größte Element l eines absteigenden Strips von π gesucht. Es werden die Positionen j und j' von l und l+1 in π bestimmt. Das gefundene Reversal, lautet nun ρ (j, j'-1) der erweiterten Darstellung von π. 5 Valentina Klaus Approximationsgüte In dem Worst-Case-Szenario, in dem die Ausgangspermutation keinen absteigenden Strip enthält, wird als erstes ein Reversal ausgeführt, das einen absteigenden Strip erzeugt. Dieses Reversal entfernt keinen Breakpoint, erzeugt aber auch keinen neuen. Dieser Fall kann entweder am Anfang einer Berechnung auftreten, oder nachdem zwei Breakpoints gleichzeitig entfernt wurden. Enthält die aus einem gefundenen Reversal resultierende Permutation einen absteigenden Strip, eliminiert dieses einen Breakpoint. Enthält sie keinen absteigenden Strip, bedeutet dies, dass durch das Reversal zwei Breakpoints entfernt werden. Die Reversals, die jeweils keinen oder zwei Breakpoints aufheben, können am Ende miteinander verrechnet werden. Somit eliminiert jedes Reversal des Algorithmus mindestens einen Breakpoint. Der Algorithmus erhält deshalb die Approximationsgüte 2. Zeitkomplexität Dies spielt auch bei der Analyse der Laufzeit eine Rolle. Eine Permutation der Ordnung n kann maximal n+1 Breakpoints haben, da hierfür die erweiterte Darstellung betrachtet wird. Wie eben bewiesen eliminiert jedes Reversal durchschnittlich einen Breakpoint. Die äußere While – Schleife des Algorithmus muss damit höchstens n+1-mal durchlaufen werden. Die Entscheidung, welches Reversal am geeignetsten ist, ist in linearer Zeit möglich, da in höchstens zwei verschiedenen Permutationen die absteigenden Strips bestimmt werden müssen. Daraus ergibt sich eine Laufzeit von O(n²) für das Sortieren einer Permutation der Ordnung n. 2.2 Sortieren gerichteter Permutationen Gene sind gerichtete DNA-Fragmente. Ignoriert man nun deren Leserichtung nicht mehr, entspricht das Suchen der Mindestanzahl an Genome Arrangements dem Sortieren einer gerichteten Permutation. 2.2.1 Definitionen und Begriffe Eine gerichtete Permutation der Ordnung n ist als n-Tupel π = (π1,, …, πn) definiert. Aus jeder Menge { j , j } 1 ≤ j ≤ n kommt genau ein Element in π vor. Die Menge aller gerichteter Permutationen der Ordnung n wird hier als Permn bezeichnet. In anderen Quellen werden anstatt der Pfeile Vorzeichen zum Anzeigen der Richtung eines Elements verwendet. In diesem Zusammenhang wird eine etwas genauere Definition des Reversals notwendig. Ein Permn → Permn defi( i, j) - Reversal der Ordnung n wird nun als Abbildung ρ ( i, j) : niert. Somit gilt: π · ρ ( i, j) = ( π1 , … , πi-1 , π j , π j−1 , … , π i1 , π i , πj+1 , … , πn ). Dabei sei π k = x , falls πk = x und π k = x , falls πk = x für alle 1 ≤ k ≤ n. Das bedeutet, dass jedes Reversal nicht nur die Reihenfolge der Elemente, sondern auch die Richtung eines Elements ändert. 6 Valentina Klaus Das Problem, eine gerichtete Permutation in die identische Permutation umzuformen, wird als MINOSR-Problem bezeichnet. Im Gegensatz zu dem MINSR-Problem ist es jedoch in polynomieller Zeit optimal lösbar. Auf die Vorstellung des Algorithmus von Hannenhalli und Pevzner, der dieses Problem löst, wird hier aufgrund der technischen Aufwendigkeit desselben verzichtet. MINOSR-Problem Das MINOSR-Problem hat zwei gerichtete Permutationen π und σ der Ordnung n als Eingabe. Als Lösung zugelassen ist jede Folge ρ1, … , ρt von Reversals der Ordnung n, für die π ρ1 · · · ρt = σ gilt. Die Kosten hierfür entsprechen wie auch bei dem MINSR-Problem der Anzahl t der Reversals. Da auch hier nach der Mindestanzahl an Reversals gesucht wird, sollte t auch in diesem Fall möglichst gering sein. 4. Zusammenfassung Der Vergleich des gesamten Genoms kann in speziellen Fällen die einzige Möglichkeit sein, die molekulare Evolution zweier Arten zurückzuverfolgen. Als Distanzmaß wird dabei die minimale Anzahl so genannter Genome Rearrangements verwendet. Diese Mutationen verändern die Anordnung der Gene eines Genoms. Modelliert wird die Suche nach der Anzahl von Genome Rearrangements als Sortieren von Permutationen durch Reversals. Ist die Leserichtung der Gene nicht bekannt, führt dies zum MINSR-Problem. Dieses kann nur mit Hilfe eines Approximationsalgorithmus näherungsweise gelöst werden. Der Algorithmus eliminiert mit jedem gefundenen Reversal durchschnittlich einen Breakpoint und hat eine Laufzeit von O(n²). Eine besondere Rolle spielen hierbei absteigende Strips. Ist die Leserichtung bekannt, muss eine gerichtete Permutation sortiert werden. Dieses so genannte MINOSR-Problem kann ohne Approximationsalgorithmus in polynomieller Zeit gelöst werden. 5. Literatur [1] [2] H.-J. Böckenhauer, D. Bongartz: Algorithmische Grundlagen der Bioinformatik - Modelle, Methoden und Komplexität, B. G. Teubner Verlag, 2003, Abschnitt 10.1 und 10.2. P. Pevzner: Computational Molecular Biology – An Algorthmic Approach, MIT Press, 2000, Abschnitt 10.1.