Searching Sear ( Sub- (Sub )Strings Ulf Leser

Similar documents
Text Analytics. Searching Terms. Ulf Leser

String Search. 6th September 2018

INF 4130 / /8-2014

INF 4130 / /8-2017

Module 9: Tries and String Matching

15 Text search. P.D. Dr. Alexander Souza. Winter term 11/12

Pattern Matching. a b a c a a b. a b a c a b. a b a c a b. Pattern Matching Goodrich, Tamassia

Pattern Matching. a b a c a a b. a b a c a b. a b a c a b. Pattern Matching 1

Motifs and Logos. Six Introduction to Bioinformatics. Importance and Abundance of Motifs. Getting the CDS. From DNA to Protein 6.1.

Algorithm Theory. 13 Text Search - Knuth, Morris, Pratt, Boyer, Moore. Christian Schindelhauer

Sequence Alignment. Johannes Starlinger

Grundlagen der Bioinformatik, SS 08, D. Huson, May 2,

2. Exact String Matching

Analysis of Algorithms Prof. Karen Daniels

Pattern Matching (Exact Matching) Overview

Bioinformatics (GLOBEX, Summer 2015) Pairwise sequence alignment

String Matching II. Algorithm : Design & Analysis [19]

Lecture 3: String Matching

Algorithms and Data S tructures Structures Complexity Complexit of Algorithms Ulf Leser

String Matching Problem

Overview. Knuth-Morris-Pratt & Boyer-Moore Algorithms. Notation Review (2) Notation Review (1) The Kunth-Morris-Pratt (KMP) Algorithm

EECS730: Introduction to Bioinformatics

Three new strategies for exact string matching

Average Case Analysis of the Boyer-Moore Algorithm

Optimal spaced seeds for faster approximate string matching

HMMs and biological sequence analysis

Optimal spaced seeds for faster approximate string matching

Algorithms: COMP3121/3821/9101/9801

Computational Genomics and Molecular Biology, Fall

Graduate Algorithms CS F-20 String Matching

Markov Chains and Hidden Markov Models. = stochastic, generative models

Bioinformatics for Computer Scientists (Part 2 Sequence Alignment) Sepp Hochreiter

An Introduction to Bioinformatics Algorithms Hidden Markov Models

Lecture 5: The Shift-And Method

Computational Biology

O 3 O 4 O 5. q 3. q 4. Transition

Bioinformatics and BLAST

DNA Feature Sensors. B. Majoros

BLAST: Basic Local Alignment Search Tool

Lecture 8 Learning Sequence Motif Models Using Expectation Maximization (EM) Colin Dewey February 14, 2008

Hidden Markov Models

String Matching. Thanks to Piotr Indyk. String Matching. Simple Algorithm. for s 0 to n-m. Match 0. for j 1 to m if T[s+j] P[j] then

CSE182-L7. Protein Sequence Analysis Patterns (regular expressions) Profiles HMM Gene Finding CSE182

Efficient Sequential Algorithms, Comp309

Lecture 4: September 19

A Multiple Sliding Windows Approach to Speed Up String Matching Algorithms

Pair Hidden Markov Models

Lecture 2: Pairwise Alignment. CG Ron Shamir

Knuth-Morris-Pratt Algorithm

Jumbled String Matching: Motivations, Variants, Algorithms

Fast String Searching. J Strother Moore Department of Computer Sciences University of Texas at Austin

Lecture 5: September Time Complexity Analysis of Local Alignment

Computational Biology Lecture 5: Time speedup, General gap penalty function Saad Mneimneh

On Boyer-Moore Preprocessing

Finding all covers of an indeterminate string in O(n) time on average

Data Mining in Bioinformatics HMM

All three must be approved Deadlines around: 21. sept, 26. okt, and 16. nov

Algorithms and Data Structures

Samson Zhou. Pattern Matching over Noisy Data Streams

String Matching. Jayadev Misra The University of Texas at Austin December 5, 2003

Mechanized Operational Semantics

Multiple Pattern Matching

Large-Scale Genomic Surveys

Algorithms in Bioinformatics

On the Monotonicity of the String Correction Factor for Words with Mismatches

Hidden Markov Models Hamid R. Rabiee

Comparative Gene Finding. BMI/CS 776 Spring 2015 Colin Dewey

Text Searching. Thierry Lecroq Laboratoire d Informatique, du Traitement de l Information et des

Bio nformatics. Lecture 3. Saad Mneimneh

Lecture 2, 5/12/2001: Local alignment the Smith-Waterman algorithm. Alignment scoring schemes and theory: substitution matrices and gap models

Fast profile matching algorithms A survey

Hidden Markov Models

Lecture Notes: Markov chains

BLAST: Target frequencies and information content Dannie Durand

Mining Infrequent Patterns of Two Frequent Substrings from a Single Set of Biological Sequences

Moreover, the circular logic

Lecture 3: Markov chains.

Algorithms in Bioinformatics FOUR Pairwise Sequence Alignment. Pairwise Sequence Alignment. Convention: DNA Sequences 5. Sequence Alignment

1/22/13. Example: CpG Island. Question 2: Finding CpG Islands

Discovering Most Classificatory Patterns for Very Expressive Pattern Classes

Neyman-Pearson. More Motifs. Weight Matrix Models. What s best WMM?

String Matching with Variable Length Gaps

First generation sequencing and pairwise alignment (High-tech, not high throughput) Analysis of Biological Sequences

Pairwise Alignment. Guan-Shieng Huang. Dept. of CSIE, NCNU. Pairwise Alignment p.1/55

Protein Bioinformatics. Rickard Sandberg Dept. of Cell and Molecular Biology Karolinska Institutet sandberg.cmb.ki.

On-line String Matching in Highly Similar DNA Sequences

20 Grundlagen der Bioinformatik, SS 08, D. Huson, May 27, Global and local alignment of two sequences using dynamic programming

Statistical Machine Learning Methods for Biomedical Informatics II. Hidden Markov Model for Biological Sequences

Proofs, Strings, and Finite Automata. CS154 Chris Pollett Feb 5, 2007.

6.047 / Computational Biology: Genomes, Networks, Evolution Fall 2008

Stephen Scott.

Markov Models & DNA Sequence Evolution

Lecture 4: Evolutionary Models and Substitution Matrices (PAM and BLOSUM)

Statistical Machine Learning Methods for Bioinformatics II. Hidden Markov Model for Biological Sequences

Formal Definition of Computation. August 28, 2013

Maximal Unbordered Factors of Random Strings arxiv: v1 [cs.ds] 14 Apr 2017

Tandem Mass Spectrometry: Generating function, alignment and assembly

CMPSCI 311: Introduction to Algorithms Second Midterm Exam

Was T. rex Just a Big Chicken? Computational Proteomics

Intrusion Detection and Malware Analysis

Transcription:

Searching (Sub-)Strings Ulf Leser

This Lecture Exact substring search Naïve Boyer-Moore Searching with profiles Sequence profiles Ungapped approximate search Statistical evaluation of search results Ulf Leser: Bioinformatics, Summer Semester 2011 2

Searching Strings (aka Pattern Matching) Exact matching Given strings s and t: Find all occurrences of s in t Given S and t: Find all occurrences of any s S in t Approximate matching Given s and t: Find all approximate occurrences of s in t With or without gaps? With or without specific replacement scores? Given s and t: Find s, t such that s similar to t and s is a substring of s and t is a substring of t Given s and T Find all t T that are similar to s Find all t T containing i a t similar il to a s contained in s Many more variants Ulf Leser: Bioinformatics, Summer Semester 2011 3

Strings A string (or sequence) S is an ordered list of characters from an alphabet Σ S is the length of S S[i] is the character at position i in S S[i..j] is the substring from position i to position j in S S[i..j] is an empty string if i >j S[1..i] is a prefix of S ending at position i S[i..] is a suffix of S starting at position i Alphabet Usually: Σ={A, {, C, G, T} Often, we need blanks: Σ ={A, C, G, T, _} Lower/upper case: S may denote a set of strings, or a sequence of characters (a string) Ulf Leser: Bioinformatics, Summer Semester 2011 4

Exact Matching Given P, T with P << T Find all occurrences of P in T Example of application: Restriction enzymes Cut at precisely defined sequence motifs of length 4-10 Are used to generate fragments (for later sequencing) Example: Eco RV - GATATC tcagcttactaattaaaaattctttctagtaagtgctaagatcaagaaaataaattaaaaataatggaacatggcacattttcctaaactcttcacagattgctaatgat tattaattaaagaataaatgttataattttttatggtaacggaatttcctaaaatattaattcaagcaccatggaatgcaaataagaaggactctgttaattggtactat tcaactcaatgcaagtggaactaagttggtattaatactcttttttacatatatatgtagttattttaggaagcgaaggacaatttcatctgctaataaagggattacga aaaactttttaataacaaagttaaataatcattttgggaattgaaatgtcaaagataattacttcacgataagtagttgaagatagtttaaatttttctttttgtattac ttcaatgaaggtaacgcaacaagattagagtatatatggccaataaggtttgctgtaggaaaattattctaaggagatacgcgagagggcttctcaaatttattcagaga tggatgtttttagatggtggtttaagaaaagcagtattaaatccagcaaaactagaccttaggtttattaaagcgaggcaataagttaattggaattgtaaaagatatct aattcttcttcatttgttggaggaaaactagttaacttcttaccccatgcagggccatagggtcgaatacgatctgtcactaagcaaaggaaaatgtgagtgtagacttt aaaccatttttattaatgactttagagaatcatgcatttgatgttactttcttaacaatgtgaacatatttatgcgattaagatgagttatgaaaaaggcgaatatatta t t t t t t t t t t t t ttcagttacatagagattatagctggtctattcttagttataggacttttgacaagatagcttagaaaataagattatagagcttaataaaagagaacttcttggaatta gctgcctttggtgcagctgtaatggctattggtatggctccagcttactggttaggttttaatagaaaaattccccatgattgctaattatatctatcctattgagaaca acgtgcgaagatgagtggcaaattggttcattattaactgctggtgctatagtagttatccttagaaagatatataaatctgataaagcaaaatcctggggaaaatattg ctaactggtgctggtagggtttggggattggattatttcctctacaagaaatttggtgtttactgatatccttataaataatagagaaaaaattaataaagatgatat Ulf Leser: Bioinformatics, Summer Semester 2011 5

How to do it? The straight-forward way (naïve algorithm) We use two counter: t, p One (outer, t) runs through T One (inner, p) runs through P Compare characters at position T[t+p] and P[p] for t = 1 to T - P + 1 match := true; p := 1; while ((match) and (p <= P )) if (T(t + p - 1) <> P(p)) then match := false; else end for; end while; if (match) then -> OUTPUT t p := p + 1; Ulf Leser: Bioinformatics, Summer Semester 2011 6

Examples Typical case Worst case T P ctgagatcgcgta gagatc gagatc gagatc gagatc gagatc gatatc gatatc gatatc T P aaaaaaaaaaaaaa aaaaat aaaaat aaaaat aaaaat... How many comparisons do we need in the worst case? t runs through T p runs through h the entire P for every value of t Thus: P * T comparisons Indeed: The algorithm has worst-case complexity O( P * T ) T ) Ulf Leser: Bioinformatics, Summer Semester 2011 7

Other Algorithms Exact substring search has been researched for decades Boyer-Moore, Z-Box, Knuth-Morris-Pratt, Karp-Rabin, Shift-AND, All have WC complexity O( P + T ) Real performance depends much on size of alphabet and composition of strings (most have their strength in certain settings) In practice, our naïve algorithm is quite competitive for random strings and non-trivial alphabets (e.g., DNA) But we can do better: Boyer-Moore We present a simplified form BM is among the fastest algorithms in practice Note: Much better performance possible if T maybe preprocessed (up to O( P )) Ulf Leser: Bioinformatics, Summer Semester 2011 8

This Lecture Exact substring search Naïve Boyer-Moore Searching with profiles Sequence profiles Ungapped approximate search Statistical evaluation of search results Ulf Leser: Bioinformatics, Summer Semester 2011 9

Boyer-Moore Algorithm R.S. Boyer /J.S. Moore. A Fast String Searching Algorithm, Communications of the ACM, 1977 Main idea Again, we use two counters (inner loop, outer loop) Inner loop runs from right-to-left If we reach a mismatch, we know The character in T we just haven t seen This is captured by the bad character rule The suffix in P we just have seen This is captured by the good suffix rule Use this knowledge to make longer shifts in T Ulf Leser: Bioinformatics, Summer Semester 2011 10

Bad Character Rule Setting 1 We are at position t in T and compare right-to-left Let i by the position of the first mismatch in P We saw n-i+1 matches before Let x be the character at the corresponding pos (t-n+i) in T Candidates for matching x in P Case 1: x does not appear in P at all we can move t such that t-n+i is not covered by P anymore T P xabxfabzzabxzzbzzb abwxyabzz b T P xabxfabzzabwzzbzzb abwxyabzz b What next? Ulf Leser: Bioinformatics, Summer Semester 2011 11

Bad Character Rule 2 Setting 2 We are at position t in T and compare right-to-left Let i by the position of the first mismatch in P Let x be the character at the corresponding pos (t-n+i) in T Candidates for matching x in P Case 1: x does not appear in P at all Case 2: Let j be the right-most appearance of x in P and let j<i we can move t such that j and i align T P xabxkabzzabwzzbzzb abzwyabzz T P xabxkabzzabwzzbzzb abzwyabzz j i What next? Ulf Leser: Bioinformatics, Summer Semester 2011 12

Bad Character Rule 3 Setting 3 We are at position t in T and compare right-to-left Let i by the position of the first mismatch in P Let x be the character at the corresponding pos (t-n+i) in T Candidates for matching x in P Case 1: x does not appear in P at all Case 2: Let j be the right-most appearance of x in P and let j<i Case 3: As case 2, but j>i we need some more knowledge T P xabxkabzzabwzzbzzb abzwyabzz Ulf Leser: Bioinformatics, Summer Semester 2011 13

Preprocessing 1 In case 3, there are some x right from position i For small alphabets (DNA), this will almost always be the case Thus, this case 3 is the usual one These are irrelevant we need the right-most x left of i This can (and should!) be pre-computed Build a two-dimensional array A[, P ] Run through P from left-to-right (pointer i) If character c appears at position i, set all A[c,j]:=i for all j>=i Needs time (complexity?), but negligible because Pissmall small Complexity is independent from T Array: Constant lookup, needs some space (lists ) Ulf Leser: Bioinformatics, Summer Semester 2011 14

(Extended) Bad Character Rule Simple, effective for larger alphabets For random DNA, average shift-length is 4 Expected distances to the next match using EBCR Thus, n# of comparisons down to P * T /4 Worst-Case complexity does not change Why? Ulf Leser: Bioinformatics, Summer Semester 2011 15

(Extended) Bad Character Rule Simple, effective for larger alphabets For random DNA, average shift-length should be 4 Thus, n# of comparisons down to P * T /4 / Worst-Case complexity does not change Why? T P ggggggggggggggggggggggggggggggggggggggggg aggggggggggg aggggggggggg aggggggggggg aggggggggggg Ulf Leser: Bioinformatics, Summer Semester 2011 16

Good-Suffix Rule Recall: If we reach a mismatch, we know The character in T we just haven t seen The suffix in P we just have seen Good suffix rule We have just seen some matches in P (S) Where else does S appear in P? If we know the right-most appearance S of S in P, we can immediately align S with the current match in T If S does not appear once more in P, we can shift t by P T x S x S P S y S S y S Ulf Leser: Bioinformatics, Summer Semester 2011 17

Good-Suffix Rule One Improvement Actually, we can do a little better Not all S are of interest to us Ulf Leser: Bioinformatics, Summer Semester 2011 18

Good-Suffix Rule One Improvement Actually, we can do a little better Not all S are of interest to us T x t x t P t y t y t y t We only need S whose next character to the left is not y Why don t we directly require that this character is x? Of course, this could be used for further optimization Ulf Leser: Bioinformatics, Summer Semester 2011 19

Concluding Remarks Preprocessing 2 For the GSR, we need to find all occurrences of all suffixes of P in P This can be solved using our naïve algorithm for each suffix Or, more complicated, in linear time (not this lecture) WC complexity of Boyer-Moore is still O( P * T ) But average case is sub-linear WC complexity can be reduced to linear (not this lecture) Faster variants Often, using the GSR does not pay-off BM-Horspool: Instead of looking at the mismatch character x, always look at the symbol in T aligned to the last position of P Generates longer shifts on average (i is maximal) Ulf Leser: Bioinformatics, Summer Semester 2011 20

Example b b c g g b c b a a g g b b a a c a b a a b g b a a c g c a b a a b c a b c a b a a b g b a a b b c g g b c b a a g g b b a a c a b a a b g b a a c g c a b a a b c a b EBCR wins c a b a a b g b a a b b c g g b c b a a g g b b a a c a b a a b g b a a c g c a b a a b c a b GSR wins c a b a a b g b a a b b c g g b c b a a g g b b a a c a b a a b g b a a c g c a b a a b c a b GSR wins c a b a a b g b a a b b c g g b c b a a g g b b a a c a b a a b g b a a c g c a b a a b c a b Match Mismatch Good suffix Ext. Bad character c a b a a b g b a a Ulf Leser: Bioinformatics, Summer Semester 2011 21

This Lecture Exact substring search Naïve Boyer-Moore Searching with profiles Splicing Position Specific Weight Matrices Likelihood scores Ulf Leser: Bioinformatics, Summer Semester 2011 22

Approximate Search (First Instantiation) Requiring an exact match is too strict in many applications And in most bioinformatics applications More often, one is interested in matches similar to P Or can describe P only vaguely Many definitions of similar are possible For now: Searching with Position Specific Weight Matrices Also called profiles Powerful tool for many bioinformatics applications We develop the idea using an example taken from Spang et al. Genome Statistics, Lecture 2003/2005, FU Berlin Ulf Leser: Bioinformatics, Summer Semester 2011 23

Splicing Not all DNA of a gene are translated into amino acid Splicing: Removal of introns Alternative splicing: Removal of (some) exons Ulf Leser: Bioinformatics, Summer Semester 2011 24

Diversity From a gene with n exons, alternative splicing can create 2 n -1 proteins Example: Troponin T (muscle protein) 18 exons 64 different isoforms 10 exons present in all isoforms Source: Eurasnet, Alternative ti Splicing i Ulf Leser: Bioinformatics, Summer Semester 2011 25

Recognizing g Splice Sites A special enzyme (spliceosome) very precisely recognizes exon-intron boundaries in mrna To this end, it scans the sequences and is triggered by certain motifs How are these motifs characterized? Can we find them? Very often, introns start with GT (GU) and end with AG But that is not specific enough -why? In random sequences, we expect a GT (AT) at every 16 th position Thus, the average distance between a GT and an AT is 16, and we find such pairs very often But: Introns typically are larger than 100 bases Ulf Leser: Bioinformatics, Summer Semester 2011 26

Context of a Splice Site Observing real splice sites, we find no crisp context But: columns are not composed at random either How can we capture this knowledge? Ulf Leser: Bioinformatics, Summer Semester 2011 27

Position-Specific Weight Matrices Count in every column the frequencies of all bases Store the relative frequencies in an array of size P * With P being the size of the context around the splice sites At GT, all values except one are 0% and one is 100% Actually, GT is not perfectly conserved in real sequences In random sequences, all values should be 25% Ulf Leser: Bioinformatics, Summer Semester 2011 28

Vizualization: Sequence Logos Very popular Based on information content of each base at each position Which, in turn, is based on the entropy of the columns Ulf Leser: Bioinformatics, Summer Semester 2011 29

Scoring with a PSWM Eventually, we want to find potential splice sites in a genome G (e.g. to do gene prediction) We need a way to decide, given a sequence S and a PSWM A (both of the same length): Does S match A? We want to assign a score to S given A Knowing this, we can score all subsequences of length A in G Subsequences above a given threshold are considered candidates We give this question a probabilistic interpretation Assume, for each column, a dice which four faces; each face is thrown with the relative frequency as given in A for this column How high is the probability that this dice generates S? Ulf Leser: Bioinformatics, Summer Semester 2011 30

Examples In random sequences, all values in A are 25%, and all possible S would get the same probability: ¼ S But 1 st sequence (S) matches A much better than the others do Ulf Leser: Bioinformatics, Summer Semester 2011 31

This Lecture Exact substring search Naïve Boyer-Moore Searching with profiles Splicing Position Specific Weight Matrices Likelihood scores Ulf Leser: Bioinformatics, Summer Semester 2011 32

I am not Convinced (yet) Is S actually a match for A? Observations The first S from the previous slide is about as good as it can get: The best possible sequence would get a score of 0.025 (compared to 0.023) If S is not a splice site, it is an ordinary sequence. How likely is it that S is generated under this zero model? Zero model means: Equal probability for all bases p(s zero ) = ¼ 9 ~ 3.8E-6 Thus, is it much more likely (app. 6000 times more likely) that S was generated under the A model than that is was generated under the zero model Ulf Leser: Bioinformatics, Summer Semester 2011 33

Likelihood (Odds) Ratios Given two models A, Z. The likelihood ratio score s of a sequence S is the ratio of p(s A) / p(s Z) s(aaggtacgt) ~ 6000 S(CCCGTCCCC) ~ 140 s(ctggtccga) ~ 3 S(TCCGTCCCC) < 1 Also called odds score Ulf Leser: Bioinformatics, Summer Semester 2011 34

Matching with a PSWM Given G, A, Z: find all S in G with s(s)>t Straight-forward: Compute all S of length A, compute s(s) for each This requires G * A divisions and multiplications Divisions can be saved easily (how?) Can we do better? Not easily Trick: The number of match-situations are limited. Pre-compute all possible matches between q-grams and lookup values during the scan Ulf Leser: Bioinformatics, Summer Semester 2011 35

More Stable and Faster Values get quite small (close to 0) for longer A Values get quite small (close to 0) for longer A This yields problems with numeric stability in programs Better: Compute log-likelihood score s =log 2 (s) Better: Compute log likelihood score s log 2 (s) Also faster: Replace multiplication with addition = = ) ( )*...* ( log ) ( log ) '( 1 1 n S n A p A S p A S p S s + + = ) ( log ) ( log ) ( )*...* ( og ) ( og ) ( 1 1 1 1 n n n n A S p A S p Z S p Z S p Z S p S s + + = ) ( log... ) ( log 1 1 n S n Z p Z S p Ulf Leser: Bioinformatics, Summer Semester 2011 36

Beware Assume a perfectly conserved motif of length 8 The chance for a given S to match is 0.000015 low But G =3.000.000.000 Only by change, we will have ~45000 matches of S in G For PSWM, the chances for finding false hits depend on the setting of the threshold h t Higher t: Stricter search, less false hits, but may incur misses Lower t: Less strict, less misses, but many false hits A match is only an hypothesis that needs further analysis By additional knowledge (e.g.: is S part of a gene?) By experimentation (can we find an isoform spliced at S)? Ulf Leser: Bioinformatics, Summer Semester 2011 37

Pattern Matching We discussed exact matching and matching with a PSWM But motifs also may look quite differently Motifs (domains) in protein sequences Some important positions and much glue of unspecified length Pattern here may be: [AV].*[QSA]FGK.*[IV] Which positions in S should we compare to which columns in P? How can we compute P given S 1 -S 6? S 1 : M---AIDE----NKQKALAAALGQ--KQFGKGSIMRLGEDR-SMDVETISTGSLSLDI S 2 : MSDN--------KKQQALELALKQI-KQFGKGSIMKLGDG-ADHSIEAIPSGSIALDI S 3: M----AINTDTSGKQKALTMVLNQIERSFGKGAIMRLGDA-TRMRVETISTGALTLDL S 4 : M-----------DRQKALEAAVSQ--RAFGKGSIM-LGGKD---ETEVVSTRILGLDV S 5 : M------DE---NKKRALAAALGQI-KQFGKGAVMRMGDHE-RQAIPAISTGSLGLDI S 6 : MD---------------------K-EKSFGKGSIMRMGEE-VVEQVEVIPTGSIA--- Ulf Leser: Bioinformatics, Summer Semester 2011 38

Further Reading On string matching algorithms Gusfield On sequence logos and TFBS-identification Christianini & Hahn, chapter 10 Merkl & Waack, chapter 10 Ulf Leser: Bioinformatics, Summer Semester 2011 39