Ausarbeitung

Werbung
Sequence Assembly
Gudrun Idrissou
Proseminar, 20.12.2010
1 Einleitung
Das Shotgun-Sequencing ist eine weitverbreitete Methode zur Sequenzierung von großen
DNA Stücken. Man zerteilt die in Vektoren amplifizierte DNA zufällig in Fragmente von
300-1000 bp, die man anschließend sequenziert (z.B. mit der Sanger-Sequenzierung). Danach
muss man die Fragmente unter Nutzung der Überlappungen wieder zusammenbauen. Diese
Aufgabe wird auch als Sequence Assembly oder Fragment Assembly bezeichnet.
Reale Probleme können DNA-Sequenzen von bis zu 2 Mb Länge enthalten, damit
müssen ca. 25.000 Fragmente zusammengebaut werden, wenn man z.B. von einer 8-fachen
Überdeckung der Ausgangssequenz ausgeht. Es ist daher sehr wichtig, effiziente Algorithmen
zur Lösung des Problems zu finden.
2 Biologische Randbedingungen
Abbildung 1 zeigt ein einfaches Beispiel.
ACCGT
CGTGC
TTAC
ACGGTA
--ACCGT-----CGTGC
TTAC-----TACCGT-_________
Überlappung
TTACCGTGC
Consensus Sequenz
Abbildung 1: Layout für 4 Fragmente
Das Problem wird aber noch durch folgende Randbedingungen erschwert:
Unbekannte Orientierung: Die DNA ist ein doppelsträngiges Molekül mit komplementären
Basen. Es ist nicht bekannt, von welchem der beiden Stränge die sequenzierten Fragmente
stammen. Das Fragment kann also entweder in der vorgegebenen Richtung oder als reverses
Komplement im Layout vorkommen. Potentiell ergeben sich daher bei n Fragmenten 2n
Kombinationen.
Fehler: Die Methode der Sequenzierung ist fehlerbehaftet, außerdem kann es bereits während
der Klonierung im Vektor zu Fehlern gekommen sein. Fehler können dabei BasenSubstitutionen, Insertionen und Deletionen sein. Durch Automatisierung der Sequenzierung
konnte eine deutliche Verringerung der Fehlerrate gegenüber den in [1] angegebenen 1-5%
erreicht werden. Der Algorithmus muss aber auf jeden Fall mit Fehlern umgehen können.
Kontaminierung und Chimeras: DNA wird durch Klonierung in einem Vektor amplifiziert.
Durch Rekombination bei der Klonierung oder durch Fehler beim Schneiden kann es dazu
kommen, dass die zu untersuchende DNA mit der Vektor-DNA kontaminiert ist. Diese
kontaminierten Fragmente müssen vor dem Erstellen des Layouts entfernt werden. Die
Erkennung ist durch ein Sequenz Alignment mit der bekannten Vektor-DNA möglich.
Komplizierter ist die Erkennung von Chimeras. Dies sind Rekombinationen von DNA-
2
Gudrun Idrissou
Stücken der Zielsequenz, die eigentlich nicht zusammengehören. Die Bereinigung muss
ebenfalls vor dem Assembly erfolgen und benötigt spezielle Algorithmen.
Repeats: Die DNA enthält aufgrund ihrer Evolution Regionen, die gleich oder annähernd
gleich sind. Solche Kopien können im gleichen Strang vorkommen, aber auch als invertierte
Kopien auf dem Gegenstrang liegen. Repeats stellen vor allem dann ein Problem dar, wenn
sie länger als die Fragmentlänge sind. Dann ist es oft ohne Zusatzinformation nicht möglich,
ein eindeutiges Layout zu erzeugen.
Lücken in der Abdeckung: Aus biologischen Gründen können nicht alle Teile eines
Chromosoms gleich gut sequenziert werden. Außerdem folgt aus der zufälligen Erzeugung
der Fragmente bei einer vorgegebenen Überdeckung, dass es Regionen mit besserer
Überdeckung, aber auch solche mit geringerer Überdeckung geben wird. Durch die Forderung
einer ausreichenden Überlappung der Segmente kann es zu zusätzlichen Lücken im Layout
kommen. Der Algorithmus soll in diesem Fall Layouts für die jeweils verbundenen Regionen
erzeugen, diese werden auch Contigs (contiguously covered regions) genannt.
3 Modelle
Es sollen zwei Modelle vorgestellt werden, mit denen man das Problem beschreiben kann.
3.1 Shortest Common Superstring
Gegeben sei die Menge F von Strings f.
Definitionen:
Ein String f ist ein Teilstring von String S, wenn f ein Intervall von aufeinander folgenden
Zeichen aus S enthält. S wird dann Superstring von f genannt. Ein String S ist ein Common
Superstring von F, wenn S ein Superstring für alle f ∈ F ist. Ein String S ist ein Shortest
Common Superstring (SCS) von F, wenn S ein Common Superstring mit minimaler
Gesamtlänge ist.
Beispiel:
Gegeben sei die Menge F durch F = {AT, CG, TC}. Die Fragmente f1=AT und f2=CG weisen
unterschiedliche Zeichen auf. Damit ist klar, dass die beiden Sequenzen S1=ATCG und
S2=CGAT den Shortest Common Superstring der Fragmente f1 und f2 darstellen. Da das
Fragment f3=TC in der Sequenz S1 bereits enthalten ist, ist S1=S=ATCG der Shortest
Common Superstring von F.
3.2 Reconstruction
Das Modell SCS kann Fehler und unbekannte Orientierung nicht abbilden. Es wird daher
erweitert:
Berücksichtigung von Fehlern: Das Fragment f muss jetzt nicht mehr ein exakter Teilstring
von S sein, sondern es werden Fehler zugelassen. Als Maß für die Bewertung von Fehlern
wird die Substring-Edit-Distanz ds(f, S) eingeführt. Sie basiert auf der klassischen EditDistanz, bewertet aber die Lücken am Ende des Fragments f nicht. Das Fragment f ist dann
ein ungefährer Teilstring von S mit Fehler-Level ε, wenn
, ||
0≤ε≤1
Unbekannte Orientierung: Das reverse Komplement von f wird mit bezeichnet.
3
Gudrun Idrissou
Das unter dem Namen Reconstruction bekannte Problem kann dann folgendermaßen
formuliert werden: Gesucht ist der kürzeste String S, bei dem für alle f ∈ F gilt:
min , , , ||
In diesem Modell noch nicht berücksichtigt werden Lücken in der Abdeckung, Repeats und
bekannte Gesamtlänge.
4 Algorithmen
4.1 Darstellung als Graph
Das Problem der Ermittlung des Common Superstrings kann man auch als Suche eines Pfads
in einem Graphen betrachten. Der Overlap-Multigraph OM(F) ist ein gerichteter, gewichteter
Graph mit multiplen Kanten. Die Knoten sind die Fragmente. Die Kanten sind die
Überlappungen zwischen den Fragmenten. Die Länge der Überlappung definiert das Gewicht
der Kante. Zwischen zwei Knoten kann es mehrere Kanten geben, z.B. habe die Fragmente
GATAT und ATATC sowohl eine Kante mit Überlappung 4 als auch mit Überlappung 2.
Außerdem werden zwischen allen Knoten in beiden Richtungen Kanten mit Gewicht 0
eingefügt. Damit wird sichergestellt, dass der Graph verbunden ist.
--ACCGT-----CGTGC
TTAC-----TACCGT-_________
ACCGT
2
3
1
TTAC
TTACCGTGC
5
1
CGTGC
1
3
1
3
TACCGT
Abbildung 2: Darstellung des Problems als Graph (Kanten mit Gewicht 0 nicht dargestellt)
Wie man in der Abbildung leicht sehen kann, entspricht ein Pfad im Graphen OM(F) einem
Superstring in dem Originalproblem. Die Umkehrung ist nicht immer gültig, da es unnötige
Zeichen im Superstring geben kann, die im Graphen keine Entsprechung haben.
In einem Shortest Common Superstring gibt es aber keine unnötigen Zeichen, ansonsten
wäre er ja nicht der kürzest-mögliche Common Superstring. Daher ist zu erwarten, dass für
jeden SCS ein entsprechender Hamiltonscher Pfad1 im Graphen OM(F) existiert. Durchläuft
man den Pfad und verknüpft die Sequenzen der Knoten mit Unterdrückung der Überlappung
(dies wird im Folgenden S(P) genannt), so erhält man die Sequenz des Shortest Common
Superstrings. Das soll im folgenden Abschnitt bewiesen werden.
Zunächst wird dafür angenommen, dass in F keine Strings enthalten sind, die Teilstring
eines anderen in F enthaltenen Strings sind. Das in Abbildung 1 dargestellte Fragment
ACCGT ist ein Teilstring von TACCGT und wird für die Erstellung des Common
Superstrings nicht benötigt. Man kann zeigen, dass man jeder Menge F eine eindeutige
Menge G zuordnen kann, die Teilstring-frei ist (Beweis s. [1]). Daher genügt es, die
folgenden Beweise für Teilstring-freie Mengen von Fragmenten durchzuführen.
1
Ein Pfad, der alle Knoten eines Graphen genau einmal enthält.
4
Definitionen:
String S
Gudrun Idrissou
S ist ein String des Alphabets {A, C, G, T}
L(f)
Der Index des linken Endpunkt des Fragments f in S, d.h. der
Startpunkt des Teilstrings in S.
R(f)
Der Index des rechten Endpunkt des Fragments f in S, d.h. der
Endpunkt des Teilstrings in S.
Intervall zu f in S
Ein Intervall [i..j] = [L(f)..R(f)] zu einem Fragment f aus S wird
definiert
über
die
Indizes
der
beiden
Endpunkte.
2
Es gilt 1 ≤ i ≤ j ≤ |S|.
Satz 1: Gegeben sei eine Teilstring-freie Menge F von Strings. Dann gilt für jeden Common
Superstring S für F: Es existiert ein Hamiltonscher Pfad P in OM(F), so dass S(P) eine
Teilsequenz3 von S darstellt.
Beweis: Da der String S ein Common Superstring von F ist, gibt es für jedes Fragment f ∈ F
ein Intervall [L(f)..R(f)] in S, so dass S[L(f)..R(f)] = f.
Es gibt in F keine zwei Fragmente mit dem gleichen Startpunkt, denn ansonsten wäre
einer der beiden Strings ein Teilstring des anderen. Daher kann man die Fragmente eindeutig
nach dem Startpunkt sortieren, so dass L(fi) < L(fi+1) gilt. Dann gilt auch für die rechten
Endpunkte R(fi) < R(fi+1). Das kann man leicht durch folgende Überlegung zeigen: Gäbe es
zwei Fragmente f und g in F, für die L(f) < L(g) und R(f) ≥ R(g), so wäre g ein Teilstring von f
und dies widerspricht der Voraussetzung der Teilstring-freien Menge F. Damit haben wir eine
Folge von Fragmenten (fi)i=1,…m erhalten, die nach Startpunkt und Endpunkt in aufsteigender
Reihenfolge sortiert sind. Die Folge der Fragmente entspricht dem Pfad P in OM(F). Da alle
Fragmente in der Folge enthalten sind, ist der Pfad P ein Hamiltonscher Pfad.
Zwischen zwei aufeinander folgenden Fragmenten fi und fi+1 für 1 ≤ i ≤ m-1 gibt es jetzt
folgende Szenarien:
a) Die beiden Fragmente überlappen, d.h. es gilt L(fi+1) < R(fi) + 1. Dann gibt es eine Kante
in OM(F) mit dem Gewicht R(fi) + 1 - L(fi+1).
b) Die beiden Fragmente überlappen nicht, aber sie grenzen direkt aneinander, d.h. es gilt
L(fi+1) = R(fi) + 1. Dann gibt es eine Kante in OM(F) mit dem Gewicht R(fi) + 1 - L(fi+1) =
0
c) Die beiden Fragmente überlappen nicht und sie grenzen auch nicht direkt aneinander, d.h.
es gilt L(fi+1) > R(fi) + 1. Dann existiert per Definition in OM(F) eine Kante mit Gewicht
0. Die Zeichen S[j] mit R(fi)+1≤ j ≤ L(fi+1) -1 werden im Graphen nicht berücksichtigt. Sie
sind daher in S, aber nicht in S(P).
Daher ist die im Graphen OM(F) durch den Pfad P definierte Sequenz S(P) eine Teilsequenz
von S.
Satz 2: Gegeben sei eine Teilstring-freie Menge F von Strings. Dann gilt für jeden Shortest
Common Superstring S für F: Es existiert ein Hamiltonscher Pfad P in OM(F), so dass
S(P)=S.
Beweis: Aus Satz 1 folgt, dass S(P) eine Teilsequenz von S ist, d.h. es gilt |S(P)| ≤ |S|.
Außerdem gilt: S(P) ist ein Common Superstring von F, da P ein Hamiltonscher Pfad ist. S ist
nach der Voraussetzung ein Shortest Common Superstring, also gilt |S(P)| ≥ |S|. Die beiden
Ungleichungen werden nur erfüllt, wenn |S(P)| = |S|.
2
Im Originaldokument wird ein Intervall mit 1 ≤ i ≤ j+1 ≤ |S|+1 definiert, um durch den Spezialfall i = j+1 den leeren String abzubilden.
Dies wird für diese Ausarbeitung aber nicht benötigt.
3
Eine Teilsequenz entsteht aus einer Sequenz durch Löschen von Zeichen. Im Gegensatz zum Teilstring muss eine Teilsequenz nicht aus
einem lückenlosen Intervall des Originalstrings bestehen.
5
Gudrun Idrissou
Damit wurde gezeigt, dass die Suche nach dem Shortest Common Superstring äquivalent ist
zu der Suche nach dem Hamiltonschen Pfad mit dem maximalen Gewicht in OM(F). Mit
dieser Erkenntnis kann man den Graphen vereinfachen: Man entfernt zwischen zwei Knoten
alle Kanten bis auf die Kante mit dem maximalen Gewicht. Denn einen Hamiltonschen Pfad,
der eine geringer gewichtete Kante benutzen würde, könnte man ja immer durch die Kante
mit dem maximalen Gewicht verbessern. Der neu entstandene Graph ist kein Multigraph
mehr. Er wird als Overlap-Graph OG(F) bezeichnet.
4.2 Greedy Algorithmus
Es ist bekannt, dass das Hamilton-Path-Problem zur Gruppe der NP-vollständigen Probleme
gehört.
Es existieren daher nur verschiedene Approximationen in polynomialer Zeit. Eine bekannte
Approximation ist der Greedy Algorithmus.
Hierbei werden Randbedingungen ausgenutzt, die für jeden Pfad in einem gerichteten
Graphen gelten: Von einem Knoten darf höchstens eine Kante hin- und wegführen. In dem
Pfad darf es keine Zyklen geben. Der Algorithmus kann textuell folgendermaßen beschrieben
werden:
1. Sortiere die Kanten nach dem Gewicht absteigend
2. Prüfe für jede Kante (f,g) nacheinander
• f hat noch keine ausgehende Kante
• g hat noch keine eingehende Kante
• f und g gehören nicht zur gleichen Komponente
Falls Prüfung positiv
− nimm die Kante in den Pfad P auf
− Verschmelze die Komponenten, zu denen f und g gehört haben
3. Stopp, wenn es nur noch eine Komponente gibt
Zur Implementierung benötigt man folgende Datenstrukturen: Je einen Vektor für die Zählung
der eingehenden und der ausgehenden Kanten der Knoten und eine geeignete Datenstruktur
zur Verwaltung der Komponenten (in [1] als „disjoint-set forest“ bezeichnet).
4.3 Azyklische Teilgraphen
Die Idee besteht darin, dass man durch ein geeignetes Vorgehen in der ShotgunSequenzierung ein „gutes“ Sampling herstellt. Durch das Erzeugen von vielen Fragmenten
erhält man eine hohe Überdeckung. Dadurch ist man in der Lage, für die Überlappung t einen
hohen Wert zu wählen und damit Zufallstreffer auszuschalten. Man erhält dann einen
Graphen, bei dem die aufeinander folgenden Fragmente mindestens eine Überlappung t
haben. Im günstigsten Fall ist der Graph verbunden, ansonsten erhält man mehrere
Teilgraphen.
Es wird in [1] gezeigt, dass es für Graphen (oder Teilgraphen), die diesen
Randbedingungen genügen, immer einen Hamiltonschen Pfad gibt. Nimmt man zusätzlich an,
dass der Overlap-Graph OG(F,t) azyklisch ist, so kann man weitere nützliche Eigenschaften
des Graphen beweisen:
1. Der Overlap-Graph OG(F,t) sei ein azyklischer Graph, in dem es einen Hamiltonschen
Pfad P gibt. Dann ist dieser Hamiltonsche Pfad eindeutig.
2. In einem solchen Graphen gibt es genau einen Knoten, der nur ausgehende Kanten hat
(dieser wird auch als Quelle bezeichnet). Es ist der Startknoten des Pfads P.
3. Entfernt man diesen Startknoten (und seine Kanten) aus dem Graphen, so ist der
verbleibende Pfad wieder azyklisch und hat einen eindeutigen Hamiltonschen Pfad.
Man kann außerdem zeigen, dass die Existenz von Zyklen im Overlap-Graph OG(F,t) immer
auf Repeats in S zurückzuführen sind. Der Umkehrschluss gilt nicht, trotz Repeats in S kann
6
Gudrun Idrissou
man einen Overlap-Graphen ohne Zyklen erhalten. Das ist abhängig davon, ob die Repeats in
„Vorwärts“- oder „Rückwärts“-Richtung überlappen und damit zufallsbedingt.
4.4 Topological Sorting
Der Algorithmus zum Finden eines Hamiltonschen Pfads in einem azyklischen, verbundenen
Graphen beruht auf den im vorigen Abschnitt dargestellten Eigenschaften dieser Graphen.
Man ermittelt in einer Schleife jeweils den Knoten im Overlap-Graph, der nur ausgehende
Kanten hat. Dann fügt man diesen Knoten in den Pfad P ein und entfernt ihn aus dem
Graphen. Der Algorithmus stoppt, wenn alle Knoten des Graphen in P enthalten sind.
5 Heuristiken
In Abschnitt 4 wurde gezeigt, dass es Modelle für das Problem des Fragment Assembly gibt.
Allerdings ist es nicht möglich, einige der relevanten biologischen Randbedingungen mit
diesen Modellen abzubilden. Hierzu gehören vor allem das Problem der Repeats, der Lücken
und der Berücksichtigung von zusätzlichen Informationen wie die ungefähre Länge von S und
bekannte Teilsequenzen (z.B. physikalische Karten des Genoms). Daher setzt man in der
Praxis Heuristiken ein, die das Problem in drei Teilschritten lösen.
1. Finden der Überlappungen
2. Erstellen eines Layouts
3. Ermitteln der Consensus-Sequenz
Finden von Überlappungen:
Hier besteht die Aufgabe darin, für alle gegebenen Fragmente die Überlappungen zu ermitteln
und Teilstrings zu eliminieren.
Man kann die Aufgabenstellung auch als multiples Alignment-Problem betrachten, in
dem Gaps und Substitutionen zugelassen sind. Eine zusätzliche Schwierigkeit besteht in der
unbekannten Orientierung. Eine Reduktion der Komplexität kann erreicht werden, wenn man
nur alle paarweisen Überlappungen betrachtet. Dabei kommt das Modell des semiglobalen
Alignments zum Einsatz, bei dem die Gaps am Ende der Überlappung nicht bestraft werden.
Dieses Problem kann dann mit dem „Dynamic Programming“ Ansatz gelöst werden.
In der Realität kann man oft nicht alle Paare von Fragmente prüfen, da die quadratische
Komplexität zu inakzeptablen Laufzeiten führt. Man kann dann nur alle „ähnlichen“
Fragmente prüfen (z.B. durch Einsatz einer Methodik wie in BLAST).
Erstellen eines Layouts:
Die Aufgabe besteht darin, einen Pfad im Overlap-Graphen zu finden. Dabei werden die
Fragmente, die approximative Teilstrings eines anderen Fragments sind, zunächst nicht
betrachtet, können aber als optionale Fragmente helfen, bei nicht eindeutigem Layout die
richtige Lösung zu finden. Zusatzinformationen, wie die ungefähre Gesamtlänge der Lösung
oder bekannte Stellen, sollen als Input genutzt werden.
Bei der Lösung der Aufgabe müssen sowohl Lücken als auch Repeats berücksichtigt
werden. Ein Indiz für die Identifikation von Repeats kann die ungewöhnlich hohe
Überdeckung an dieser Stelle sein, denn man kann davon ausgehen, dass die zufällig
erzeugten Fragmente eine in etwa gleichmäßige Verteilung innerhalb des Zielstrings S
genügen werden.
Ermitteln der Consensus-Sequenz:
Dieser Schritt wäre trivial, wenn keine Fehler im Alignment zugelassen wären. Die
Berücksichtigung von Fehlern ist bereits in Schritt 1 erfolgt, allerdings nur bei einem
paarweisen Alignment. Durch das Sampling mit hoher Überdeckung hat man jetzt an vielen
Stellen mehrere Fragmente als Input für die Consensus-Sequenz.
7
Gudrun Idrissou
Man kann jetzt entweder dem in Schritt 2 erstellen Layout folgen und dabei, falls
notwendig, lokale Optimierungen des Layouts durchführen. Oder man baut den Schritt als
Unterfunktion in das Erstellen eines Layouts ein.
6 Zusammenfassung
Das Problem des Zusammenbaus von Fragmenten zu einem Layout ist eine reale
Aufgabenstellung in der Genom-Sequenzierung. Sie ist immer dann zu lösen, wenn die
Methode des „Shotgun Sequencing“ angewendet wird. Der Algorithmus muss in der Lage
sein, wichtige biologische Gegebenheiten abzubilden, vor allem die unbekannte Orientierung
der Fragmente und das Vorhandensein von Fehlern in der Sequenz. Außerdem muss man das
Problem der Repeats berücksichtigen.
Algorithmen zur Lösung dieses Problem auf Basis von graphentheoretischen Modellen
sind im allgemeinen Fall NP-vollständig. Es gibt jedoch Spezialfälle, die in polynomialer Zeit
lösbar sind. Das Problem besteht aber darin, dass man nicht alle realen Anforderungen mit
den bestehenden Modellen abdecken kann.
Daher werden in der Praxis Heuristiken eingesetzt, die auf dem Modell des
semiglobalen Alignments aufsetzen und das Problem in mehreren Teilschritten lösen.
Literatur
[1]
J.Setubal, J.Meidanis: Introduction to computational molecular biology; Brooks/Cole
Publishing Company, 1997; Kapitel 4, S.105-142
Herunterladen