Algorithmische Bioinformatik Biologische Daten als Strings Ulf Leser Wissensmanagement in der Bioinformatik
Ziele für heute Wert von Reduktionismus: Genome als Strings Reinschmecken in Stringmatching Erster Algorithmus Ulf Leser: Algorithmische Bioinformatik 2
Inhalt dieser Vorlesung Warum Stringmatching? Von DNA zu Strings Genomsequenzierung Funktionale Annotation von Sequenzen Strings und Matching Naiver Algorithmus Ulf Leser: Algorithmische Bioinformatik 3
Biomoleküle DNA, RNA und Proteine lassen sich als Zeichenketten über einem festem Alphabet darstellen DNA A C G T RNA A C G U Protein A C D E F G H I K L M N P Q R S T V W Y Ulf Leser: Algorithmische Bioinformatik 4
Sequenz - Funktion DNA Genotyp Vererbung Regulation Produktion von Proteinen Proteine Phänotyp Struktur Bindungsverhalten Vielfältigste Funktionen Ulf Leser: Algorithmische Bioinformatik 5
Das menschliche Genom 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 6
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 7 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 8
Sequenzierung Gegeben: Bruchstücke unbekannter Sequenz Gesucht: Deren 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
dntp versus ddntp dntp ddntp Dideoxy-Base: keine freie OH Gruppe Werden mit lösungs-abhängiger Wahrscheinlichkeit eingebaut Danach können keine weiteren Basen mehr angehängt werden Ulf Leser: Algorithmische Bioinformatik 12
Schritt 1 und 2 dntp: ACGT Primer + Polymerase Fluoreszierend markierte ddntp: ACGT Ulf Leser: Algorithmische Bioinformatik 13
Primer Template Schritt 3 ACGAACGCGAGTTAGTTAGACCAGTAGCCA... Polymerase ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGC T C T C A C G G T A T A C T G A C A G T G C A A G C C T G ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGCGCTCAAT ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGCGCT ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGCTCTCAATC ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGCTCTCAATCAATCTG ACGAACGCGAGTTAGTTAGACCAGTAGCCA... TGCTTGCT Ulf Leser: Algorithmische Bioinformatik 14
Schritt 4 Laser & Detektoren ACGAACGCGAGTTA ACGAACGCGAG ACGAACGCGAGTTAGTT ACGAACGCGAGTTAGTTAGT ACGAACGCGA Gel / Kapillar Elektrophorese ACGAACGC ACGAACGCG ACGAACGCGA ACGAACGCGAG ACGAACGCGAGT ACGAACGCGAGTT ACGAACGCGAGTTA ACGAACGCGAGGTTAG Ulf Leser: Algorithmische Bioinformatik 15
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 16
Vom Tracefile zur Sequenz Peak-Detection: Von Farbitensitäten zu Peaks Base Calling: Berechnung der wahrscheinlichsten Sequenz Assembly: Berechnung der wahrscheinlichsten ursprünglichen Gesamtsequenz Finishing: Füllen von Lücken durch gezieltes Nachclonieren / Resequenzieren Ulf Leser: Algorithmische Bioinformatik 17
Traces Signalverarbeitung (Rauschen,...) Übersetzung in Traces 4 Arrays, jedes für eine Farbe Intensitätswerte entlang der Zeitachse Base calling Peaks entdecken (Abstände werden sukzessive kleiner) Base zuordnen und Qualität bewerten Wahrscheinlichkeit an jeder Position Ulf Leser: Algorithmische Bioinformatik 18
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 19
Greedy Algorithmus? accgttaaagcaaagatta aagattattgaaccgtt aaagcaaagattattg attattgccagta accgttaaagcaaagatta aaagcaaagattattg aagattattgaaccgtt attattgccagta accgttaaagcaaagatta aaagcaaagattattg aagattattgaaccgtt attattgccagta 29 Basen 39 Basen Ulf Leser: Algorithmische Bioinformatik 20
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 21
Finishing Geringe Abdeckung: Neuklonieren, Nachsequenzieren Ulf Leser: Algorithmische Bioinformatik 22
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 23
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 24
Next Generation Sequencing Ulf Leser: Algorithmische Bioinformatik 25
Read Mapping Sequenzieren mit NGS erzeugt kurze Reads De-Novo Assembly kaum möglich (repeats) Alternative: Read-Mapping gegen Referenzgenom Problem: Mismatches können verschiedene Quellen haben Fehler in den Reads Fehler im Referenzgenom Natürliche Variationen (Krankheitsassoziierte) Mutationen Abdeckung und Entropy der Position durch Reads, Häufigkeit der Base in einer Population, Qualität des Reads, Quality-Score der Base im Read, Ulf Leser: Algorithmische Bioinformatik 26
Inhalt dieser Vorlesung Warum Stringmatching? Von DNA zu Strings Genomsequenzierung Funktionale Annotation von Sequenzen Strings und Matching Naiver Algorithmus Ulf Leser: Algorithmische Bioinformatik 27
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 28
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 29
Problemdimension Ulf Leser: Algorithmische Bioinformatik 30
Inhalt dieser Vorlesung Warum Stringmatching? Von DNA zu Strings Genomsequenzierung Funktionale Annotation von Sequenzen Strings und Matching Naiver Algorithmus Ulf Leser: Algorithmische Bioinformatik 31
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 32
Problemklassen Exaktes Substring-Matching (Patternmatching, Matching) Gegeben: Strings P, T Gesucht: Alle Auftreten von P in T Variante: Gegeben P 1,...,P n, T: Vorkommen aller P i 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? Approximatives lokales Matching Gegeben: Strings S, T Gesucht (Read-Mapping): Substring in T, der ähnlich zu S ist? Variante (BLAST): Substring in T, der ähnlich zu Substring in S ist? Ulf Leser: Algorithmische Bioinformatik 33
Datenbank-Varianten Gegeben: Datenbank D von Sequenzen, String P Exaktes Substring-Matching: Alle d D, die P enthalten Approximatives Matchen: Alle d D, die zu P ähnlich sind Approximatives lokales Matching: Alle d D, die einen zu P ähnlichen Substring enthalten Top-K: Die k zu P ähnlichsten Sequenzen d D Lokales Top-K: Die k Sequenzen d D, die die k zu P ähnlichsten Substrings enthalten 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 Annahmen T = m 0 P = n 0 m >> n Alphabet Σ endlich P, T sind Strings über Σ Kosten für Vergleich zweier Zeichen aus Σ : 1 Komplexitätsanalyse: Anzahl an Zeichenvergleichen Manchmal auch Σ Ulf Leser: Algorithmische Bioinformatik 36
Übersicht Exaktes Matching Naiver Algorithmus: O(n*m) Z Algorithmus: O(m+n) Wird gerne in anderen Verfahren zum Pre-Processing verwendet Boyer-Moore: Sublinear im Average Case Worst Case O(n*m), aber Average Case sublinear Erweiterung zu linearem Worst-Case möglich (aber irrelevant) Knuth-Morris-Pratt: O(m+n) 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
??? Ulf Leser: Algorithmische Bioinformatik 39
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 40
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 41
Optimierungsidee 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 Vorkommen in T muss mit a beginnen T P xabxyabxyabxz abxyabxz abxyabxz abxyabxz Nächstes a in T erst an Position 6 springe 4 Positionen Vorkommen von Buchstaben in T durch Preprocessing lernen Naiv: Von T Besser: Von P Ulf Leser: Algorithmische Bioinformatik 42
Erweiterung auf 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 43
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 44
Selbsttest Anwendungen von Stringmatching auf biologischen Daten Wie funktioniert Sanger-Sequenzierung? Welche Fehlerquellen gibt es? Komplexität des Assembly-Problems inkl. Begründung? Average Case des naiven String-Matching Algorithmus? Ulf Leser: Algorithmische Bioinformatik 45