102
www.bioalgorithms. info An Introduction to Bioinformatics Algorithms Combinatorial Pattern Matching

Combinatorial Pattern Matching

Embed Size (px)

DESCRIPTION

Combinatorial Pattern Matching. Outline. Hash Tables Repeat Finding Exact Pattern Matching Keyword Trees Suffix Trees Heuristic Similarity Search Algorithms Approximate String Matching Filtration Comparing a Sequence Against a Database Algorithm behind BLAST Statistics behind BLAST - PowerPoint PPT Presentation

Citation preview

Page 1: Combinatorial  Pattern Matching

www.bioalgorithms.infoAn Introduction to Bioinformatics Algorithms

Combinatorial Pattern Matching

Page 2: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Outline• Hash Tables• Repeat Finding• Exact Pattern Matching• Keyword Trees• Suffix Trees• Heuristic Similarity Search Algorithms• Approximate String Matching• Filtration• Comparing a Sequence Against a Database• Algorithm behind BLAST• Statistics behind BLAST• PatternHunter and BLAT

Page 3: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Genomic Repeats

• Example of repeats:• ATGGTCTAGGTCCTAGTGGTC

• Motivation to find them:• Genomic rearrangements are often

associated with repeats• Trace evolutionary secrets• Many tumors are characterized by an

explosion of repeats

Page 4: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Genomic Repeats

• The problem is often more difficult: • ATGGTCTAGGACCTAGTGTTC

• Motivation to find them:• Genomic rearrangements are often

associated with repeats• Trace evolutionary secrets• Many tumors are characterized by an

explosion of repeats

Page 5: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

l-mer Repeats• Long repeats are difficult to find• Short repeats are easy to find (e.g., hashing)

• Simple approach to finding long repeats:

• Find exact repeats of short l-mers (l is usually 10 to 13)

• Use l-mer repeats to potentially extend into longer, maximal repeats

Page 6: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

l-mer Repeats (cont’d)

• There are typically many locations where an l-mer is repeated:

GCTTACAGATTCAGTCTTACAGATGGT

• The 4-mer TTAC starts at locations 3 and 17

Page 7: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Extending l-mer Repeats

GCTTACAGATTCAGTCTTACAGATGGT

• Extend these 4-mer matches:

GCTTACAGATTCAGTCTTACAGATGGT

• Maximal repeat: TTACAGAT

Page 8: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Maximal Repeats

• To find maximal repeats in this way, we need ALL start locations of all l-mers in the genome

• Hashing lets us find repeats quickly in this manner

Page 9: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: What is it?

• What does hashing do?

• For different data, generate a unique integer

• Store data in an array at the unique integer index generated from the data

• Hashing is a very efficient way to store and retrieve data

Page 10: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: Definitions

• Hash table: array used in hashing

• Records: data stored in a hash table

• Keys: identifies sets of records

• Hash function: uses a key to generate an index to insert at in hash table

• Collision: when more than one record is mapped to the same index in the hash table

Page 11: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: Example

• Where do the animals eat?

• Records: each animal

• Keys: where each animal eats

Page 12: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing DNA sequences

• Each l-mer can be translated into a binary string (A, T, C, G can be represented as 00, 01, 10, 11)

• After assigning a unique integer per l-mer it is easy to get all start locations of each l-mer in a genome

Page 13: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: Maximal Repeats

• To find repeats in a genome:• For all l-mers in the genome, note the start

position and the sequence• Generate a hash table index for each

unique l-mer sequence• In each index of the hash table, store all

genome start locations of the l-mer which generated that index

• Extend l-mer repeats to maximal repeats

Page 14: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: Collisions

• Dealing with collisions:• “Chain” all start

locations of l-mers (linked list)

Page 15: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Hashing: Summary

• When finding genomic repeats from l-mers:• Generate a hash table index for each l-mer

sequence• In each index, store all genome start

locations of the l-mer which generated that index

• Extend l-mer repeats to maximal repeats

Page 16: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Pattern Matching

• What if, instead of finding repeats in a genome, we want to find all sequences in a database that contain a given pattern?

• This leads us to a different problem, the Pattern Matching Problem

Page 17: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Pattern Matching Problem• Goal: Find all occurrences of a pattern in a text

• Input: Pattern p = p1…pn and text t = t1…tm

• Output: All positions 1< i < (m – n + 1) such that the n-letter substring of t starting at i matches p

• Motivation: Searching database for a known pattern

Page 18: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Exact Pattern Matching: A Brute-Force Algorithm

PatternMatching(p,t)1 n length of pattern p2 m length of text t3 for i 1 to (m – n + 1)4 if ti…ti+n-1 = p

5 output i

Page 19: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Exact Pattern Matching: An Example• PatternMatching

algorithm for:

• Pattern GCAT

• Text CGCATC

GCATCGCATC

GCATCGCATC

CGCATCGCAT

CGCATC

CGCATCGCAT

GCAT

Page 20: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Exact Pattern Matching: Running Time

• PatternMatching runtime: O(nm)

• Probability-wise, it’s more like O(m)

• Rarely will there be close to n comparisons in line 4

• Better solution: suffix trees

• Can solve problem in O(m) time

• Conceptually related to keyword trees

Page 21: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Example

• Keyword tree:• Apple

Page 22: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Example (cont’d)• Keyword tree:

• Apple• Apropos

Page 23: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Example (cont’d)• Keyword tree:

• Apple• Apropos• Banana

Page 24: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Example (cont’d)• Keyword tree:

• Apple• Apropos• Banana• Bandana

Page 25: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Example (cont’d)• Keyword tree:

• Apple• Apropos• Banana• Bandana• Orange

Page 26: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Properties

• Stores a set of keywords in a rooted labeled tree

• Each edge labeled with a letter from an alphabet

• Any two edges coming out of the same vertex have distinct labels

• Every keyword stored can be spelled on a path from root to some leaf

Page 27: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “appeal”

• appeal

Page 28: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “appeal”

• appeal

Page 29: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “appeal”

• appeal

Page 30: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “appeal”

• appeal

Page 31: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “apple”

• apple

Page 32: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “apple”

• apple

Page 33: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “apple”

• apple

Page 34: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “apple”

• apple

Page 35: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Thread “apple”

• apple

Page 36: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Multiple Pattern Matching Problem

• Goal: Given a set of patterns and a text, find all occurrences of any of patterns in text

• Input: k patterns p1,…,pk, and text t = t1…tm

• Output: Positions 1 < i < m where substring of t starting at i matches pj for 1 < j < k

• Motivation: Searching database for known multiple patterns

Page 37: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Multiple Pattern Matching: Straightforward Approach• Can solve as k “Pattern Matching Problems”

• Runtime:

O(kmn)

using the PatternMatching algorithm k times• m - length of the text• n - average length of the pattern

Page 38: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Multiple Pattern Matching: Keyword Tree Approach• Or, we could use keyword trees:

• Build keyword tree in O(N) time; N is total length of all patterns

• With naive threading: O(N + nm)• Aho-Corasick algorithm: O(N + m)

Page 39: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading

• To match patterns in a text using a keyword tree:• Build keyword

tree of patterns• “Thread” the

text through the keyword tree

Page 40: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Keyword Trees: Threading (cont’d)• Threading is

“complete” when we reach a leaf in the keyword tree

• When threading is “complete,” we’ve found a pattern in the text

Page 41: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Trees=Collapsed Keyword Trees• Similar to keyword trees,

except edges that form paths are collapsed

• Each edge is labeled with a substring of a text

• All internal edges have at least two outgoing edges

• Leaves labeled by the index of the pattern.

Page 42: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Tree of a Text • Suffix trees of a text is constructed for all its suffixes

ATCATG TCATG CATG ATG TG G

Keyword Tree

Suffix Tree

Page 43: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Tree of a Text • Suffix trees of a text is constructed for all its suffixes

ATCATG TCATG CATG ATG TG G

Keyword Tree

Suffix Tree

How much time does it take?

Page 44: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Tree of a Text • Suffix trees of a text is constructed for all its suffixes

ATCATG TCATG CATG ATG TG G

quadratic Keyword Tree

Suffix Tree

Time is linear in the total size of all suffixes, i.e., it is quadratic in the length of the text

Page 45: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Trees: Advantages• Suffix trees of a text is constructed for all its suffixes • Suffix trees build faster than keyword trees

ATCATG TCATG CATG ATG TG G

quadratic Keyword Tree

Suffix Tree

linear (Weiner suffix tree algorithm)

Page 46: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Use of Suffix Trees

• Suffix trees hold all suffixes of a text• i.e., ATCGC: ATCGC, TCGC, CGC, GC, C• Builds in O(m) time for text of length m

• To find any pattern of length n in a text:• Build suffix tree for text• Thread the pattern through the suffix tree• Can find pattern in text in O(n) time!

• O(n + m) time for “Pattern Matching Problem”• Build suffix tree and lookup pattern

Page 47: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Pattern Matching with Suffix TreesSuffixTreePatternMatching(p,t)1 Build suffix tree for text t2 Thread pattern p through suffix tree3 if threading is complete4 output positions of all p-matching leaves in the

tree5 else6 output “Pattern does not appear in text”

Page 48: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Suffix Trees: Example

Page 49: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Multiple Pattern Matching: Summary

• Keyword and suffix trees are used to find patterns in a text

• Keyword trees:• Build keyword tree of patterns, and thread text

through it• Suffix trees:

• Build suffix tree of text, and thread patterns through it

Page 50: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Approximate vs. Exact Pattern Matching• So far all we’ve seen exact pattern matching

algorithms• Usually, because of mutations, it makes

much more biological sense to find approximate pattern matches

• Biologists often use fast heuristic approaches (rather than local alignment) to find approximate matches

Page 51: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Heuristic Similarity Searches

• Genomes are huge: Smith-Waterman quadratic alignment algorithms are too slow

• Alignment of two sequences usually has short identical or highly similar fragments

• Many heuristic methods (i.e., FASTA) are based on the same idea of filtration• Find short exact matches, and use them as

seeds for potential match extension• “Filter” out positions with no extendable

matches

Page 52: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Dot Matrices

• Dot matrices show similarities between two sequences

• FASTA makes an implicit dot matrix from short exact matches, and tries to find long diagonals (allowing for some mismatches)

Page 53: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Dot Matrices (cont’d)

• Identify diagonals above a threshold length

• Diagonals in the dot matrix indicate exact substring matching

Page 54: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Diagonals in Dot Matrices

• Extend diagonals and try to link them together, allowing for minimal mismatches/indels

• Linking diagonals reveals approximate matches over longer substrings

Page 55: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Approximate Pattern Matching Problem

• Goal: Find all approximate occurrences of a pattern in a text

• Input: A pattern p = p1…pn, text t = t1…tm, and k, the maximum number of mismatches

• Output: All positions 1 < i < (m – n + 1) such that ti…ti+n-1 and p1…pn have at most k mismatches (i.e., Hamming distance between ti…ti+n-1 and p < k)

Page 56: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Approximate Pattern Matching: A Brute-Force Algorithm

ApproximatePatternMatching(p, t, k)1 n length of pattern p2 m length of text t3 for i 1 to m – n + 14 dist 05 for j 1 to n6 if ti+j-1 != pj

7 dist dist + 18 if dist < k9 output i

Page 57: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Approximate Pattern Matching: Running Time

• That algorithm runs in O(nm).• Landau-Vishkin algorithm: O(kn)• We can generalize the “Approximate Pattern

Matching Problem” into a “Query Matching Problem”:• We want to match substrings in a query to

substrings in a text with at most k mismatches• Motivation: we want to see similarities to

some gene, but we may not know which parts of the gene to look for

Page 58: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Query Matching Problem• Goal: Find all substrings of the query that

approximately match the text• Input: Query q = q1…qw, text t = t1…tm, n (length of matching substrings), k (maximum number of mismatches)• Output: All pairs of positions (i, j) such that the n-letter substring of q starting at i

approximately matches the n-letter substring of t starting at j, with at most k mismatches

Page 59: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Approximate Pattern Matching vs Query Matching

Page 60: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Query Matching: Main Idea

• Approximately matching strings share some perfectly matching substrings.

• Instead of searching for approximately matching strings (difficult) search for perfectly matching substrings (easy).

Page 61: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Filtration in Query Matching

• We want all n-matches between a query and a text with up to k mismatches

• “Filter” out positions we know do not match between text and query

• Potential match detection: find all matches of l-tuples in query and text for some small l

• Potential match verification: Verify each potential match by extending it to the left and right, until (k + 1) mismatches are found

Page 62: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Filtration: Match Detection

• If x1…xn and y1…yn match with at most k mismatches, they must share an l-tuple that is perfectly matched, with l = n/(k + 1)

• Break string of length n into k+1 parts, each each of length n/(k + 1)• k mismatches can affect at most k of these

k+1 parts• At least one of these k+1 parts is perfectly

matched

Page 63: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Filtration: Match Detection (cont’d)• Suppose k = 3. We would then have l=n/(k+1)=n/4:

• There are at most k mismatches in n, so at the very least there must be one out of the k+1 l –tuples without a mismatch

1…l l +1…2l 2l +1…3l 3l +1…n

1 2 k k + 1

Page 64: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Filtration: Match Verification

• For each l -match we find, try to extend the match further to see if it is substantial

query

Extend perfect match of length luntil we find an approximate match of length n with k mismatchestext

Page 65: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Filtration: Example

k = 0 k = 1 k = 2 k = 3 k = 4 k = 5

l -tuplelength n n/2 n/3 n/4 n/5 n/6

Shorter perfect matches required

Performance decreases

Page 66: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Local alignment is to slow…

• Quadratic local alignment is too slow while looking for similarities between long strings (e.g. the entire GenBank database)

),(

),(

),(

0

max

1,1

1,

,1

,

jiji

jji

iji

ji

wvs

ws

vss

Page 67: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Local alignment is to slow…

• Quadratic local alignment is too slow while looking for similarities between long strings (e.g. the entire GenBank database)

),(

),(

),(

0

max

1,1

1,

,1

,

jiji

jji

iji

ji

wvs

ws

vss

Page 68: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Local alignment is to slow…

• Quadratic local alignment is too slow while looking for similarities between long strings (e.g. the entire GenBank database)

),(

),(

),(

0

max

1,1

1,

,1

,

jiji

jji

iji

ji

wvs

ws

vss

Page 69: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Local alignment is to slow…

• Quadratic local alignment is too slow while looking for similarities between long strings (e.g. the entire GenBank database)

• Guaranteed to find the optimal local alignment

• Sets the standard for sensitivity

),(

),(

),(

0

max

1,1

1,

,1

,

jiji

jji

iji

ji

wvs

ws

vss

Page 70: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Local alignment is to slow…

• Quadratic local alignment is too slow while looking for similarities between long strings (e.g. the entire GenBank database)

• Basic Local Alignment Search Tool• Altschul, S., Gish, W., Miller, W.,

Myers, E. & Lipman, D.J.

Journal of Mol. Biol., 1990• Search sequence databases for

local alignments to a query

),(

),(

),(

0

max

1,1

1,

,1

,

jiji

jji

iji

ji

wvs

ws

vss

Page 71: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST• Great improvement in speed, with a modest

decrease in sensitivity• Minimizes search space instead of exploring entire

search space between two sequences• Finds short exact matches (“seeds”), only explores

locally around these “hits”

Page 72: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

What Similarity Reveals

• BLASTing a new gene

• Evolutionary relationship

• Similarity between protein function

• BLASTing a genome

• Potential genes

Page 73: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST algorithm

• Keyword search of all words of length w from the query of length n in database of length m with score above threshold• w = 11 for DNA queries, w =3 for proteins

• Local alignment extension for each found keyword• Extend result until longest match above

threshold is achieved• Running time O(nm)

Page 74: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST algorithm (cont’d)

Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++KSbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263

Query: KRHRKVLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLKIFLENVIRD

keyword

GVK 18GAK 16GIK 16GGK 14GLK 13GNK 12GRK 11GEK 11GDK 11

neighborhoodscore threshold

(T = 13)

Neighborhoodwords

High-scoring Pair (HSP)

extension

Page 75: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Original BLAST

• Dictionary• All words of length w

• Alignment• Ungapped extensions until score falls

below some statistical threshold• Output

• All local alignments with score > threshold

Page 76: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Original BLAST: ExampleA C G A A G T A A G G T C C A G T

C

T

G

A

T

C C

T

G

G

A

T

T

G C

G

A• w = 4

• Exact keyword match of GGTC

• Extend diagonals with mismatches until score is under 50%

• Output resultGTAAGGTCCGTTAGGTCCFrom lectures by Serafim Batzoglou

(Stanford)

Page 77: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Gapped BLAST : Example• Original BLAST

exact keyword search, THEN:

• Extend with gaps around ends of exact match until score < threshold

• Output resultGTAAGGTCCAG

TGTTAGGTC-AGT

A C G A A G T A A G G T C C A G T

C

T

G

A

T

C C

T

G

G

A

T

T

G C

G

A

From lectures by Serafim Batzoglou (Stanford)

Page 78: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Incarnations of BLAST

• blastn: Nucleotide-nucleotide

• blastp: Protein-protein

• blastx: Translated query vs. protein database

• tblastn: Protein query vs. translated database

• tblastx: Translated query vs. translated

database (6 frames each)

Page 79: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Incarnations of BLAST (cont’d)

• PSI-BLAST• Find members of a protein family or build a

custom position-specific score matrix• Megablast:

• Search longer sequences with fewer differences

• WU-BLAST: (Wash U BLAST)• Optimized, added features

Page 80: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Assessing sequence similarity• Need to know how strong an alignment can be

expected from chance alone• “Chance” relates to comparison of sequences that are

generated randomly based upon a certain sequence model

• Sequence models may take into account: • G+C content• Poly-A tails• “Junk” DNA • Codon bias• Etc.

Page 81: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST: Segment Score

• BLAST uses scoring matrices () to improve on efficiency of match detection• Some proteins may have very different

amino acid sequences, but are still similar

• For any two l-mers x1…xl and y1…yl :

• Segment pair: pair of l-mers, one from each sequence

• Segment score: li=1 (xi, yi)

Page 82: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST: Locally Maximal Segment Pairs• A segment pair is maximal if it has the best

score over all segment pairs• A segment pair is locally maximal if its score

can’t be improved by extending or shortening• Statistically significant locally maximal

segment pairs are of biological interest• BLAST finds all locally maximal segment

pairs with scores above some threshold• A significantly high threshold will filter out

some statistically insignificant matches

Page 83: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAST: Statistics

• Threshold: Altschul-Dembo-Karlin statistics• Identifies smallest segment score that is

unlikely to happen by chance• # matches above has mean E() = Kmne-;

K is a constant, m and n are the lengths of the two compared sequences• Parameter is positive root of:

x,y in A(pxpye(x,y)) = 1, where px and py are frequenceies of amino acids x and y, and A is the twenty letter amino acid alphabet

Page 84: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

P-values

• The probability of finding b HSPs with a score ≥S is given by:• (e-EEb)/b!

• For b = 0, that chance is:• e-E

• Thus the probability of finding at least one HSP with a score ≥S is:• P = 1 – e-E

Page 85: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Sample BLAST output Score E

Sequences producing significant alignments: (bits) Value

gi|18858329|ref|NP_571095.1| ba1 globin [Danio rerio] >gi|147757... 171 3e-44gi|18858331|ref|NP_571096.1| ba2 globin; SI:dZ118J2.3 [Danio rer... 170 7e-44gi|37606100|emb|CAE48992.1| SI:bY187G17.6 (novel beta globin) [D... 170 7e-44gi|31419195|gb|AAH53176.1| Ba1 protein [Danio rerio] 168 3e-43

ALIGNMENTS>gi|18858329|ref|NP_571095.1| ba1 globin [Danio rerio]Length = 148

Score = 171 bits (434), Expect = 3e-44 Identities = 76/148 (51%), Positives = 106/148 (71%), Gaps = 1/148 (0%)

Query: 1 MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPK 60 MV T E++A+ LWGK+N+DE+G +AL R L+VYPWTQR+F +FG+LS+P A+MGNPKSbjct: 1 MVEWTDAERTAILGLWGKLNIDEIGPQALSRCLIVYPWTQRYFATFGNLSSPAAIMGNPK 60

Query: 61 VKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFG 120 V AHG+ V+G + ++DN+K T+A LS +H +KLHVDP+NFRLL + + A FGSbjct: 61 VAAHGRTVMGGLERAIKNMDNVKNTYAALSVMHSEKLHVDPDNFRLLADCITVCAAMKFG 120

Query: 121 KE-FTPPVQAAYQKVVAGVANALAHKYH 147 + F VQ A+QK +A V +AL +YHSbjct: 121 QAGFNADVQEAWQKFLAVVVSALCRQYH 148

• Blast of human beta globin protein against zebra fish

Page 86: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Sample BLAST output (cont’d)

Score ESequences producing significant alignments: (bits) Value

gi|19849266|gb|AF487523.1| Homo sapiens gamma A hemoglobin (HBG1... 289 1e-75gi|183868|gb|M11427.1|HUMHBG3E Human gamma-globin mRNA, 3' end 289 1e-75gi|44887617|gb|AY534688.1| Homo sapiens A-gamma globin (HBG1) ge... 280 1e-72gi|31726|emb|V00512.1|HSGGL1 Human messenger RNA for gamma-globin 260 1e-66gi|38683401|ref|NR_001589.1| Homo sapiens hemoglobin, beta pseud... 151 7e-34gi|18462073|gb|AF339400.1| Homo sapiens haplotype PB26 beta-glob... 149 3e-33

ALIGNMENTS>gi|28380636|ref|NG_000007.3| Homo sapiens beta globin region (HBB@) on chromosome 11 Length = 81706 Score = 149 bits (75), Expect = 3e-33 Identities = 183/219 (83%) Strand = Plus / Plus Query: 267 ttgggagatgccacaaagcacctggatgatctcaagggcacctttgcccagctgagtgaa 326 || ||| | || | || | |||||| ||||| ||||||||||| |||||||| Sbjct: 54409 ttcggaaaagctgttatgctcacggatgacctcaaaggcacctttgctacactgagtgac 54468

Query: 327 ctgcactgtgacaagctgcatgtggatcctgagaacttc 365 ||||||||| |||||||||| ||||| ||||||||||||Sbjct: 54469 ctgcactgtaacaagctgcacgtggaccctgagaacttc 54507

• Blast of human beta globin DNA against human DNA

Page 87: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Timeline • 1970: Needleman-Wunsch global alignment

algorithm• 1981: Smith-Waterman local alignment algorithm• 1985: FASTA• 1990: BLAST (basic local alignment search tool)• 2000s: BLAST has become too slow in “genome vs.

genome” comparisons - new faster algorithms evolve!

• Pattern Hunter• BLAT

Page 88: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

PatternHunter: faster and even more sensitive• BLAST: matches short

consecutive sequences (consecutive seed)

• Length = k• Example (k = 11):

11111111111

Each 1 represents a “match”

• PatternHunter: matches short non-consecutive sequences (spaced seed)

• Increases sensitivity by locating homologies that would otherwise be missed

• Example (a spaced seed of length 18 w/ 11 “matches”):

111010010100110111

Each 0 represents a “don’t care”, so there can be a match or a mismatch

Page 89: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Spaced seeds

Example of a hit using a spaced seed:

How does this result in better sensitivity?

Page 90: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Why is PH better?

• BLAST: redundant hits

PatternHunter

This results in > 1 hit and creates clusters of redundant hits

This results in very few redundant hits

Page 91: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Why is PH better?

BLAST may also miss a hitGAGTACTCAACACCAACATTAGTGGGCAATGGAAAAT

|| ||||||||| |||||| | |||||| ||||||

GAATACTCAACAGCAACATCAATGGGCAGCAGAAAAT

In this example, despite a clear homology, there is no sequence of continuous matches longer than length 9. BLAST uses a length 11 and because of this, BLAST does not recognize this as a hit!

Resolving this would require reducing the seed length to 9, which would have a damaging effect on speed

9 9 matchesmatches

Page 92: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Advantage of Gapped Seeds

11 positions

11 positions

10 positions

Page 93: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Why is PH better?

• Higher hit probability• Lower expected number of random hits

Page 94: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Use of Multiple Seeds

Basic Searching Algorithm

1. Select a group of spaced seed models

2. For each hit of each model, conduct extension to find a homology.

Page 95: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Another method: BLAT

• BLAT (BLAST-Like Alignment Tool)• Same idea as BLAST - locate short sequence

hits and extend

Page 96: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAT vs. BLAST: Differences

• BLAT builds an index of the database and scans linearly through the query sequence, whereas BLAST builds an index of the query sequence and then scans linearly through the database

• Index is stored in RAM which is memory intensive, but results in faster searches

Page 97: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAT: Fast cDNA Alignments

Steps:1. Break cDNA into 500 base chunks.2. Use an index to find regions in genome similar to

each chunk of cDNA.3. Do a detailed alignment between genomic regions

and cDNA chunk.4. Use dynamic programming to stitch together

detailed alignments of chunks into detailed alignment of whole.

Page 98: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

BLAT: Indexing

• An index is built that contains the positions of each k-mer in the genome

• Each k-mer in the query sequence is compared to each k-mer in the index

• A list of ‘hits’ is generated - positions in cDNA and in genome that match for k bases

Page 99: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Indexing: An ExampleHere is an example with k = 3:

Genome: cacaattatcacgaccgc3-mers (non-overlapping): cac aat tat cac gac cgcIndex: aat 3 gac 12 cac 0,9 tat 6 cgc 15

cDNA (query sequence): aattctcac3-mers (overlapping): aat att ttc tct ctc tca cac 0 1 2 3 4 5 6

Hits: aat 0,3 cac 6,0 cac 6,9 clump: cacAATtatCACgaccgc

Multiple instances map to single index

Position of 3-mer in query, genome

Page 100: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

However…

• BLAT was designed to find sequences of 95% and greater similarity of length >40; may miss more divergent or shorter sequence alignments

Page 101: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

PatternHunter and BLAT vs. BLAST• PatternHunter is 5-100 times faster than

Blastn, depending on data size, at the same sensitivity

• BLAT is several times faster than BLAST, but best results are limited to closely related sequences

Page 102: Combinatorial  Pattern Matching

An Introduction to Bioinformatics Algorithms www.bioalgorithms.info

Resources• tandem.bu.edu/classes/ 2004/papers/pathunter_grp_prsnt.ppt• http://www.jax.org/courses/archives/2004/gsa04_king_presentation.pdf• http://www.genomeblat.com/genomeblat/blatRapShow.pps