Stringvergleiche in der Molekularbiologie

Werbung
Algorithmische Bioinformatik
Zeichenketten und Stringalgorithmen
Ulf Leser
Wissensmanagement in der
Bioinformatik
Inhalt dieser Vorlesung
• Warum Stringmatching?
– Von DNA zu Strings
– Genomsequenzierung
– Funktionale Annotation von Sequenzen
• Strings und Matching
• Naiver Algorithmus
Ulf Leser: Algorithmische Bioinformatik
2
Biomoleküle
• DNA, RNA und Proteine lassen sich als Zeichenketten über
einem festem Alphabet darstellen
DNA
ACGT
RNA
ACGU
Protein
ACDEFGHIKLMNPQRSTVWY
Ulf Leser: Algorithmische Bioinformatik
3
Sequenz - Funktion
• DNA
–
–
–
–
Genotyp
Vererbung
Regulation
Produktion von Proteinen
• Proteine
–
–
–
–
Phänotyp
Vielfältigste Funktionen
Struktur
Bindungsverhalten
Ulf Leser: Algorithmische Bioinformatik
4
Das menschliche Genom
• Mensch: 23 Chromosomenpaare
– ~ 3.000.000.000 Basen
• Chromosomen kann
man (noch) nicht direkt
und als Ganzes
sequenzieren
• Erste Aufgabe: Kurze,
stabile und kopierbare
Sequenzabschnitte
produzieren
Ulf Leser: Algorithmische Bioinformatik
5
Mapping und Sequenzierung
•
•
•
•
Zerlegung in Bruchstücke (Clonierung)
Berechnung aller Überlappungen
Bestimmung der wahrscheinlichsten Gesamtsequenz
Variante: Bestimmung des Minimum Tiling Paths
Ulf Leser: Algorithmische Bioinformatik
6
BAC Map, Chr.X 1-3 MB; http://www.sanger.ac.uk
Inhalt dieser Vorlesung
• Warum Stringmatching?
– Von DNA zu Strings
– Genomsequenzierung
– Funktionale Annotation von Sequenzen
• Strings und Matching
• Naiver Algorithmus
Ulf Leser: Algorithmische Bioinformatik
7
Clonieren
• Schneiden des Chromosoms
mit Restriktionsenzymen
– Länge hängt ab von
• Spezifität des
Restriktionsenzyms
• Länge der Behandlung
(„partieller Verdau“)
• Bruchstücke unterschiedlicher
Länge
• Auftrennen nach Länge
– Gelelektrophorese
• Clonierung in Bakterien
• Vervielfältigung
Ulf Leser: Algorithmische Bioinformatik
8
Sequenzierung
• Ergebnis der Clonierung
Vorher
•
•
•
•
Nachher
Gegeben: Clone unbekannter Sequenz
Gesucht: Sequenz
Unmöglich: Ansehen, Messen, Mikroskop, etc.
(Radioactive) Dideoxy Sequencing
– Auch „Sanger sequencing“
– Verfahren von Sanger et al., 1972
Ulf Leser: Algorithmische Bioinformatik
9
Heute (Gestern)
• Hochdurchsatz
• Sehr billig
– <10cent pro Base
Quelle: http://www.geneticsplace.com
Ulf Leser: Algorithmische Bioinformatik
10
Sanger Sequencing
• Voraussetzungen
– Sequenz hat einen definierten Anfang
• Teil des Clonierungsvektors
• Dient als Bindungsstelle für Primer
– Polymerase
• Bindet an doppelsträngigen Abschnitt
• Verlängert einsträngige DNA entlang des Templates
• Deoxy versus Dideoxy Nucleotide
– DNA besteht aus Deoxy Nucleotiden (dNTP)
– Einbau von Dideoxy Nucleotiden (ddNTP) möglich
– ddNTP stoppt Polymerase
Ulf Leser: Algorithmische Bioinformatik
11
Struktur eines DNA Strangs
Ulf Leser: Algorithmische Bioinformatik
12
dNTP versus ddNTP
dNTP
ddNTP
• Dideoxy-Base: keine freie OH Gruppe
– Werden mit “stochastischer Häufigkeit“ eingebaut
– Danach können keine weiteren Basen mehr angehängt werden
– Polymerase fällt ab
Ulf Leser: Algorithmische Bioinformatik
13
Schritt 1 und 2
• dNTP: ACGT
• Primer + Polymerase
• Fluoreszierend markierte ddNTP: ACGT
Ulf Leser: Algorithmische Bioinformatik
14
Schritt 3
Template
Primer
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
Polymerase
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
TGCTTGC
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
A
C ACT
A A
GA C
G
T
A
T
T
GCA C
G
G
C T GC T
G CT A
TG
Quelle: wikipedia.de
TGCTTGCGCTCAAT
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
TGCTTGCGCT
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
TGCTTGCTCTCAATC
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
TGCTTGCTCTCAATCAATCTG
ACGAACGCGAGTTAGTTAGACCAGTAGCCA...
TGCTTGCT
Ulf Leser: Algorithmische Bioinformatik
15
Schritt 4
Laser &
Detektoren
ACGAACGC
ACGAACGCG
ACGAACGCGAGTTA
ACGAACGCGA
ACGAACGCGAG
ACGAACGCGAG
ACGAACGCGAGTTAGTT
ACGAACGCGAGT
Gel / Kapillar
Elektrophorese
ACGAACGCGAGTTAGTTAGT
ACGAACGCGA
ACGAACGCGAGTT
ACGAACGCGAGTTA
ACGAACGCGAGGTTAG
Ulf Leser: Algorithmische Bioinformatik
16
Primäres Ergebnis
• „Aktuelle“ Geräte
– Kapillarelektrophorese
– Bis zu 96 parallele Kapillare
• Früher (original)
– Radioaktive Markierung
– 4 Mischungen (A,G,T,P)
– 4 Gele (Linien)
Ulf Leser: Algorithmische Bioinformatik
17
Ergebnis (Zwischenprodukt)
• Signalverarbeitung (Rauschen, ...)
• Übersetzung in Traces
– 4 Arrays, jedes für eine Farbe
– Intensitätswerte in regelmäßigen Zeitabschnitten
• Nächster Verarbeitungsschritt: „base calling“
– Peaks entdecken
– Base zuordnen und Qualität bewerten
– Schwierig
Ulf Leser: Algorithmische Bioinformatik
18
Vom Tracefile zur Sequenz
• Tracefiles sind Rohdaten der Sequenzierung
• Verschiedene Verfahren / Tools, um aus Trace-Files
Sequenzen zu berechnen
• Teilschritte
– Base Calling: Berechnung der Sequenz aus Peaks
– Assembly: Berechnung der wahrscheinlichsten ursprünglichen
Gesamtsequenz aufgrund der Bruchstücke
– Finishing: Füllen von Lücken durch gezieltes Nachclonieren /
Resequenzieren
Ulf Leser: Algorithmische Bioinformatik
19
Assembly
• Basis: Finden von Überlappungen von Sequenzen
• Redundanz ist
– Notwendig: Verbindung von Teilstücken nur durch Überlappungen
– Konfliktträchtig: Widersprüche, Mehrdeutigkeit
• Berücksichtigung von Sequenzierfehlern
• Approximation der wahrscheinlichsten Anordnungen
Fehler ?
tggacaagcaaagatta
acatttttgaac
gcaaagattgttg
tggacaagcaaagatta
acatttttgaac
gcaaagattgttg
Ulf Leser: Algorithmische Bioinformatik
20
Greedy Algorithmus?
accgttaaagcaaagatta
aagattattgaaccgtt
aaagcaaagattattg
attattgccagta
accgttaaagcaaagatta
aagattattgaaccgtt
aaagcaaagattattg
attattgccagta
accgttaaagcaaagatta
aagattattgaaccgtt
aaagcaaagattattg
attattgccagta
Ulf Leser: Algorithmische Bioinformatik
21
Abstrakte Formulierung
• SUPERSTRING
– Geg.: Menge S von Strings
– Ges.: String T so, dass
• (a) ∀s∈S: s∈T
(s Substring von T)
• (b) ∀ T‘, für die (a) gilt, gilt: |T| ≤ |T‘| ( T ist minimal)
• NP-vollständig (in der Zahl der Sequenzen)
• Assembly
– Verschärfungen von SUPERSTRING wegen Fehler in Sequenzen (s
„ungefähr Substring“ von T)
– Dazu kommt das teure Berechnen der paarweisen Überlappungen
Ulf Leser: Algorithmische Bioinformatik
22
Resultat
Ulf Leser: Algorithmische Bioinformatik
23
Problemdimension: Whole Genome Shotgun
• Zerbrechen von
kompletten Genomen in
Stücke 1KB-100KB
• Alle Stücke (an-)
sequenzieren
• Celera:
– Drosophila: Genom: 120 MB,
3.200.000 Reads
– Homo sap.: Genom: 3 GB,
28.000.000 Reads
• Schnelle Algorithmen
notwendig
Ulf Leser: Algorithmische Bioinformatik
24
Next Generation Sequencing
• Neue Gerätegeneration seit
ca. 2008 im kommerziellen
Betrieb
• Mehrere Hersteller (Illumina,
Roche, Solexa, …)
• Charakteristika
–
–
–
–
–
Aufreinigung, Zerbrechen, PCR bleiben gleich (teuer und langsam)
Viel höherer Durchsatz, Millionen von Experimenten parallel
Unterschiedliche Detektionssysteme mit jeweils anderen Fehlern
Meist deutlich kürzere Reads (35-200), davon viel mehr
De-Novo Assemblierung von Eukaryoten (noch) unmöglich
• Third generation: Single molecule sequencing
Ulf Leser: Algorithmische Bioinformatik
25
Next Generation Sequencing
Ulf Leser: Algorithmische Bioinformatik
26
Fehler?
• Sequenzieren mit NGS erzeugt kurze Reads
• Daher Read-Mapping gegen Referenzgenom
– Statt de-novo Genom-Assemblierung
• Problem: Mismatches können verschiedene Quellen haben
–
–
–
–
–
Fehler in den Reads
Fehler im Referenzgenom
Natürliche Variationen
(Krankheitsassoziierte) Mutationen
…
• Wenn das Material von mehr als einer Quelle kommt, kann
man Fehler nur schwer von tatsächlich vorhandenen
Abweichungen unterscheiden
Ulf Leser: Algorithmische Bioinformatik
27
Inhalt dieser Vorlesung
• Warum Stringmatching?
– Von DNA zu Strings
– Genomsequenzierung
– Funktionale Annotation von Sequenzen
• Strings und Matching
• Naiver Algorithmus
Ulf Leser: Algorithmische Bioinformatik
28
Funktionale Annotation
• DNA Sequenzen bestimmen Proteinfunktionen
– Gensequenzen => Proteinsequenz
– Proteinsequenzen => Struktur
– Struktur => Funktion
• Beobachtung (Grundpfeiler der Bioinformatik)
– Gleiche Sequenzen – gleiche Funktion
– Sehr ähnliche Sequenzen – sehr ähnliche Funktion
– Etwas ähnliche Sequenzen – verwandte Funktion?
• Insbesondere: Sequenzen aus verschiedenen Spezies
Ulf Leser: Algorithmische Bioinformatik
29
Standardvorgehen
• Gegeben: Eine frisch sequenzierte DNA Sequenz
• Annotationspipeline
–
–
–
–
Suche nach ähnlichen Gensequenzen
Suche nach ähnlichen Promotersequenzen
Suche nach ähnlichen Proteinen (Übersetzung- Rückübersetzung)
Vorhersage neuer Genen durch Programme
(trainiert auf bekannten Gensequenzen)
– Suche nach ähnlichen Proteindomänen durch Programme
(trainiert auf bekannten Proteindomänen)
– ...
• Alternative: Experimentelle Überprüfung
– Teuer, auch nicht fehlerfrei
– Ethische / technische Machbarkeit
Ulf Leser: Algorithmische Bioinformatik
30
Problemdimension
Ulf Leser: Algorithmische Bioinformatik
31
Inhalt dieser Vorlesung
• Warum Stringmatching?
– Von DNA zu Strings
– Genomsequenzierung
– Funktionale Annotation von Sequenzen
• Strings und Matching
• Naiver Algorithmus
Ulf Leser: Algorithmische Bioinformatik
32
Zeichenketten
• Definition
Ein String S ist eine von links nach rechts angeordnete
Liste von Zeichen eines Alphabets Σ
– |S| ist die Länge des Strings
– Positionen in S sind 1,...,|S|
• Wir zählen ab 1
– S[i] ist das Zeichen an der Position i im String S
– S[i..j] ist der Substring, der an Pos. i beginnt und an Pos. j endet
• S[i..j] ist ein leerer String, falls i > j
– S[1..i] heißt Präfix von S bis zur Position i
– S[i..] ist das Suffix von S, welches an Position i beginnt
– Echte Präfixe und echte Suffixe umfassen nicht den gesamten
String S und sind nicht leer
Ulf Leser: Algorithmische Bioinformatik
33
Problemklassen
• Exaktes Matching
– Gegeben: Strings P, T
– Gesucht: Alle Auftreten von P in T
– Variante: Gegeben P1,...,Pn, T: Vorkommen aller Pi in T?
• Approximatives Matchen
–
–
–
–
Gegeben: Strings S, T
Gesucht: Wie ähnlich sind sich S und T?
Variante: Ist S in T mit höchstens k Fehlern enthalten?
Variante: Gibt es einen Substring in T, der ähnlich zu S ist?
• Suche in Datenbanken
– Gegeben: Datenbank D von Sequenzen, String P
– Gesucht: Die Top-k zu P ähnlichsten Sequenzen in D
Ulf Leser: Algorithmische Bioinformatik
34
Exaktes Matching
• Gegeben: P (Pattern) und T (Text)
– Trivialerweise verlangen wir |P| ≤ |T|
• Gesucht: Sämtliche Vorkommen von P in T
• Beispiel: Erkennungssequenzen von Restriktionsenzymen
Eco RV - GATATC
tcagcttactaattaaaaattctttctagtaagtgctaagatcaagaaaataaattaaaaataatggaacatggcacattttcctaaactcttcacagattgctaatga
ttattaattaaagaataaatgttataattttttatggtaacggaatttcctaaaatattaattcaagcaccatggaatgcaaataagaaggactctgttaattggtact
attcaactcaatgcaagtggaactaagttggtattaatactcttttttacatatatatgtagttattttaggaagcgaaggacaatttcatctgctaataaagggattac
atatttatttttgtgaatataaaaaatagaaagtatgttatcagattaaacttttgagaaaggtaagtatgaagtaaagctgtatactccagcaataagttcaaataggc
gaaaaactttttaataacaaagttaaataatcattttgggaattgaaatgtcaaagataattacttcacgataagtagttgaagatagtttaaatttttctttttgtatt
acttcaatgaaggtaacgcaacaagattagagtatatatggccaataaggtttgctgtaggaaaattattctaaggagatacgcgagagggcttctcaaatttattcaga
gatggatgtttttagatggtggtttaagaaaagcagtattaaatccagcaaaactagaccttaggtttattaaagcgaggcaataagttaattggaattgtaaaagatat
ctaattcttcttcatttgttggaggaaaactagttaacttcttaccccatgcagggccatagggtcgaatacgatctgtcactaagcaaaggaaaatgtgagtgtagact
ttaaaccatttttattaatgactttagagaatcatgcatttgatgttactttcttaacaatgtgaacatatttatgcgattaagatgagttatgaaaaaggcgaatatat
tattcagttacatagagattatagctggtctattcttagttataggacttttgacaagatagcttagaaaataagattatagagcttaataaaagagaacttcttggaat
tagctgcctttggtgcagctgtaatggctattggtatggctccagcttactggttaggttttaatagaaaaattccccatgattgctaattatatctatcctattgagaa
caacgtgcgaagatgagtggcaaattggttcattattaactgctggtgctatagtagttatccttagaaagatatataaatctgataaagcaaaatcctggggaaaatat
tgctaactggtgctggtagggtttggggattggattatttcctctacaagaaatttggtgtttactgatatccttataaataatagagaaaaaattaataaagatgatat
Ulf Leser: Algorithmische Bioinformatik
35
Notation
• Wir suchen im Folgenden immer P in T
• Annahmen
–
–
–
–
–
–
|T| = m ≠ 0
|P| = n ≠ 0
m >> n
Alphabet Σ endlich
P, T sind Strings über Σ
Kosten für Vergleich zweier Zeichen aus Σ : 1
• Zur Komplexitätsanalyse zählen wir daher meistens nur die
Anzahl an Zeichenvergleichen
Ulf Leser: Algorithmische Bioinformatik
36
Übersicht
• Naiver Algorithmus: O(n*m)
• Z Algorithmus: O(m+n)
– Pre-Processing; wird auch in anderen Verfahren verwendet
• Boyer-Moore: Sublinear im Average Case
– Worst Case O(n*m), aber Average Case sublinear
– Erweiterung zu linearem Worst-Case möglich
• Knuth-Morris-Pratt: O(m+n)
– Benutzt Z-Box Preprocessing
– Voraussetzung für Aho-Corasick zur Suche nach mehreren Pattern
• Später: Indexstrukturen, z.B. Suffixbäume
– O(n+k) (nach Preprocessing: O(m))
Ulf Leser: Algorithmische Bioinformatik
37
Inhalt dieser Vorlesung
• Warum Stringmatching?
– Von DNA zu Strings
– Genomsequenzierung
– Funktionale Annotation von Sequenzen
• Strings und Matching
• Naiver Algorithmus
Ulf Leser: Algorithmische Bioinformatik
38
Naiver Ansatz
1. P und T an Position 1 ausrichten
2. Vergleiche P mit T von links nach rechts (innere Schleife)
–
–
Zwei ungleiche Zeichen ⇒ Gehe zu 3
Zwei gleiche Zeichen
•
•
P noch nicht durchlaufen ⇒ Verschiebe Pointer nach rechts, gehe zu 2
P vollständig durchlaufen ⇒ Merke Vorkommen von P in T
3. Verschiebe P um 1 Zeichen nach rechts (äußere Schleife)
4. Solange Startposition <= |T|-|P|, gehe zu 2
T
P
ctgagatcgcgta
gagatc
gagatc
gagatc
gagatc
gagatc
gatatc
gatatc
gatatc
Ulf Leser: Algorithmische Bioinformatik
39
Naiver Ansatz (cont.)
for i = 1 to |T| - |P| + 1
match := true;
j := 1;
while ((match) and (j <= |P|))
if (T[i+j-1] <> P[j]) then
match := false;
else
j++;
end while;
if (match) then
-> OUTPUT i
end for;
Worst-case
T
P
aaaaaaaaaaaaaa
aaaaat
aaaaat
aaaaat
aaaaat
...
Vergleiche : n * (m-n+1) => O(m*n)
Ulf Leser: Algorithmische Bioinformatik
40
Optimierungsidee 1
• Anzahl der Vergleiche reduzieren
– P um mehr als ein Zeichen verschieben
– Aber nie soweit, dass ein Vorkommen von P in T nicht erkannt wird
• Idee am Beispiel
T
P
xabxyabxyabxz
abxyabxz
abxyabxz
abxyabxz
• Vorkommen in T muss mit a beginnen
• Nächstes a in T erst an Position 6 – springe 4 Positionen
• Vorkommen von Buchstaben in T kann durch Preprocessing von
P gelernt werden
•
Bei Match sind P und T partiell gleich
Ulf Leser: Algorithmische Bioinformatik
41
Optimierungsidee 2
Beobachtung: Substrings
T
P
xabxyabxyabxz
abxyabxz
abxyabxz
abxyabxz
• abx ist doppelt in P - interne Struktur von P erkennen
– P[1..3] = P[5..7]
– Kein Vorkommen dazwischen
• Vergleich findet: P[1..7] = T[2..8]
• Daher
– P[1..3] = T[6..8]; zwischen 2 und 6 kann in T kein Treffer liegen
– 4 Zeichen schieben und erst ab Position 4 in P weiter vergleichen
Ulf Leser: Algorithmische Bioinformatik
42
Fazit
• Stringalgorithmen für viele Fragestellungen der
Bioinformatik essentiell
• Exakte und approximative Vergleiche
• Wegen großer Datenmengen ist hohe Performance wichtig
• Naiver Algorithmus für exaktes Matching braucht O(n*m)
Zeichenvergleiche
Ulf Leser: Algorithmische Bioinformatik
43
Herunterladen