160 likes | 280 Views
Recuperació de la informació. Bioinformatics. Sequence and genome analysis David W. Mount Flexible Pattern Matching in Strings (2002) Gonzalo Navarro and Mathieu Raffinot Algorithms on strings (2001) M. Crochemore, C. Hancart and T. Lecroq
E N D
Recuperació de la informació • Bioinformatics. Sequence and genome analysis • David W. Mount • Flexible Pattern Matching in Strings (2002) • Gonzalo Navarro and Mathieu Raffinot • Algorithms on strings (2001) • M. Crochemore, C. Hancart and T. Lecroq • http://www-igm.univ-mlv.fr/~lecroq/string/index.html
String Matching String matching: definition of the problem (text,pattern) depends on what we have: text or patterns • Exact matching: • The patterns ---> Data structures for the patterns • 1 pattern ---> The algorithm depends on |p| and || • k patterns ---> The algorithm depends on k, |p| and || • Extensions • Regular Expressions • The text ----> Data structure for the text (suffix tree, ...) • Approximate matching: • Dynamic programming • Sequence alignment (pairwise and multiple) • Sequence assembly: hash algorithm • Probabilistic search: Hidden Markov Models
String matching: one pattern Text : Pattern : How does the matching algorithms made the search? There is a sliding window along the text against which the pattern is compared: At each step the comparison is made and the window is shifted to the right. Which are the facts that differentiate the algorithms? • How the comparison is made. • The length of the shift.
Alg. Cerca exacta d’un patró (text on-line) Algorismes més eficients (Navarro & Raffinot) BNDM : Backward Nondeterministic Dawg Matching | | BOM : Backward Oracle Matching 64 32 16 Horspool 8 BOM BNDM 4 Long. patró 2 w 2 4 8 16 32 64 128 256
Autòmata Factor Oracle G T A G T T A G T A G T A G T T A G T A This new state recognizes all the factors that ends in the fourth character that cannot be recognized before. Recognize all the factors of the prefix of length four Factor Oracle of word G T A T G T A : recognize all the factors. All states are final ==> Recognize all the factors … and more Hip: recognize all the factors of GTA
Autòmata Factor Oracle: algorisme ? Algorithm: for i=1 to p do Afegir transicions que reconeguin factors acabats a i;
Autòmata Factor Oracle: algorisme T T Que passa si el següent caràcter existeix?
Autòmata Factor Oracle: algorisme T T Que passa si el següent caràcter no existeix?
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A and it recognizes words that are not factors like GTGTA. But, if the automaton doesn’t recognize it’s not a factor! That’s the strategy of the BOM algorithm .
Algorisme BOM (Backward Oracle Matching) • Com fa la comparació? Text : Patró : Autòmata: Factor Oracle Comproba si el sufix és factor del patró • Com es determina la següent posició de la finestra? a • Si la a no s’ha trobat a • Si arriben a l’estat final de l’autòmat amb la a
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G A... • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G A T G T A T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G A T G T A T G A T G T A T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G ... A T G T A T G A T G T A T G A T G T A T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G
Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A A T G T G T A G A C A T G T A T G G T G ... A T G T A T G A T G T A T G A T G T A T G A T G T A T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG A T G T A T G