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

Ähnliche Dokumente
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

Algorithmische Bioinformatik

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

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

Algorithmische Bioinformatik

Algorithmische Bioinformatik

String - Matching. Kapitel Definition

Der Boyer-Moore Algorithmus

Algorithmische Bioinformatik 1

2.2 Der Algorithmus von Knuth, Morris und Pratt

Effiziente Algorithmen 2

Informatik II, SS 2018

Informatik II, SS 2018

Bioinformatik Für Biophysiker

Algorithmen und Datenstrukturen

Bioinformatik Für Biophysiker

1.5 Boyer-Moore-Algorithmus

Algorithmische Bioinformatik

Informatik II, SS 2016

Bioinformatik. Einleitung Überblick. Ulf Leser Wissensmanagement in der. Bioinformatik

Informatik II, SS 2014

Bioinformatik Für Biophysiker

Algorithmische Bioinformatik

Informatik II, SS 2016

Bioinformatik. Approximatives Stringmatching Editabstand. Ulf Leser Wissensmanagement in der. Bioinformatik

Knuth Morris Pratt Algorithmus

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Aufgabe 3: Erste Versuche im Indexieren des Templates. Ulf Leser Wissensmanagement in der Bioinformatik

Algorithmen zur exakten Suche in Texten. Algorithmen und Datenstrukturen II 1

Suche in Texten. Verschiedene Szenarios: Dynamische Texte. Texteditoren Symbolmanipulatoren. Statische Texte

Bioinformatik. Alignment mit linearem Platzbedarf K-Band Alignment. Ulf Leser Wissensmanagement in der. Bioinformatik

Proseminar String Matching

1.3 Knuth-Morris-Pratt-Algorithmus

Übung 3 Algorithmische Bioinformatik WS 15/16. Yvonne Mayer

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1

Algorithmen und Datenstrukturen

Übungen zu Algorithmische Bioinformatik

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Algorithmische Bioinformatik

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany

Zeichenketten. 29. April 2015 Benedikt Lorch. Benedikt Lorch Zeichenketten April

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Informatik II, SS 2014

Aufgabenblatt 4. Silke Trißl Wissensmanagement in der Bioinformatik

4.9.7 Konstruktion der Suffixbäume

Informatik II Precomputation

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

Übung 1 Algorithmische Bioinformatik WS 15/16. Yvonne Mayer

Zeichenketten. 10. Mai 2017 Simon Bachstein Simon Bachstein Hallo Welt -Seminar - LS 2 Zeichenketten 1

String matching: Überblick

Algorithmen und Datenstrukturen II

Text Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk

Universität Bremen. Textsuche. Thomas Röfer. Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz

Range-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?

Grundlagen der Theoretischen Informatik

INFORMATIK FÜR BIOLOGEN

Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Algorithmen und Datenstrukturen 2

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Algorithmen und Datenstrukturen in der Bioinformatik Zweites Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Drittes Übungsblatt WS 05/06 Musterlösung

Effiziente Algorithmen und Komplexitätstheorie

Algorithmen zur exakten Suche in Texten

Algorithmische Bioinformatik

Algorithmen und Datenstrukturen II

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

11. Suchen in Texten. Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen und Datenstrukuren Suchen in Texten SS

Textsuche. Textsuche

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

13 Berechenbarkeit und Aufwandsabschätzung

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen auf Zeichenketten

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Rückblick: Längste gemeinsame Zeichenkette

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Übung 4 Algorithmische Bioinformatik WS 15/16. Yvonne Mayer

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Grundlagen der Theoretischen Informatik

Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt

String Matching 2. Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen.

Resolutionsalgorithmus

Übung 2 Algorithmische Bioinformatik WS 15/16. Yvonne Mayer

Algorithmische Bioinformatik 1

Boyer Moore Algorithmus

Transkript:

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

Drei Anwendungen Sequenzierung Assembly von Teilsequenzen cdna Clustering All-against-all Sequenzvergleiche Funktionale Annotation Schnelle Suche in Sequenzdatenbanken Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 2

Schritt 3 Primer Template ACGAACGCGAGTTAGTTAGACCAGTAGCCA... Polymerase ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACG C A G T G C T ACT A C A C G GT A T AC TG A G C CT G ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACGCGAGTTA ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACGCGAG ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACGCGAGTTAGTT ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACGCGAGTTAGTTAGT ACGAACGCGAGTTAGTTAGACCAGTAGCCA... ACGAACGCGA Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 3

Ergebnis (Zwischenprodukt) Signalverarbeitung (Rauschen,...) Übersetzung in Traces 4 Arrays, jedes für eine Farbe Intensitätswerte in regelmäßigen Zeitabschnitten Theoretisch Peaks entdecken Immer nur eine Farbe Sequenz zuordnen Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 4

Assembly Finden von Überlappungen von Sequenzen Redundanz ist Notwendig: Verbindung von Teilstücken nur durch Überlappungen Konfliktträchtig: Widersprüche, Mehrdeutigkeit Beachtung von Sequenzierfehlern Auswahl der plausibelsten Anordnungen Fehler? tggacaagcaaagatta acatttttgaac gcaaagattgttg tggacaagcaaagatta acatttttgaac gcaaagattgttg Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 5

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 Assembly: Verschärfungen von SUPERSTRING Fehler in Sequenzen (s ungefähr Substring von T) Zwei Orientierungen von s möglich Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 6

cdna/est Bibliotheken cdnas: Gene / kodierende Regionen Viel interessanter als genomische DNA cdna enthält (meist) PolyA und 3 Ende cdna enthält (oft) nicht 5 Ende Weil Reverse Transcriptase vorher abfällt Inhalt einer cdna Bibliothek abhängig von Gewebe Entwicklungsstadium (Embryo - Erwachsen) Organismusstatus (Krank Gesund) EST = Expressed Sequence Tags Ansequenzierte cdnas Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 7

EST Clustering Berechnung der Anzahl Gene durch Clustering Typisches Verfahren Schritt 1: Berechnung der Überlappung / Ähnlichkeit aller Sequenzpaare Schritt 2: Berechnung von Sequenzclustern durch Bildung der transitiven Hülle Schritt 3: Zuordnung isolierter Sequenzen zu Clustern mit geringerer Ähnlichkeitsanforderung Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 8

3. Funktionale Annotation Sequenzen bestimmen Funktionen Gensequenzen => Proteinsequenz Proteinsequenzen => Struktur Struktur => Funktion Grundannahme der Bioinformatik Gleiche Sequenzen gleiche Funktion Sehr ähnliche Sequenzen sehr ähnliche Funktion Etwas ähnliche Sequenzen verwandte Funktion? (Stimmt nicht immer) Insbesondere wichtig: Comparative Genomics Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 9

Problemdimension Quelle: EMBL, Genome Monitoring Tables, Stand 9.11.25 Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 1

Exaktes Matching Gegeben: P (Pattern) und T (Text) Trivialerweise verlangen wir P T In der Regel nehmen wir an P << T Gesucht: Sämtliche Vorkommen von P in T Beispiel Auffinden der Erkennungssequenzen von Restriktionsenzymen Eco RV - GATATC tcagcttactaattaaaaattctttctagtaagtgctaagatcaagaaaataaattaaaaataatggaacatggcacattttcctaaactcttcacagattgctaatga ttattaattaaagaataaatgttataattttttatggtaacggaatttcctaaaatattaattcaagcaccatggaatgcaaataagaaggactctgttaattggtact attcaactcaatgcaagtggaactaagttggtattaatactcttttttacatatatatgtagttattttaggaagcgaaggacaatttcatctgctaataaagggattac atatttatttttgtgaatataaaaaatagaaagtatgttatcagattaaacttttgagaaaggtaagtatgaagtaaagctgtatactccagcaataagttcaaataggc gaaaaactttttaataacaaagttaaataatcattttgggaattgaaatgtcaaagataattacttcacgataagtagttgaagatagtttaaatttttctttttgtatt acttcaatgaaggtaacgcaacaagattagagtatatatggccaataaggtttgctgtaggaaaattattctaaggagatacgcgagagggcttctcaaatttattcaga gatggatgtttttagatggtggtttaagaaaagcagtattaaatccagcaaaactagaccttaggtttattaaagcgaggcaataagttaattggaattgtaaaagatat ctaattcttcttcatttgttggaggaaaactagttaacttcttaccccatgcagggccatagggtcgaatacgatctgtcactaagcaaaggaaaatgtgagtgtagact ttaaaccatttttattaatgactttagagaatcatgcatttgatgttactttcttaacaatgtgaacatatttatgcgattaagatgagttatgaaaaaggcgaatatat tattcagttacatagagattatagctggtctattcttagttataggacttttgacaagatagcttagaaaataagattatagagcttaataaaagagaacttcttggaat tagctgcctttggtgcagctgtaatggctattggtatggctccagcttactggttaggttttaatagaaaaattccccatgattgctaattatatctatcctattgagaa caacgtgcgaagatgagtggcaaattggttcattattaactgctggtgctatagtagttatccttagaaagatatataaatctgataaagcaaaatcctggggaaaatat tgctaactggtgctggtagggtttggggattggattatttcctctacaagaaatttggtgtttactgatatccttataaataatagagaaaaaattaataaagatgatat Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 11

Naiver Ansatz 1. P und T an Position 1 ausrichten 2. Vergleiche P mit T von links nach rechts 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 ein Zeichen nach rechts 4. Wenn P noch nicht über T - P hinaus, gehe zu 2 T P ctgagatcgcgta gagatc gagatc gagatc gagatc gagatc gatatc gatatc gatatc Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 12

Optimierungsideen Anzahl der Vergleiche reduzieren P um mehr als ein Zeichen verschieben Aber nie soweit verschieben, dass ein Vorkommen von P in T nicht erkannt wird 1. Beobachtung: Zeichen T P xabxyabxyabxz abxyabxz abxyabxz abxyabxz Nächstes a in T an Position 6 Substring in T muss mit a beginnen; nächstes a kommt erst an Position 6 springe 4 Positionen Vorkommen von Buchstaben in T kann während des Vergleichs ab Position 2 gelernt werden Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 13

Optimierungsideen 2 2. Beobachtung: Substrings T P xabxyabxyabxz abxyabxz abxyabxz abxyabxz Nächstes abx in T an Position 6 abx doppelt in P Algorithmus kann sich interne Struktur von P merken P[1..3] = P[5..7] P[1..3] kommt nicht vor Position 5 wieder in P vor Vergleich findet: P[1..7] = T[2..8] Daher muss P[1..3] = T[6..8], und zwischen 2 und 6 kann in T kein Treffer für P liegen 4 Zeichen weit schieben, erst ab Position 4 in P weiter vergleichen Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 14

Inhalt dieser Vorlesung Z-Boxen Exaktes Stringmatching mit Z-Boxen Berechnung von Z-Boxen Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 15

Z-Algorithmus Zerlegung des Problems in zwei Phasen Preprocessing: Lerne möglichst viel über die Struktur der beiden Strings Search: Nutze das gelernte, um P weiter nach rechts verschieben zu können Bei einem Vergleich von P mit Substring von T nicht an Position 1 von P starten zu müssen Auch das Preprocessing muss schnell sein Forderung kann aufgehoben werden, wenn bei vielen Suchen P oder T gleich ist Beispiel: Suche Promotersequenz in vielen Gensequenzen Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 16

Z-Algorithmus: Preprocessing Im Folgenden: S statt P (Gusfield) Definition Sei i>1. Dann ist Z i (S) die Länge des längsten Substrings x von S mit x=s[i..i+ x -1] (x startet an Position i in S) S[i..i+ x -1] = S[1.. x -1] (x ist auch Präfix von S) x ist die Z-Box von S an Position i mit Länge Z i (S) Z i S x x Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 17

Beispiele S = aabcaabxaaz 1(a) 3(aab) 1(a) 2(aa) 1(a) S = aaaaaa 5 4 3 2 1 S = baaaaa Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 18

Beispiel 2 Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 19

Linearer Stringmatching Algorithmus Annahme: Z-Boxen lassen sich in O( S ) berechnen Wie zeigen wir später Verwendung der Z-Boxen für String Matching S := P $ T; // ($ Σ) compute Z-Boxes for S; for i = P +2 to S if (Z i (S)= P ) then print i- P -1; // P in T at position i end if; end if; Komplexität Schleife wird S -mal durchlaufen => O(m) Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 2

Berechnung der Z-Boxen Naiver Algorithmus braucht O( S 2 ) for i = 2 to S Z i := ; j := 1; while (((S[j] = S[i + j 1])) and (j <= S )) Z i := Z i + 1; j := j + 1; end while; end for; Damit wäre nichts gewonnen O((m+n) 2 ) + O(m) = O(m 2 ) Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 21

Vorarbeiten Definition Sei i > 1. Dann ist r i der maximale Endpunkt aller Z-Boxen, die bei oder vor i beginnen l i ist die Startposition der längsten Z-Box, die bei r i endet l i ist eindeutig, da an jeder Position nur eine Z-Box beginnt S[l i..r i ] ist die Z-Box, die die Position i von S enthält, am weitesten nach rechts reicht und am längsten ist Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 22

Trick Lineare Berechnung der Z i Werte Verwenden von bereits bekannten Z i zur Berechnung von Z k (k > i) Grundaufbau Lineares Durchlaufen des Strings (Laufvariable k) Kontinuierliches Vorhalten der aktuellen Werte l=l k und r=r k Größe der Z-Box an Position k ergibt sich mit konstantem Aufwand Induktive Erklärung Induktionsanfang: Position k=2 Berechne Z 2. Wenn Z 2 >, setze r=r 2 (=2+Z 2-1) und l=l 2 (=2), sonst r=l= Induktionsschritt: Position k>2 Bekannt sind r, l und j<k: Z j Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 23

Z-Algorithmus, Fall 1 Möglichkeit 1: k > r D.h., dass es keine Z-Box gibt, die k enthält Wir wissen nichts über den Bereich in S ab k Dann gehen wir primitiv vor Berechne Z k durch Zeichen-für-Zeichen Matching Wenn Z k >, setze r=r k und l=l k Beispiel k CTCGAGTTGCAG 1? Gegenbeispiel lk r CTACTACTTTGCAG 5? Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 24

Z-Algorithmus, Fall 2 Möglichkeit 2: k <= r Die Situation: Z k Also Z-Box Z l ist Präfix von S Substring β=s[k..r] kommt auch an Position k =k-l+1 von S vor Was wissen wir über diesen Substring? Natürlich: Z k Z k und Z k können aber länger oder kürzer als β =r-k+1 sein S[r+1..] kennen wir noch nicht; S[k +1..] schon Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 25

Z-Algorithmus, Fall 2.1 Fallunterscheidung Z k < β =r-k+1 Dann ist das Zeichen an k +Z k ein Mismatch bei der Präfixverlängerung. Dann ist das Zeichen S(k+Z k ) der gleiche Mismatch. Also: Z k =Z k ; r und l unverändert Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 26

Beispiel Beispiel k ABCXYABD...ABCXYABD... 2.. 8? β= ABD ; k =6; Z 6 =2< β Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 27

Z-Algorithmus, Fall 2.2 Z k β : Dann ist β ein Präfix von S... dass sich vielleicht noch verlängern lässt Wir wissen, dass S( β +1)=S(k + β ) Wir wissen aber nichts über S(r+1) dieses Zeichen wurde noch nie betrachtet Matche Zeichen-für-Zeichen S[r+1..] mit S[ β +1..] Sei der erste Mismatch an Position q Dann: Z k =q-k; r=q-1; wenn q r+1: l=k q Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 28

Beispiel Beispiel k ABCXYABCXZ...ABCXYABD... 4... 7? β= AB ; k =6; Z 6 =4> β Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 29

Algorithmus match Z 2 ; set l,r; for k = 3 to S if k>r then match Z k ; set r,l; else k := k-l+1; b := r-k+1; // This is β if Z k <b then Z k := Z k ; else match S[r+1.. ] with S[b+1.. ] until q; Z k := q-k; r := q-1; if q!=r+1 then l := k; end if; end if; end for; Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 3

Komplexität Theorem Der Z-Box Algorithmus berechnet alle Z-Werte in O( S ) Beweis Der Algorithmus ist mindestens O( S ) durch die FOR Schleife Wir zählen m=anz. Matches und m =Anz. Mismatches Erst m. Wie viele Mismatches gibt es pro k? Induktionsanfang Maximal einen Fall 1» Maximal einen Fall 2.1» ; Es werden überhaupt keine Zeichen verglichen Fall 2.2» Maximal einen Also kann pro Position in S maximal ein Mismatch auftreten Also gilt: m S Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 31

Komplexität 2 Beweisfortsetzung Jetzt Anz Matches m. Wann führt der Algorithmus Matches aus? Induktionsanfang Egal für Komplexität (max. S ) Fall 1» Nehmen wir x Matches an, dann Mismatch; r wird nach rechts verschoben, Fälle 2.1 und 2.2 werden eintreten Fall 2.1» Es werden keine Zeichen verglichen Fall 2.2» Verglichen wird nur rechts von r, und damit rechts vom letzten Match Also kann ein Zeichen höchstens einmal einen Match erzeugen Also gilt: m S Qed. Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 32

Alles zusammen Die Z Werte kann man in O( S )=O(m+n) berechnen Danach muss man in O( S ) alle passenden Z- Boxen suchen Damit löst der Z-Box Algorithmus das exakte Stringmatchingproblem in O(m+n) Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 33

1234567891234567891 abxyabxz$xabxyabxyabxz k := k-l+1; b := r-k+1; Z k := q-k; l := k; r := q-1; k Bemerkung Z k l r 2 Induktionsanfang 3 k>r; Neues Matching, 1 Mismatch 4 k>r; Neues Matching, 1 Mismatch 5 k>r; Neues Matching, 3 Matches, 1 Mismatch 6 6 7; k =2;b=2; Z 2 =; Also Z k <b, damit Z k =Z k 7 7 7; k =3;b=1; Z 3 =; Also Z k <b, damit Z k =Z k 8 8>7; Neues Matching, 1 Mismatch 9 9>7; Neues Matching, 1 Mismatch 1 1>7; Neues Matching, 1 Mismatch 11 11>7; Neues Matching, 7 Matches, 1 Mismatch 12 12 17;k =2;b=6,Z 2 =; Z k <b, damit Z k =Z k 13 13 17,k =3;b=5;Z 3 =; Z k <b, damit Z k =Z k 14 14 17,k =4;b=4;Z 4 =; Z k <b, damit Z k =Z k 11 17 15 15 17;k =5;b=3;Z 5 =3; Also Z k b; matche S[18..] mit S[4..]; 5 Matches und Erfolg 3 7 5 5 5 5 5 5 11 11 11 7 7 7 7 7 7 17 17 17 Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 34

123456789123456 aaaat$aaaaaaaaaa k := k-l+1; b := r-k+1; Z k := q-k; l := k; r := q-1; k Bemerkung Z k l r 2 Induktionsanfang 3 2 4 3 k<r; k =2;b=2;Z 2 =3; Z k b; matche S[5..] mit S[3..];1 Mismatch;q=5 2 3 4 4 k r; k =3;b=1;Z 3 =2; Z k b; matche S[5..] mit S[3..];1 Mismatch;q=5 1 4 4 5 k>r; Neues Matching, 1 Mismatch 4 4 6 k>r; Neues Matching, 1 Mismatch 4 4 7 k>r; Neues Matching, 4 Matches, 1 Mismatch 4 7 1 8 8 1; k =2;b=3;Z 2 =3; Z k b; matche S[11..] mit S[4..];1 / 1;q=12 4 8 11 9 9 11; k =2;b=3;Z 2 =3; Z k b; matche S[12..] mit S[4..]; / 1;q=12 4 8 11 1 1>; Neues Matching, 1 Mismatch 8 11.............. Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 35

Fazit Z-Box Algorithmus Findet alle Vorkommen von P in T Berechnung Z Werte für P$T in linearer Zeit Danach alle Vorkommen in linearer Zeit Komplexität O(m+n) Als Worst-Case ist das bereits optimal Aber Boyer-Moore: Average Case sublinear Knuth-Morris-Pratt: Elegant erweiterbar zu vielen P Ulf Leser: Algorithmische Bioinformatik, Wintersemester 25/26 36