Lehre‎ > ‎

Vorlesung "Algorithmen auf Sequenzen"

Inhalt (Vorlesungskommentar)

Das folgende Grundproblem wird häufig schon in den Einführungsvorlesungen behandelt: Gegeben ist ein Text T und ein Muster P. Liste alle Positionen in T auf, an denen P vorkommt.

Von diesem Problem gibt es viele Varianten: Statt aus einem einzelnen String kann P aus einer Menge von Strings bestehen, oder in impliziter Form gegeben sein, etwa durch einen regulären Ausdruck, oder eine sogenannte position weight matrix, oder auch durch eine kontextfreie Grammatik. Zudem suchen wir unter Umständen auch nach approximativen Vorkommen im Text (z.B. Meier vs. Mayer). Vielleicht wollen wir auch nur wissen, ob P überhaupt vorkommt, oder auch nur wie oft (ohne alle Positionen aufzulisten).

Auch die Frage nach der Statistik der Anzahl der Vorkommen ist von Interesse: Angenommen, wir beobachten ein bestimmtes Muster siebzehn mal in einem bestimmten Text: Ist das überraschend oft, oder lässt sich das durch puren Zufall erklären?

Die biologische Sequenzanalyse hat sich aus den Gebiet des pattern matching entwickelt, das in den 70er Jahren vor allem von theoretischen Informatikern bearbeitet wurde. Hier ist in den letzten 20 Jahren eine Fülle von (sowohl sehr einfachen als auch sehr komplizierten) Algorithmen entstanden, und es stellt sich heraus, dass die Algorithmen, "die man so kennt", in der Praxis häufig langsam sind.

In der Vorlesung werden wir Varianten des Pattern Matching Problems ausführlich behandeln und sowohl klassische als auch die zur Zeit in der Praxis schnellsten Algorithmen kennen lernen. Es geht sowohl um on-line Algorithmen (bei denen der Text vorher nicht bekannt sein muss) als auch um Index-basierte Verfahren (bei denen vorher ein Index des Textes erstellt wird). Index-basierte Verfahren sind heute sowohl bei der Analyse von Biosequenzen wichtig, als auch für web-basierte Suchmaschinen wie Google, Yahoo und andere ein essentieller Bestandteil des Kerngeschäfts.

In letzter Zeit nimmt die Bedeutung komprimierter Text-Inidizes stetig zu. Hierzu werden wir die wichtigsten Grundlagen kennen lernen und vor allem die zentrale Rolle der Burrows-Wheeler Transformation herausarbeiten.

Dem ersten Teil der Vorlesung liegt das Buch Flexible Pattern Matching in Strings von Gonzalo Navarro und Mathieu Raffinot (ca. 33 Euro) zugrunde. Es wird ergänzt durch Übersichtsartikel aus der Originalliteratur, die ich in der Vorlesung angeben werde.

Die Vorlesung wird von praktischen und theoretischen Übungsaufgaben begleitet, deren Bearbeitung wichtig für ein richtiges Verständnis des Stoffs ist. Im Anschluss an diese Vorlesung besteht bei Begabung und Interesse die Möglichkeit, in diesem Bereich eine Abschlussarbeit zu schreiben.

Literatur

Gonzalo Navarro, Mathieu Raffinot
Flexible Pattern Matching in Strings
Cambridge University Press
ISBN: 0-521-03993-2

Dan Gusfield
Algorithms on Strings, Trees and Sequences
Cambridge University Press
ISBN: 0-521-58519-8

David Sankoff und Joseph P. Kruskal
Time Warps, String Edits, and Macromolecules
University of Chicago Press
ISBN: 1-575-86217-4
(Taschenbuchausgabe von 2000 des 1983 erschienenen Originals)

Weitere Originalliteratur (wissenschaftliche Aufsätze, "paper"), die im Lauf der Vorlesung bekannt gegeben wird.

Skript


Mögliche Prüfungsleistungen im Bachelor-Wahlmodul INF-BSc-315

  • Bachelor-Wahlmodul (2V+1Ü; 4 LP), im Sommersemester 2011 (davor: SoSe 2010)
  • mündliche Prüfung von 20-30 Minuten Dauer oder Klausur von 90 Minuten Dauer
  • Die genaue Prüfungsform wird abhängig von der Teilnehmerzahl kurz nach Vorlesungsbeginn festgelegt.
  • Vordruck für die Prüfungsanmeldung ausfüllen, bei Frau Jankord (OH14 / R2.39) einen Termin/Uhrzeit geben lassen, von Prof. Rahmann oder Frau Jankord unterschreiben lassen; wird von Frau Jankord zur Prüfungsverwaltung (Dez. 7.3) geschickt.
  • Sommersemester 2011: Prüfungen am 22.7., 12.8., 23.9. (jeweils Freitags)

Mögliche Prüfungsleistungen im Diplom (SpG 4,6,7)

  • Spezial-/Vertiefungsvorlesung (2V+2Ü bzw. 3V+1Ü; 6 LP), zuletzt im WS 2009/10.
    Sie gehört in die SpGs 4,6,7 nach DPO'01 und ist wahlweise als 2V+2Ü=6LP (Master) oder 3V+1Ü (Diplom) anrechenbar.
  • Leistungsnachweis (Schein), unbenotet; durch Besuch der Vorlesung, Bearbeiten der Übungsaufgaben zum Vorlesungsinhalt, abschließendes Gespräch zur Vorlesung
  • mündliche Fachprüfung zum Vorlesungsinhalt (zur Vorbereitung wird die Bearbeitung der Übungsaufgaben sehr empfohlen).
  • Vordruck für die Prüfungsanmeldung ausfüllen, bei Frau Jankord (OH14 / R2.39) einen Termin/Uhrzeit geben lassen, von Prof. Rahmann oder Frau Jankord unterschreiben lassen; wird von Frau Jankord zur Prüfungsverwaltung (Dez. 7.3) geschickt.
  • Sommersemester 2011: Prüfungen am 22.7., 12.8., 23.9. (jeweils Freitags)

Zeitplan Sommersemester 2011 (Wahlmodul/B.Sc.)

Vorlesung: Do 08:30-10:00 in OH14/R104
Übungen:   Di  09:00-10:00 in OH14/R202 (Dominik Kopczynski); erster Übungstermin: Di 12.04.
                 Do 14:00-15:00 in OH14/R202 (Dominik Kopczynski); erster Übungstermin: Do 14.04.
Material:    Aktueller Skript-Entwurf.
Prüfungen: Für das Bachelor-Modul INF-BSc-315 werden in diesem Semester nur mündliche Prüfungen angeboten.
                 Die erweiterte Diplom-Spezialvorlesungsprüfung (3V+1Ü, SpG 4,6,7) wird grundsätzlich nur mündlich angeboten.
                  Prüfungstermine siehe unten.

 Do 07.04.
Organisatorisches. Motivation und Einführung: Sequenzen sind überall.
DNA, RNA, Proteine. Genetischer Code. Das Schweinegrippevirus H1N1. kA/kS-Analyse.
Einführungsfolien . Übungsblatt 1. Übungsblatt 1 (pdf).
 Di 12.04. 9:00st: Übung (Besprechung von Übungsblatt 1 vom 07.04.)
 Do 14.04.  
Das Pattern-Matching-Problem: Grundlegende Definitionen.
Naiver Algorithmus. Nichtdeterministische und deterministische endliche Automaten.
Beziehung zwischen NFA und DFA für einfaches Patternmatching.
Übungsblatt 2. Übungsblatt 2 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 1 vom 07.04.)
 Di 19.04.  
9:00st: Übung (Besprechung von Übungsblatt 2 vom 14.04.)
 Do 21.04.
Knuth-Morris-Pratt-Algorithmus. Effiziente Konstruktion der lps-Funktion.
Pattern-Matching mit bit-parallelen Algorithmen: Shift-And, Shift-Or.
Horspool-Algorithmus (Erwähnung von Boyer-Moore, Sunday).
Übungsblatt 3. Übungsblatt 3 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 2 vom 14.04.)
 Di 26.04.
9:00st: Übung (Besprechung von Übungsblatt 3 vom 21.04.)
 Do 28.04.
Analyse des Horspool-Algorithmus.
Teilstring-basierter Ansatz. (Nicht)deterministischer Suffixautomat.Algorithmus BNDM. Idee BDM, BOM (Suffixorakel). Erweiterte Patternklassen: Generalisierte Strings, Gaps beschränkter Länge (-x(u,v)-).
Übungsblatt 4. Übungsblatt 4 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 3 vom 21.04.)
 Di 03.05.
9:00st: Übung (Besprechung von Übungsblatt 4 vom 28.04.)
 Do 05.05.
Vorteil von Indexstrukturen: Suchzeit nur O(|Pattern|) statt O(|Text|).
Suffixbaum: Definition, linearer Platzbedarf. Suffixarray: pos, rank, lps; d-Intervall.
Übungsblatt 5. Übungsblatt 5 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 4 vom 28.04.)
 Di 10.05.
9:00st: Übung (Besprechung von Übungsblatt 5 vom 05.05.)
 Do 12.05.
Suffixbaumkonstruktion in Linearzeit mit Ukkonen's Algorithmus.
Berechung von lcp in Linearzeit aus pos.
Verschiedene Stringprobleme und Lösungen auf Suffixbaum und Suffixarray.
Übungsblatt 6. Übungsblatt 6 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 5 vom 05.05.)
 Di 17.05.
9:00st: Übung (Besprechung von Übungsblatt 6 vom 12.05.)
 Do 19.05.
Mustersuche mit Suffixbaum und Suffixarray.
Burrows-Wheeler-Transformation (BWT). Anwendung auf Kompression: bzip2.
Backward Search mit Suffixarray und BWT.
Übungsblatt 7. Übungsblatt 7 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 6 vom 12.05.)
 Di 24.05.
9:00st: Übung (Besprechung von Übungsblatt 7 vom 19.05.)
 Do 26.05.
Distanzmaße (Hammingdistanz, Editdistanz). Rekurrenz zur Edit-Distanz (Beweis).
Übungsblatt 8. Übungsblatt 8 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 7 vom 19.05.)
 Di 31.05.
9:00st: Übung (Besprechung von Übungsblatt 8 vom 26.05.)
 Do 02.06.  
Christi Himmelfahrt: Wegen Feiertag fällt die Übung am Donnerstag aus.
Die Donnerstagsgruppe kann in die Dienstagsgruppe kommen.

Übungsblatt 9. Übungsblatt 9 (pdf).
 Di 07.06.
9:00st: Übung (Besprechung von Übungsblatt 9 vom 02.06.)
 Do 09.06.
Alignments = Pfade durch den Edit-Graphen. Anzahl von Alignments.
Approximative Mustersuche: Ukkonen.
Übungsblatt 10. Übungsblatt 10 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 9 vom 02.06.)
 Di 14.06.
9:00st: Übung (Besprechung von Übungsblatt 10 vom 09.06.)
 Do 16.06.
Approximative Mustersuche: Shift-And.
Paarweises Sequenzalignment: global, semi-global, lokal, free gaps. Scorematrizen.
Übungsblatt 11. Übungsblatt 11 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 10 vom 09.06.)
 Di 21.06.9:00st: Übung (Besprechung von Übungsblatt 11 vom 16.06.)
 Do 23.06.
Fronleichnam: Wegen Feiertag fällt die Übung am Donnerstag aus.
Die Donnerstagsgruppe kann in die Dienstagsgruppe kommen.

Übungsblatt 12. Übungsblatt 12 (pdf).
 Di 28.06.9:00st: Übung (Besprechung von Übungsblatt 12 vom 23.06.)
 Do 30.06.
Paarweises Sequenzalignment (allgemeine Gapkosten, affine Gapkosten, Backtracing in linearem Platz).
Übungsblatt 13. Übungsblatt 13 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 12 vom 23.06.)
 Di 05.06.
9:00st: Übung (Besprechung von Übungsblatt 13 vom 30.06.)
 Do 07.07.
Textmodelle (M00, M0, M1, Mk, Markovmodelle variabler Ordnung, allg. Modelle mit endlichem Gedächtnis).
Simulation von Zufallstexten (Ziehen aus Verteilungen mit linearer/binärer Suche, Aliasmethode).
Übungsblatt 14. Übungsblatt 14 (pdf).
14:00ct: Übung (Besprechung von Übungsblatt 13 vom 30.06.)
 Di 12.07.
9:00st: Übung (Besprechung von Übungsblatt 14 vom 07.07.)
 Do 14.07.
Maximum-Likelihood-Parameterschätzung von einfachen Textmodellen.
HMMs.
14:00ct: Übung (Besprechung von Übungsblatt 14 vom 07.07.)




Zeitplan Sommersemester 2010 (Wahlmodul/B.Sc.)

Termin und Raum: Vorlesung Mo 8:30-10:00 in OH14/R104, Übungen Mi 8:30-10:00 in zweiwöchentlich in OH14/R104.
Bitte die genauen Übungstermine im Zeitplan beachten!
Dieser Zeitplan wird im Verlauf des Sommersemesters aktualisiert.
Aktueller Skript-Entwurf.

 Mo 12.04.
Organisatorisches. Motivation und Einführung: Sequenzen sind überall.
DNA, RNA, Proteine. Genetischer Code. Das Schweinegrippevirus H1N1. kA/kS-Analyse.
Übungsblatt 1. Einführungsfolien.
 Mo 19.04.
Das Pattern-Matching-Problem: Grundlegende Definitionen.
Naiver Algorithmus. Nichtdeterministische und deterministische endliche Automaten.
Knuth-Morris-Pratt-Algorithmus.
Übungsblatt 2.
 Mi 21.04.
Übung 1 (Besprechung von Übungsblatt 1 vom 12.04.)
 Mo 26.04.
Effiziente Konstruktion der lps-Funktion.
Horspool-Algorithmus, kurz: Boyer-Moore, Sunday
Pattern-Matching mit bit-parallelen Algorithmen: Shift-And, Shift-Or.
 Mi 28.04.
Übung 2 (Besprechung von Übungsblatt 2 vom 19.04.)
 Mo 03.05.
 in E04!
Teilstring-basiertes Pattern-Matching: BNDM.
Genregulation. Transkriptionsfaktoren.
Modellierung von Transkriptionsfaktorbindestellen mit PWMs. Suche nach TFBSen.
Übungsblatt 3.
 Mo 10.05.
DNA-Microarrays. DNA-Energiemodelle.
DNA-Sequenzdesign für Microarrays und nanotechnologische Anwendungen
 Mi 12.05.
Übung 3 (Besprechung von Übungsblatt 3 vom 03.05.)
 Mo 17.05.
Modelle für Zufallssequenzen (i.i.d, Markovketten, allgemeine Modelle mit endlichem Gedächtnis)
3 Aufgaben: Simulieren, Wahrscheinlichkeit berechnen, Parameter schätzen.
Übungsblatt 4.
 Mo 24.05.
 -- Pfingstmontag --
 Mo 31.05.
HMMs, Definition. Algorithmen auf HMMs: Forward, Viterbi
 Mi 02.06.
Übung 4
 Mo 07.06.
Algorithmen auf HMMs: Posterior decoding mit Hilfe von forward- und backward-Wahrscheinlihckeiten. Ergänzungen: stumme Zustände, sehr kleine Wahrscheinlichkeiten (Logarithmieren oder Skalieren), Verweildauer in Zuständen (geometrische Verteilung, negative Binomialverteilung).
Übungsblatt 5.
 Mo 14.06.
paarweiser Sequenzvergleich: Hamming-Distanz, q-gram-Distanz, Edit-Distanz, longest common subsequence. Dynamic-Programming-Algorithmus zur Edit-Distanz.
 Mi 16.06.
Übung 5
 Mo 21.06.
Edit-Graph. Algorithmus von Ukkonen. k-Fehler-NFA.
Übungsblatt 6.
 Mo 28.06.
Paarweises Sequenzalignment. Traceback.
Scorematrizen, Gapkosten.
Alignment-Graph. Verschiedene Arten von Alignments.
 Mi 30.06.
Übung 6
 Mo 05.07.
Indexstrukturen: Suffixbaum, Suffixarray
 Mo 12.07.
Einfache Konstruktion von Suffixbäumen und Suffixarrays.
Linearzeit-Konstruktion von Suffixbäumen: Algorithmus von Ukkonen.
Anwendungen von Suffixbäumen und Suffixarrays.
Übungsblatt 7.
 Mo 19.07.
Weitere Anwendungen von Suffixbäumen und Suffixarrays.
Burrows-Wheeler-Transformation, bzip2.
 Mi 21.07.
Übung 7



Spezialvorlesung WS 2009/10

Termin und Raum: Mo 8:30-10 in OH14/R104 und Fr 8:30-10 in OH14/R304.

 Mo 12.10.
Organisatorisches. Motivation und Einführung. Grundlegende Definitionen.
Das Pattern-Matching-Problem: Naiver Algorithmus.
 Fr 16.10.
Knuth-Morris-Pratt-Algorithmus.
Deterministische endliche Automaten (DFAs) für das Pattern-Matching-Problem; Konstruktion.
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 19.10.
Verallgemeinerung auf mehere Patterns: Aho-Corasick-Algorithmus und -Automat.
 Fr 23.10.
Verschiedene Zählweisen von Übereinstimmungen ("matches").
Nichtdeterministische endliche Automaten (NFAs), bit-parallele Simulation.
Abschließende Bemerkungen zu DFA/NFA-basierten Methoden.
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 26.10.
-- fällt aus --
 Fr 30.10.
Statistik des Pattern-Matching: Nullmodelle. p-Werte. Beispiele.
 Mo 02.11.
Probabilistische arithmetische Automaten (PAAs). Algorithmen auf PAAs.
Anwendung von PAAs auf das Pattern-Matching-Problem: Pattern-Matching-Statistik.
 Fr 06.11.
Verdopplungs-Algorithmus auf PAAs.
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 09.11.
PAAs mit erzeugenden Funktionen.
 Fr 13.11.
Suffix-basierte Pattern-Matching-Algorithmen (Horspool, Sunday) und ihre Analyse.
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 16.11.
Erläuterungen zu erzeugenden Funktionen (Mehrzahl der Hörer krank)
 Fr 20.11.
-- fällt aus wegen Krankheit --
 Mo 23.11.
Teilstring-basierte Pattern-Matching-Algorithmen (BDM, BNDM, BOM).
 Fr 27.11.
-- Gedenkkolloquium für Ingo Wegener in E23 --
 Mo 30.11.
Suffix-Orakel und Backwad-Oracle-Matching (BOM) im Detail.
Ausgabe und Besprechung von Übungsaufgaben.
 Fr 4.12.
Approximatives Pattern Matching mit bit-parallel implementierten NFAs.
 Mo 7.12.
Erweiterung um Gaps beschränkter Länge. Prosite-Muster.
 Fr 11.12.
Erweiterung um optionale Zeichen (?).
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 14.12.
Erweiterung um wiederholbare Zeichen (*,+).
 Fr 18.12.
(Methoden zum Zählen von Bäumen.)
 Mo 04.01.
Dynamic Programming Algorithmen zum Sequenzvergleich. Alignments.
 Fr 07.01.
Alignment-Graphen. Varianten von Alignment-Algorithmen.
Ausgabe und Besprechung von Übungsaufgaben.
 Mo 11.01.
Globales, semiglobales, lokales, free end-gap Alignment.
 Fr 15.01.
Alignment mit affinen Gapkosten.
 Mo 18.01.
Suboptimale Alignments.
Alignment mit linearem Platzbedarf: Hirshberg-Technik
 Fr 22.01.
Statistik lokaler Alignments.
Probleme: Mosaik-Effekt, Schatteneffekt. Lösung: Längennormalisiertes Alignment.
 Mo 25.01.
Four-Russians-Trick. Hidden-Markov-Modelle. Viterbi- und Forward-Algorithmus.
 Fr 29.01.
Hidden-Markov-Modelle: Backward-Algorithmus. Posterior Decoding.
 Mo 01.02.
Suffixbäume und Suffixarrays (pos,lcp). Pattern-Matching mit Suffixbäumen und Suffixarrays.
 Fr 05.02.
Anwendungen von Suffixbäumen, Konstruktion (Ukkonen).



Alte Version der Vorlesung vom Sommersemester 2008

Inhalte und Termine

Mo 07.04.  Einfuehrung. Motivation. Definitionen. Das Pattern-Matching Problem.
Der naive Algorithmus. Ein DFA-Algorithmus.
Ausgabe von Blatt 1
Fr 11.04. Der Knuth-Morris-Pratt (KMP) Algorithmus.
Prefix-, Suffix- und Teilstring-basiertes pattern matching.
Besprechung von Blatt 1.

Mo 14.04. Varianten des Boyer-Moore-Algorithmus (BM, Horspool, Sunday).
Analyse des Sunday-Algorithmus.
Ausgabe von Blatt 2+3.

Fr 25.04. Teilstring-basierte Verfahren: BNDM, BDM.
Besprechung von Blatt 2+3.

Mo 28.04. Das Teilstring-Orakel. Backward Oracle Matching (BOM).
Der Rabin-Karp-Algorithmus. q-grams.
Fr 02.05. Verallgemeinerte Strings: Zeichenklassen in Pattern und Text
Besprechung von Blatt 4.

Mo 05.05. Verallgemeinerte Strings: Gaps beschraenkter Laenge
Fr 09.05. Verallgemeinerte Strings: Optionale und wiederholbare Zeichen

Fr 16.05. Mengen von Strings: Aho-Corasick als KMP-Erweiterung

Mo 19.05. Mengen von Strings: Adaption weiterer Algorithmen
Fr 23.05. regulaere Ausdruecke: Parsen, Thompson-Automat und Simulation

Fr 30.05. regulaere Ausdruecke: Glushkov-Automat und Simulation

Mo 02.06. regulaere Ausdruecke:
Adaption von Suffix-/Teilstring-basierten Verfahren
Fr 06.06. Approximative Teilstringsuche: DP

Mo 09.06. Approximative Teilstringsuche: NFAs
Anwendung: Mapping von DNA-Reads auf Genome
Fr 13.06. Approximative Teilstringsuche: Bit-parallele Implementierungen
Adaption von Suffix-/Teilstringbasierten Verfahren, ABNDM

Mo 16.06. Alignments: lokal, global, Mischformen;
Alignment-Algorithmen als Wege maximalen Gewichts in Graphen
normalisiertes Alignment
Fr 20.06. allgemeine, affine, konvexe Gapkosten
PWM-Modell und Anwendungen

Mo 23.06. Pattern-Statistiken mit DFAs: PAAs
Fr 27.06. Weitere Anwendungen von PAAs. Uebungen.

Mo 30.06. Indexbasierte Verfahren: q-grams, Suffixbaeume, Suffixarrays
Fr 04.07. Suffixarrays und Enhanced Suffixarrays

Mo 07.07. Konstruktion von Suffixbaeumen und Suffixarrays
Fr 11.07. Konstruktion von Enhanced Suffix Arrays

Mo 14.07. Anwendugen von Suffixbaeumen und Suffix-Arrays
Burrows-Wheeler Transformation
Fr 18.07. Zusammenfassung & Abschluss

Folien

Übungsblätter