Tècniques i Eines Bioinformàtiques 22/02/2019 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
Algorismes i estructures eficients de cerca 22/02/2019 String matching: definition of the problem (text,pattern) Exact matching: depends on what we have: text or patterns The patterns ---> Data structures for the patterns 1 pattern ---> The algorithm depends on |p| and || k patterns ---> The algorithm depends on k, |p| and || The text ----> Data structure for the text (suffix tree, ...) Approximate matching: Dynamic programming Sequence alignment (pairwise and multiple)
Approximate string matching 22/02/2019 For instance, given the sequence CTACTACTACGTGACTAATACTGATCGTAGCTAC… search for the pattern ACTGA allowing one error… … but what is the meaning of “one error”? As you have seen this morning ....
Edit distance The edit distance d between two strings is the 22/02/2019 We accept three types of errors: 1. Mismatch: ACCGTGAT ACCGAGAT 2. Insertion: ACCGTGAT ACCGATGAT Indel 3. Deletion: ACCGTGAT ACCGGAT The edit distance d between two strings is the minimum number of substitutions,insertions and deletions needed to transform the first string into the second one As you have seen this morning .... d(ACT,ACT)= d(ACT,AC)= d(ACT,C)= d(ACT,)= d(AC,ATC)= d(ACTTG,ATCTG)=
Edit distance The edit distance d between two strings is the 22/02/2019 We accept three types of errors: 1. Mismatch: ACCGTGAT ACCGAGAT 2. Insertion: ACCGTGAT ACCGATGAT Indel 3. Deletion: ACCGTGAT ACCGGAT The edit distance d between two strings is the minimum number of substitutions,insertions and deletions needed to transform the first string into the second one As you have seen this morning .... d(ACT,ACT)= d(ACT,AC)= d(ACT,C)= d(ACT,)= d(AC,ATC)= d(ACTTG,ATCTG)= 1 2 3 1 2
Edit distance and alignment of strings 22/02/2019 The Edit distance is related with the best alignment of strings Given d(ACT,ACT)=0 d(ACT,AC)=1 d(ACTTG,ATCTG)=2 which is the best alignment in every case? ACT and ACT : ACT ACT ACT and AT: ACT A -T ACTTG and ATCTG: As you have seen this morning .... ACTTG ATCTG ACT - TG A - TCTG Then, the alignment suggest the substitutions, insertions and deletions to transform one string into the other
Edit distance and alignment of strings 22/02/2019 But which is the distance between the strings ACGCTATGCTATACG and ACGGTAGTGACGC? … and the best alignment between them? 1966 was the first time this problem was discussed… and the algorithm was proposed in 1968,1970,… As you have seen this morning .... using the technique called “Dynamic programming”
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G The cell contains the distance between AC and CTACT. As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G ? As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G ? As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T 0 1 A C T G ? - C As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T 0 1 2 A C T G ? - - CT As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T 0 1 2 3 4 5 6 7 8 … A C T G - - - - - - CTACTA As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T 0 1 2 3 4 5 6 7 8 … A ? C ? T ? G A As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T 0 1 2 3 4 5 6 7 8 … A 1 C 2 T 3 G… A ACT - - - As you have seen this morning ....
Edit distance and alignment of strings 22/02/2019 C T A C T A C T A C G T A C T G C T A C T A C T A C G T 0 1 2 3 4 5 6 7 8 … A 1 C 2 T 3 G A BA(AC,CTA) - C d(AC,CTA)+1 As you have seen this morning .... BA(A,CTA) C BA(AC,CTAC)= best d(A,CTA) d(AC,CTAC)=min BA(A,CTAC) C - d(A,CTAC)+1
Edit distance and alignment of strings 22/02/2019 Connect to http://alggen.lsi.upc.es/docencia/ember/leed/Tfc1.htm and use the global method.
Edit distance and alignment of strings 22/02/2019 How this algorithm can be applied to the approximate search? to the K-approximate string searching?
K-approximate string searching 22/02/2019 C T A C T A C T A C G T A C T G G T G A A … A C T G This cell …
K-approximate string searching 22/02/2019 C T A C T A C T A C G T A C T G G T G A A … A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters
K-approximate string searching 22/02/2019 C T A C T A C T A C G T A C T G G T G A A … A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters
K-approximate string searching 22/02/2019 * * * * * * C T A C G T A C T G G T G A A … A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters… …no matter where they appears in the text, then…
K-approximate string searching 22/02/2019 * * * * * * C T A C G T A C T G G T G A A … A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters… …no matter where they appears in the text, then…
K-approximate string searching 22/02/2019 * * * * * * C T A C G T A C T G G T G A A … A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters… …no matter where they appears in the text, then…
K-approximate string searching 22/02/2019 C T A C T A C T A C G T A C T G G T G A A … 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A C T G This cell gives the distance between (ACTGA, CT…GTA)… …but we only are interested in the last characters… …no matter where they appears in the text, then
K-approximate string searching 22/02/2019 Connect to http://alggen.lsi.upc.es/docencia/ember/leed/Tfc1.htm and use the semi-global method.
Pairwise and multiple alignment Bioinformatics 22/02/2019 Pairwise and multiple alignment
Pairwise alignment Edit distance: match=0 mismatch=1 indel=1 22/02/2019 Edit distance: match=0 mismatch=1 indel=1 d(A,CTAC)+1 d(AC,CTACT)=minimum d(A,CTA)….+1 d(AC,CTA)+1 Similarity: match=1 mismatch=-1 indel=-2 As you have seen this morning .... s(A,CTAC)-2 s(AC,CTACT)=maximum s(A,CTA) 1 s(AC,CTA)-2 - +
Pairwise alignment Connect to http://alggen.lsi.upc.es 22/02/2019 Connect to http://alggen.lsi.upc.es Links to TEACHING EMBER LePA
Pairwise to multiple alignment 22/02/2019 What happens with three strings? Let n be their lenght, then the cost becomes S3 S2 S1 A C -1 __ O(n3) “O(23)” “O(32)” And with k strings? O(nk 2k k2)
Multiple alignment 22/02/2019 Programs of multialignment use different heuristics: Clustal (Progressive alignment) http://www.ebi.ac.uk/clustalw TCoffee (Progressive alignment + data bases) http://igs-server.cnrs-mrs.fr/Tcoffee_cgi/index.cgi HMM (Hidden Markov Models)
Multiple alignment Connect to http://alggen.lsi.upc.es/ 22/02/2019 Connect to http://alggen.lsi.upc.es/ and follow the links TEACHING EMBER.