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