Der Celera Assembler
Transcription
Der Celera Assembler
Der Celera Assembler Christian Brandt Alexander Fehr Seminar Fortgeschrittene Algorithmische Bioinformatik Sommersemester 2005 Inhaltsverzeichnis 1 Einführung 1.1 Aufbau des Papers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 Theoretische Betrachtungen 2 3 Celera und der Assembler 3.1 Eingabedaten . . . . . 3.2 Screener . . . . . . . . 3.3 Overlapper . . . . . . 3.4 Unitigger . . . . . . . 3.5 Scaffolder . . . . . . . 3.6 Repeat Resolution . . 3.7 Consensus . . . . . . . 3.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 3 . 3 . 3 . 5 . 8 . 14 . 14 . 14 4 Statistiken 15 5 Fazit 15 i 1 Einführung Im Februar 2001 veröffentlichte das Human Genome Project (HGP) eine erste Sequenzierung und Analyse des menschlichen Genoms auf Basis des Clone-by-Clone Ansatzes. Zeitgleich veröffentlichte Celera Genomics unter der Führung von Craig Venter ihr Assembly des menschlichen Genoms, welches mit Hilfe der Whole Genome Shotgun Methode gewonnen wurde. Beiden Verfahren ist gemein, daß längere DNA-Sequenzen nur durch das Zusammensetzen kürzerer Sequenzen, dem sogenannten Assembly, ermittelt werden können. Dies folgt aus der, beiden Strategien zu Grunde liegenden, DNA-Sequenziermethode nach Sanger, welche maximal 1000 aufeinanderfolgene Basenpaare liefert. Bei der Clone-by-Clone Methode wird die DNA zunächst in größere Fragmente zerlegt, aus welchen dann eine physikalische Karte erstellt wird. Anschließend erfolgt die Auswahl einer minimalen, das Genom überdeckenden Teilmenge und die entsprechenden Fragmente werden shotgunsequenziert. Im Vergleich dazu erfolgt beim Whole Genome Shotgun (Abbildung 1) ein Zerlegen des gesamten Genoms bzw. eines gesamten Chromosoms in kürzere Fragmente, welche daraufhin (an)sequenziert werden. Die Einzelsequenzen werden dann beim Assembly zu einer Konsensussequenz zusammengefügt. Auf Grund der hohen Anzahl von Einzelsequenzen wird dafür ein leistungsfähiger Assembler benötigt. Abbildung 1: Whole Genome Shotgun Sequenzierung 1 1.1 Aufbau des Papers Dieses Paper umreißt das Problem des Assembly zunächst theoretisch. Anschließend beschreibt es den Assembler der Firma Celera, welcher sich in mehrere Phasen einteilen läßt. Dabei wird besonders ausführlich auf das Overlapping, Unitigging und Scaffolding eingegangen. Es werden mehrere Heuristiken und verschiedene Graphen vorgestellt. Die Erklärungen werden, wenn angebracht, von Beispielen begleitet. Anschließend folgt noch etwas Statistik am Beispiel des menschlichen Genoms. Die Darstellung des Verfahrens und viele der Abbildungen sind aus [Hus04] entlehnt. 2 Theoretische Betrachtungen Assembly läßt sich durch folgendes Problem beschreiben. Es sei eine Menge F = {f1 , f2 , . . . , fn } von Strings gegeben. Gesucht ist ein String S mit folgenden Eigenschaften: 1. Jedes fi ist Substring von S, ∀fi ∈ F : fi ∈ S 2. S ist minimal, ∀S 0 mit 1. gilt |S| ≤ |S 0 | Dieses Problem ist als Shortest Common Superstring bekannt. Es ist NP-vollständig. Im biologischen Kontext kommt verschärfend hinzu, daß die Sequenzen fehlerhaft sein können und stets zwei mögliche Orientierungen eines Fragmentes zu berücksichtigen sind. Außerdem ist es aus biologischer Sicht nicht immer sinnvoll eine minimale Sequenz zu ermitteln, da Fragmente aus repeathaltigen Regionen zu überkomprimierten“ Er” gebnissen führen können. Das und die kombinatorische Komplexitiät bewirken, daß das hier vorgestellte Verfahren stark heuristisch ist. 3 Celera und der Assembler Die Firma Celerea Genomics verfolgt, wie oben erwähnt, konsequent den Whole-Genome Shotgun Ansatz. Der dabei verwendete Assembler lässt sich nach [MSD+ 00] in mehrere, aufeinander aufbauende Stufen (Abbildung 2) einteilen, welche alle heuristisch sind. Das Abbildung 2: Die Phasen des Celera Assemblers Herzstück des Assemblers bildet der Greedy Path-Merging Algorithmus. 2 3.1 Eingabedaten Die Gewinnung der Sequenzfragmente geschieht mit Hilfe der Double Barrel“ Shot” gun Sequenzierung (Abbildung 3). Dabei wird ein Klon von beiden Seiten ansequenziert Abbildung 3: Double Barrel“ Shotgun Sequenzierung ” und man erhält ein sogenanntes Mate-Pair von Reads. Dabei verwendete Klone haben typische Längen von 2kb, 10kb, 50kb und 150kb und die sequenzierten Reads eine Durchschnittslänge von 550 Basen. Die ursprünglichen Reads werden daraufhin auf ein Intervall mit Basen 98%iger Sicherheit gekürzt. Die den gelesenen Basen zugeordneten Qualitätswerte werden im weiteren Prozeß nicht berücksichtigt. In den Reads enthaltene Teile von Klonierungs- oder Sequenzierungsvektoren werden ebenfalls radikal entfernt. Die verbleibenden Stücke hoher Qualität sind die Eingabe des Assemblers. Diese werden im folgenden als Fragmente“ ” oder Reads“ bezeichnet. ” 3.2 Screener Die Sequenzfragmente werden zunächst nach bekannten Repeats durchsucht. Fragmente, welche Repeatmuster enthalten, werden maskiert und später gesondert betrachtet. Die bereinigten Fragmente bilden die Eingabe für den nächsten Schritt. 3.3 Overlapper Der Overlapper sucht Überlappungen zwischen Fragmenten. Eingabe dieser Phase sind die beim Screening bereinigten Fragmente. Ausgegeben werden alle signifikanten Überlappungen zwischen den Reads. Für jedes Fragment fi ist also zu bestimmen, wie es mit irgendeinem anderen Fragment fj oder dessen reversen Komplement fj überlappt. Zwei beliebige Fragmente fi und fj können auf verschiedene Weise überlappen (Abbildung 4). Abbildung 4: Mögliche Überlappungen von Fragmenten 3 Das heißt sie überlappen an den Enden, eines ist im anderen enthalten oder sie überlappen nicht. Alignment durch dynamische Programmierung ist bei dieser großen Anzahl Fragmente zu langsam. Beim humanen Genom wären rund 27 Mio Reads paarweise zu vergleichen. Hier sind außerdem nur Überlappungen mit einem hohen Alignmentscore, das heißt mit mehr als 96% Identität, relevant. Daher wird ein BLAST-ähnlicher Seed-and-Extend“ ” Ansatz verfolgt (Abbildung 5). Abbildung 5: Suche nach Seeds Alle Fragmente werden zunächst konkateniert, sei also H = f1 f2 . . . fn . Anschließend sucht man für alle Fragmente fi exakte Matches der k-mere von fi auf der Sequenz H, die sogenannten Seeds. Der Parameter k wird hier zwischen 18 und 22 gewählt. Nun versucht man die Seeds durch Banded Alignment zu erweitern. Die Laufzeit ist linear und nur wirklich gute Überlappungen zwischen fi und dem entsprechenden fj werden gefunden (Abbildung 6). Abbildung 6: Erweiterung eines Seeds durch Banded Alignment Wurde eine Überlappung zwischen fi und fj gefunden, kann das drei Ursachen haben. Die Fragmente überlappen tatsächlich auf der Originalsequenz wie f1 und f2 in Abbildung 7, die Enden der Fragmente stammen aus sich wiederholender Sequenz (Repeat) wie f3 und f4 in Abbildung 7 oder die Sequenzgleichheit ist rein zufällig. Letzteres wird dadurch vermieden, daß nur Überlappungen einer Länge von mindestens 40bp betrachtet werden. Die durch Repeats erzeugten Overlaps können vermieden werden, indem man vorher die Fragmente penibel nach bekannten Repeats screent und maskiert oder indem man k fest wählt, für jedes k-mer die Häufigkeit bestimmt und extrem oft auftretende k-mere ignoriert. Die berechneten Überlappungen zwischen den Fragmenten werden nun in einem Gra- 4 Abbildung 7: Wahre und falsche Overlaps phen repräsentiert. Der Overlap Graph wird wie folgt definiert: für jedes Fragment fi gibt es zwei Knoten, einen Startknoten si , einen Endknoten ei und eine gerichtete Kante (si , ei ), um die Orientierung des Reads darzustellen. Jede Überlappung wird durch eine ungerichtete Kante dargestellt. Die Overlap-Kanten inzidieren mit Knoten an den Enden, an denen die entsprechenden Fragmente überlappen (Abbildung 8). Abbildung 8: Overlap und Overlap-Kante Die Länge einer Kante ist die negative Länge der Überlappung. Das heißt, große Überlappungen bedeuten kurze Kanten. Im folgenden Beispiel sei F = {f1 , f2 , . . . , f7 } die Menge der Fragmente mit Überlappungen wie in Abbildung 9. Abbildung 9: Overlaps im Beispiel Hier überlappen die ersten 40 Basen von Read f1 mit den ersten 40 Basen von f4 , die letzten 300 Basen von f1 mit den ersten von f6 und so fort. Mit der Definition ergibt sich daraus der Overlap Graph in Abbildung 10. 3.4 Unitigger Der Unitigger nutzt den Overlap Graph, um die Fragmente zunächst anzuordnen, das heißt allen Knoten Koordinaten zuzuweisen (Layout). Als Eingabe dienen die Überlappungen zwischen Fragmenten aus der Overlap-Phase. Eine einfache, auch hier verwendete Heuristik ist die des spannenden Waldes. Zunächst werden alle Read-Kanten markiert. Die Overlap-Kanten sortiert man aufsteigend nach Länge und fügt solange die kürzesten Kanten hinzu, bis in jeder Zusammenhangskom- 5 Abbildung 10: Overlap Graph im Beispiel ponente ein spannender Baum entstanden ist. Overlap-Kanten, die einen Kreis schließen würden, werden ignoriert. Im Graph aus dem vorigen Beispiel beginnt man mit der Kante (e3 , e4 ), die mit -420 die kürzeste“ ist. Die Kanten der Längen -300, -280, -260 und -200 kommen dazu. Die ” Kante mit l = −180 würde einen Kreis schließen. Mit der Kante der Länge -140 ist der Spannbaum fertig (Abbildung 11). Abbildung 11: Spannbaum im Beispiel Aus dieser Teilmenge der Kanten ergibt sich eine relative Anordnung der Reads dieser Zusammenhangskomponente. An der Achse in Abbildung 12 stehen die, den Start- und Endknoten zugeordneten, Koordinaten. Solch ein vermeintliches Multialignment heißt Contig. Abbildung 12: Anordnung der Fragmente im Beispiel Durch Repeats erzeugte falsche Overlap-Kanten können zum falschen Zusammensetzen eines Contig (Misassembly) führen. Aus folgender Situation: 6 ergibt sich dieser Overlap Graph: Ein Spannbaum, der die falsche Kante e enthält, würde eine falsche Anordnung der Reads erzeugen. Läßt man die falschen Kanten außer Acht ergibt sich natürlich die richtige Anordnung. Es gibt aber in diesem Fall kein Layout, das mit allen gefundenen Überlappungskanten konsistent ist. Daher definiert man: Ein Unitig (unique contig) ist ein Contig, das mit allen Kanten des Overlap Graphen konsistent ist. Reads, die nicht zu einem Unitig gehören, werden im folgenden nicht verwendet. Nun kann es vorkommen, daß ein längeres Stück Sequenz wiederholt auftritt. Das führt dazu, daß ein Contig mit allen Überlappungskanten des Overlap Graphen konsistent ist, dessen Fragmente aber nicht aus einer einzigartigen Region der Ursequenz stammen. Man definiert weiterhin: Ein U-Unitig (unique unitig) ist ein Unitig, das einzigartig auf der Ursequenz ist, also nicht teilweise oder vollständig in einer sich wiederholenden Region liegt. U-Unitigs werden mit Hilfe statistischer Betrachtungen identifiziert. Es wird angenommen, die Ankunft der Fragmente wäre poissonverteilt. Sei R die Anzahl Reads, G die Länge der Ursequenz und u die Länge eines Unitigs. Dann ist R/G die durchschnittliche Anzahl Reads pro Base und λ = u·R G die erwartete Anzahl Reads pro Unitig (Erwartungswert). Die Wahrscheinlichkeit, daß ein Unitig k Fragmente enthält, ist mit k der Poisson-Verteilung P (X = k) = λk! e−λ (linke Kurve in Abbildung 13). Entstand das Unitig aus den Reads zweier Repeats, verdoppelt sich der Erwartungswert und die k −(2λ) (rechte Kurve in Abbildung 13). Wahrscheinlichkeit ist P = (2λ) k! e Der natürliche Logarithmus des Quotienten dieser beiden Wahrscheinlichkeiten heißt Ankunftsstatistik. ! λk −λ e = ln(2−k eλ ) = λ − k ln(2) ln (2λ)k!k −(2λ) e k! Ein Unitig wird U-Unitig genannt, wenn seine Ankunftsstatistik einen Wert größer 10 annimmt. In Abbildung 14 heißt das, daß ein Unitig aus höchstens 140 Fragmenten bestehen darf, um noch als U-Unitig zu gelten. Besteht es aus mehr Reads, ist es wahrscheinlich nicht einzigartig. Für die Abbildungen wurde angenomen R = 27 Mio, G = 3Gb und u = 12kb. 7 Abbildung 13: Zwei Poisson-Verteilungen Abbildung 14: Ankunftsstatistik 3.5 Scaffolder Der Scaffolder verbindet mehrere Unitigs zu sogenannten Scaffolds. Eingabe dieser Phase sind die gerade identifizierten Unitigs und die Mate-Pair-Informationen. Ein Mate-Pair sind zwei Fragmente, die beim Double Barrel“ Shotgun Sequenzieren ” eines Klons gewonnen werden. Ihre ungefähre Distanz µ ist mit Standardabweichung σ aus der Länge des Klons (2kb, 10kb, 50kb bzw. 150kb) bekannt. Weiterhin kennt man die relative Orientierung der Reads (Abbildung 15). Abbildung 15: Ein Mate-Pair Beim Whole Genome Shotgun reicht es wegen der hohen Anzahl Fragmente nicht aus, nur Überlappungen zu betrachten. Um die Contigs anzuordnen und zu orientieren, werden Mate-Pairs genutzt, die diese Contigs überspannen. Aus ihrem näherungsweise bekannten Abstand und der Position des jeweiligen Reads im Contig kann auf den Abstand der Contigs geschlossen werden. Ein Scaffold ist eine Anordnung der Contigs mit Hilfe von Mate-Pairs (Abbildung 16). Abbildung 16: Ein Scaffold Die Abstände zwischen Contigs können mit Hilfe der sie verbindenden Mate-Pairs berechnet werden. Seien zwei Contigs c1 und c2 durch die Mate-Pairs m1 , m2 , . . . , mk verbunden. Jedes Mate-Pair mi = (li , σi ) kann als Abstandsmessung zwischen den Contigs mit Standardabweichung verstanden werden. Der Abstand l zwischen den Contigs ergibt sich dann als das gewogene Mittel der Einzelmessungen: 8 l= k X i=1 ! gi li / k X i=1 ! gi v u k uX 1 mit der Standardabweichung σ = 1/t gi , wobei gi = 2 . σi i=1 Es ist möglich, daß aus den Mates zwischen zwei Contigs Abstände gefolgert werden können, die sich stark unterscheiden. Man sagt, zwei Mate-Pairs bestätigen sich, wenn sie gleiche Orientierung und ähnlichen Abstand der Contigs zur Folge haben. Die Abstände ähneln sich, wenn beide in der 3σ-Umgebung des jeweiligen Partners liegen. Ein einzelnes Mate-Pair zwischen zwei Contigs, nicht notwendigerweise Unitigs, kann fehlerhaft sein und ist nicht signifikant. Bei der Sequenzierung des Drosophila-Genoms [MSD+ 00] waren 10 - 20% der Mate-Pair-Informationen wegen lane tracking“ Proble” men in den Sequenziermaschinen fehlerhaft. Bestätigen sich mehrere Mate-Pairs zwischen U-Unitigs, so erzeugen diese allerdings ein verläßliches Scaffolding. Ein weiterer Graph wird eingeführt, um die Anordnung zu repräsentieren. Im ursprünglichen Contig-Mate-Graph gibt es für jedes Contig ci die zwei Knoten si und ei und eine gerichtete Kante dazwischen. Jedes Mate-Pair wird durch eine ungerichtete Mate-Kante repräsentiert. Mit welchen Knoten der Contigs die Kante inzident ist, hängt von der durch das Paar induzierten Ausrichtung der Contigs zueinander ab (Abbildung 17). Abbildung 17: Mate-Kanten im Contig-Mate-Graph Das Gewicht einer Kante entspricht hier der Evidenz, die für diese Kante spricht. Die Anzahl Mate-Kanten, die eine Kante bestätigen, wird als Gewicht gewählt. Außerdem ist jeder Kante e eine Länge l(e) mit Standardabweichung σ(e) zugeordnet, die dem berechneten Abstand der Contigs entspricht. Der Contig-Mate-Graph wird nun noch ein wenig vereinfacht. Beim Edge-Bundling werden heuristisch Mate-Kanten verschmolzen. Bestätigen sich zwei Mates, das heißt sind die Längen in ihrer gegenseitigen 3σ-Umgebung, so können sie durch eine neue Kante mit der Summe der beiden alten Gewichte ersetzt werden. Die Länge und Standardabweichung werden wieder über das gewogene Mittel berechnet. In Abbildung 18 links sind sich bestätigende Mate-Kanten nahe beieinander gezeichnet. Jede Kante habe hier das Gewicht w = 1. Rechts sieht man den Graphen nach dem Edge-Bundling mit den neuen Gewichten. Bei der transitiven Kantenreduktion werden bestimmte lange Mate-Kanten auf alternierende Pfade aus Contig- und Mate-Kanten reduziert. In Abbildung 19 links wird die Mate-Kante m1 durch die Kanten m3 , m4 und das Contig der Länge l = 2000 dazwi- 9 Abbildung 18: Edge-Bundling schen bestätigt. Die Kantengewichte seien die selben wie in Abbildung 18. Rechts ist der Graph nach der Reduktion mit neuen Gewichten zu sehen. Abbildung 19: Transitive Kantenreduktion Im folgenden wird angenommen, daß der Contig-Mate-Graph wie beschrieben modifiziert wurde. Die Reihenfolge und Orientierung der Contigs wird durch eindimensionale Koordinaten für jeden Knoten festgelegt. Es gibt also eine Funktion Φ : V → N, die jedem Anfangs- und Endknoten eine Zahl zuordnet, die seiner Position im Scaffold entspricht. Dabei muss die Länge der Contigs erhalten bleiben |Φ(si ) − Φ(ei )| = l(ci ). Der Graph in Abbildung 20 links ermöglicht beispielsweise die Anordnung rechts. Abbildung 20: Contig-Mate-Graph mit möglichen Koordinaten Eine Mate-Kante heißt happy, wenn sie die richtige Orientierung, Länge und Abstand der Contigs in Bezug auf Φ bedingt. Für eine happy Mate-Kante e = (v, w) mit den inzidenten Contig-Kanten c1 = (v 0 , v) und c2 = (w, w0 ) (siehe Abbildung 21) muß also entweder gelten: 1. Φ(v 0 ) ≤ Φ(v) ∧ |Φ(w) − Φ(v) − l(e)| ≤ 3σ(e) ∧ Φ(w) ≤ Φ(w0 ) oder 2. Φ(w0 ) ≤ Φ(w) ∧ |Φ(v) − Φ(w) − l(e)| ≤ 3σ(e) ∧ Φ(v) ≤ Φ(v 0 ) . Sonst heißt sie unhappy. Analog dazu sind happy Mate-Pairs definiert. 10 Abbildung 21: Eine glückliche Mate-Kante? Das Contig-Matepair Ordering Problem (oder Contig Scaffolding Problem) besteht darin, eine Reihenfolge und Orientierung der Contigs zu finden, welche die Summe der Gewichte der happy Mate-Edges maximiert. Es ist NP-vollständig, wie man durch Reduktion auf BANDWIDTH zeigen kann [Hus04]. Eine Spanning-Tree Heuristik, wie im Overlap Graph, arbeitet hier sehr schlecht, da falsche Mate-Kanten zu einer fehlerhaften Verschränkung von Contigs aus möglicherweise weit entfernen Regionen führen können (siehe Abbildung 22). Abbildung 22: Falsche Mate-Kante Hier wird eine andere Heuristik bemüht, der Greedy Path-Merging Algorithmus. Da anfangs nicht die exakten Koordinaten der Knoten interessieren, können Reihenfolge und Orientierung auch wie folgt dargestellt werden. Sei G = (V, E) der Contig-Mate-Graph, dann ist eine Menge S ⊆ E ein Scaffolding, wenn jede Contig-Kante in S markiert ist und jeder Knoten von Kanten in S mit höchstens zwei Kanten inzidiert. Das Scaffolding ist also eine Sammlung markierter Pfade, die sich nicht schneiden. Der Greedy Path-Merging Algorithmus löst heuristisch das Contig-Matepair Ordering Problem. In einem bottom up“-Verfahren wird ein stets gültiges Scaffolding S ⊆ E ” verwaltet und modifiziert. Am Anfang sind lediglich alle Contig-Kanten c1 , c2 , . . . , ck markiert. Der Graph besteht aus k markierten Pfaden P1 = (c1 ), . . . , Pk = (ck ). Die Mate-Kanten werden nach Gewicht sortiert und in absteigender Reihenfolge bearbeitet. Liegen die Knoten der Mate-Kante e = (v, w) auf dem selben Pfad, ist nichts zu tun. Liegen v und w auf verschiedenen Pfaden Pi und Pj , wird versucht die Pfade zu verschmelzen (merge), um so einen neuen Pfad P zu erhalten. Das Verschmelzen ist nur erfolgreich, wenn die Zahl der happy Mate-Kanten H(G) dabei stärker wächst als die der unhappy Mate-Kanten U (G). Während des Algorithmus wird die Reihenfolge der Contigs teilweise durch neue, gefolgerte“ Kanten repräsentiert. ” Eingabe des Algorithmus ist der Contig-Mate-Graph G. Ausgabe ist eine Menge markierter disjunkter Pfade, die eine Anordnung der Contigs definiert. Der hier wiedergegebene Pseudocode ist vollständig aus [HRM02] entnommen. 11 begin Select all contig edges for each mate-edge e in descending order of weight: if e is not selected: Let v, w denote the two nodes connected by e Let P1 be the selected path incident to v Let P2 be the selected path incident to w if P1 6= P2 and we can merge P1 and P2 (guided by e) to obtain P : if H(P ) − (H(P1 ) + H(P2 )) ≥ U (P ) − (U (P1 ) + U (P2 )): Replace P1 and P2 by P end Für zwei markierte Pfade P1 und P2 und eine nicht markierte Kante e läuft das Verschmelzen wie folgt ab. Betrachte zunächst Kante e im ersten Bild. Es wird versucht die Pfade erst in die eine und dann ab Kante h in die andere Richtung zu verschränken. Die Länge der Kante e suggeriert, daß c13 Contig c13 passt zwischen c23 und c24 . zwischen c23 und c24 liegt. Gefolgerte“ Kanten werden eingeführt. Sie Den neuen Kanten wird l und σ zugewiesen. ” verbinden c13 mit seinen neuen Nachbarn. Es geht weiter mit der markierten Kante. Am rechten Ende angekommen, wird jetzt Das Reißverschlußverfahren war erfolgversucht die Pfade mit Hilfe von Kante h reich. Die Contigs aus P1 und P2 wurden nach links zu verschränken. im neuen Pfad P integriert. Die Methode merge ist also erfolgreich, wenn ein neuer Pfad ohne Widersprüche gebildet werden konnte. Sie schlägt fehl, wenn aus der berechneten Position eines Contigs ci folgt, daß es mit einem anderen Contig cj überlappt, aber zwischen ci und cj kein Alignment ausreichender Qualität existiert. Im folgenden soll der gesamte Algorithmus an einem Beispiel angewandt werden. 12 Contig-Mate-Graph nach EdgeBundling und transitiver Kantenreduktion. Alle Contig-Kanten werden markiert. Die Kante mit dem höchsten Gewicht (w = 5) verbindet c2 und c3 . Die nächste Kante mit w = 5 verbindet c1 und c4 . Es gibt jetzt zwei Pfade. Die Kante mit w = 4 ordnet c1 zwischen c3 und c2 an. Eine neue Kante der Länge -200 wird gefolgert. Es geht mit der Kante des Gewichtes w = 2 weiter. Sie bestätigt die bisherige Anordnung. Im Beispiel erhält man am Ende das Scaffolding (c4 , c2 , c1 , c3 ). Es wird angenommen, daß der Anfang von c1 mit dem reversen Komplement des Anfangs von c2 ausreichend gut überlappt. Die Koordinaten könnten dann wie in Abbildung 23 zugewiesen werden. Abbildung 23: Endanordnung der Contigs im Beispiel 13 3.6 Repeat Resolution Die Scaffolds enthalten nach dem vorherigen Schritt noch Lücken zwischen den Contigs. In diesem Schritt wird versucht diese Gaps zu schließen. Als Eingabe werden neben den Scaffolds auch beim Screening maskierte Fragmente, non-unique Unitigs, ungenutzte Überlappungen und Mate-Pairs verwendet. Seien u1 und u2 Unitigs, die durch eine sichere Mate-Kante m miteinander verbunden sind. Man versucht nun mit verschiedenen Heuristiken u1 und u2 in Richtung der Lücke zu erweitern. Alle Fragmente, die mit u1 oder u2 überlappen, und alle Mate-Pairs, die in die Lücke hineinreichen, werden in Betracht gezogen, um sie zu schließen (Abbildung 24). Abbildung 24: Repeat Resolution Findet man eine Kette von sich überlappenden Fragmenten, welche die Lücke überspannt und in sich nicht widersprüchlich ist, das heißt kann man das Gap erfolgreich schließen, so werden die Unitigs verschmolzen. Es enstehen bessere“ Scaffolds, da sie größere Contigs enthalten und die Gaps kleiner ” sind. 3.7 Consensus Mit den gewonnenen Informationen über die Lage der Reads wird heuristisch ein Multialignment ermittelt. Die Konsensussequenz ist das Ergebnis dieser Phase und, zusammen mit den Scaffolds, das Ergebnis des gesamten Assembly-Prozesses. 3.8 Zusammenfassung Mit einem Seed-and-Extend Ansatz werden Überlappungen zwischen den bereinigten Fragmenten gesucht. Daraus wird der Overlap Graph konstruiert. Eine Spanning-Forest Heuristik setzt die Fragmente zu Unitigs zusammen. Diese wiederum werden vom Greedy Path-Merging Algorithmus mit Hilfe der Mate-Pair-Informationen und dem ContigMate-Graph zu Scaffolds arrangiert. Die Lücken zwischen den Contigs können eventuell mit bisher ungenutzten Fragmenten und Mate-Pairs heuristisch gefüllt werden. Am Ende wird die Konsensussequenz durch ein Mulialignment aller Fragmente über den gefundenen Scaffolds berechnet. 14 4 Statistiken Laut [Hus04] ergaben sich 2001 folgende Werte für ein Whole Genome Shotgun Assembly des menschlichen Genoms bei Celera. Die Eingabe bilden 27 Mio Fragmente, welche eine durchschnittliche Länge von 550bp haben und wovon 70% Mate-Pairs sind. Davon stammen 5 Mio Paare aus Klonen der Länge 2kb, 4 Mio aus 10kb-Klonen, 0,9 Mio aus 50kb-Klonen und 0,35 Mio aus 150kb-Klonen. Der Celera Assembler benötigt die in Tabelle 1 angegebenen Ressourcen. Screener Overlapper Unitigger Scaffolder Repeat Res. Consensus Total CPU-Stunden 4800 12000 120 120 50 160 ≈18000 2-3 Tage auf 10-20 Computern 10 Tage auf 10-20 Computern 4-5 Tage auf 1 Computer 4-5 Tage auf 1 Computer 2 Tage auf 1 Computer 1 Tag auf 10-20 Computern Max. Speicher 2GB 4GB 32GB 32GB 32GB 2GB Tabelle 1: Ressourcen beim Assembly des menschlichen Genoms Die Größe des menschlichen Genoms beträgt 3Gb. Das Assembly besteht aus 6500 Scaffolds und umfasst 2,8Gb Sequenz. Die Gesamtsequenz enthält 150000 Gaps, welche insgesamt 148Mb ausmachen. Das menschliche Genom besteht nach [Cas01] aus mindestens 50% nichtkodierenden, repetetiven Sequenzen. 5 Fazit Assembly ist schon in der Theorie ein sehr schwieriges Problem, insbesondere jedoch unter Berücksichtigung der biologischen Wahrheit. Dem kann man sich, wie am Beispiel des Celera Assemblers gezeigt wurde, durch Heuristiken nähern. Eine Garantie für die Richtigkeit der gefundenen Lösung gibt es nicht. Die zahlreich vorhandenen Repeats mit ihren verschiedenen Größen und Häufigkeiten stellen während des gesamten Prozesses ein nicht zu unterschätzendes Problem dar. Sie sind auch der Grund für die vielen Gaps in der Endsequenz. Es bleibt noch zu erwähnen, daß die tatsächliche Implementation des Celera Assemblers in Wirklichkeit um einiges komplizierter und trickreicher ist, als hier dargestellt wurde. 15 Literatur [Cas01] Denise Casey. Human Genome Working Draft: First-Edition Travel Guides. Human Genome News, 11(3-4):3–4, 2001. [HRM02] Daniel H. Huson, Knut Reinert, and Eugene W. Myers. The Greedy PathMerging Algorithm for Contig Scaffolding. Journal of the ACM, 49(5):603– 615, 2002. [Hus04] Daniel Huson. Vorlesungsskript Algorithms in Bioinformatics II: Kapitel Genome Assembly. http://www-ab.informatik.uni-tuebingen.de/ teaching/ss04/abi2/welcome.html, 2004. [MSD+ 00] Eugene W. Myers, Granger G. Sutton, Art L. Delcher, Ian M. Dew, Dan P. Fasulo, et al. A Whole-Genome Assembly of Drosophila. Science, 287(5461):2196–2204, 2000. 16