Algorithmische Bioinformatik



Ähnliche Dokumente
Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Algorithmische Bioinformatik

Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Bioinformatik. Z-Box Algorithmus Preprocessing eines Strings. Ulf Leser Wissensmanagement in der. Bioinformatik

DNA Sequenzierung. Transkriptionsstart bestimmen PCR

1. Erklären Sie das Prinzip der Sanger Sequenzierung. Klären Sie dabei folgende Punkte: a) Welche besondere Art von Nukleotiden wird verwendet und

Primzahlen und RSA-Verschlüsselung

Grundlagen der Theoretischen Informatik, SoSe 2008

Erwin Grüner

Grundbegriffe der Informatik

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Das Briefträgerproblem

Neue DNA Sequenzierungstechnologien im Überblick

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Konzepte der Informatik

Sequenziertechnologien

R ist freie Software und kann von der Website.

Homologie und Sequenzähnlichkeit. Prof. Dr. Antje Krause FH Bingen / akrause@fh-bingen.de

Genomsequenzierung für Anfänger

Biologie I/B: Klassische und molekulare Genetik, molekulare Grundlagen der Entwicklung Theoretische Übungen SS 2014

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Genetik - The Human Genome Project. Überblick über die Genetik. Die gesamte Erbinformation eines Menschen befindet sich in jedem Zellkern

Simulation LIF5000. Abbildung 1

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Kulturelle Evolution 12

Professionelle Seminare im Bereich MS-Office

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Beweisbar sichere Verschlüsselung

Einblicke in das menschliche Erbgut (Genom) am Computer

Selbsttest Prozessmanagement

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Algorithmische Mathematik

Kompetitive Analysen von Online-Algorithmen

Erbgutanalyse mit wachsendem Automatisierungsgrad

Grundideen der Gentechnik

1 Mathematische Grundlagen

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Algorithmen II Vorlesung am

Deutliche Mehrheit der Bevölkerung für aktive Sterbehilfe

Produktionsplanung und steuerung (SS 2011)

Kapitel 5: Dynamisches Programmieren Gliederung

1 topologisches Sortieren

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Gezielt über Folien hinweg springen

Synchronisations- Assistent

Melanie Kaspar, Prof. Dr. B. Grabowski 1

Informatik-Sommercamp Mastermind mit dem Android SDK

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Print2CAD 2017, 8th Generation. Netzwerkversionen

Musterlösungen zur Linearen Algebra II Blatt 5

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Zwischenablage (Bilder, Texte,...)

BILDER TEILEN MIT DROPBOX

C++ Tutorial: Timer 1

ANSPRECHPARTNER. Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Info zum Zusammenhang von Auflösung und Genauigkeit

Einführung in die Programmierung

Lineare Gleichungssysteme

Bewertung des Blattes

Hilfreiche Funktionen

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

AutoCAD Dienstprogramm zur Lizenzübertragung

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Installation OMNIKEY 3121 USB

Erweitertes Kalkulationsfenster

Erstellen von x-y-diagrammen in OpenOffice.calc

Kapitel MK:IV. IV. Modellieren mit Constraints

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II

Anmerkungen zur Übergangsprüfung

SUDOKU - Strategien zur Lösung

Modellbildungssysteme: Pädagogische und didaktische Ziele

Anwendertreffen 20./21. Juni

Informationsblatt Induktionsbeweis

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

WLAN Konfiguration. Michael Bukreus Seite 1

So funktioniert das online-bestellsystem GIMA-direkt

Sequenzierung. Aufklärung der Primärstruktur von DNA. Biotechnik Kurs WS 2006/07

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Gleichungen und Ungleichungen

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Statuten in leichter Sprache

Datenbanken Microsoft Access 2010

Eigene Dokumente, Fotos, Bilder etc. sichern

Wir machen neue Politik für Baden-Württemberg

Media Teil III. Begriffe, Definitionen, Übungen

1 Part-of-Speech Tagging

Erfahrungen mit Hartz IV- Empfängern

6.2 Scan-Konvertierung (Scan Conversion)

Datenbanken Kapitel 2

Informationen zum neuen Studmail häufige Fragen

Österreichische Trachtenjugend

Klausur zum Modul Molekularbiologie ILS, SS 2010 Freitag 6. August 10:00 Uhr

Transkript:

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