ppt - UCSD CSE

advertisement
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
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
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
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
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
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Extending l-mer Repeats
GCTTACAGATTCAGTCTTACAGATGGT
• Extend these 4-mer matches:
GCTTACAGATTCAGTCTTACAGATGGT
• Maximal repeat: TTACAGAT
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
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
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
An Introduction to Bioinformatics Algorithms
Hashing: Example
• Where do the
animals eat?
• Records: each
animal
• Keys: where
each animal
eats
www.bioalgorithms.info
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 lmer in a genome
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
An Introduction to Bioinformatics Algorithms
Hashing: Collisions
• Dealing with
collisions:
• “Chain” all start
locations of l-mers
(linked list)
www.bioalgorithms.info
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
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
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Exact Pattern Matching: A Brute-Force
Algorithm
PatternMatching(p,t)
1 n  length of pattern p
2 m  length of text t
3 for i  1 to (m – n + 1)
4 if ti…ti+n-1 = p
5
output i
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Exact Pattern Matching: An Example
• PatternMatching
algorithm for:
GCAT
CGCATC
GCAT
CGCATC
• Pattern GCAT
GCAT
CGCATC
• Text CGCATC
GCAT
CGCATC
GCAT
CGCATC
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Example
• Keyword tree:
• Apple
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Example (cont’d)
• Keyword tree:
• Apple
• Apropos
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Example (cont’d)
• Keyword tree:
• Apple
• Apropos
• Banana
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Example (cont’d)
• Keyword tree:
• Apple
• Apropos
• Banana
• Bandana
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Example (cont’d)
• Keyword tree:
• Apple
• Apropos
• Banana
• Bandana
• Orange
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “appeal”
• appeal
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “appeal”
• appeal
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “appeal”
• appeal
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “appeal”
• appeal
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “apple”
• apple
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “apple”
• apple
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “apple”
• apple
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “apple”
• apple
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Keyword Trees: Threading (cont’d)
• Thread “apple”
• apple
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
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
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)
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
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
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.
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
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?
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
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
linear (Weiner suffix tree algorithm)
Suffix
Tree
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Pattern Matching with Suffix Trees
SuffixTreePatternMatching(p,t)
1 Build suffix tree for text t
2 Thread pattern p through suffix tree
3 if threading is complete
4
output positions of all p-matching leaves in the tree
5 else
6
output “Pattern does not appear in text”
An Introduction to Bioinformatics Algorithms
Suffix Trees: Example
www.bioalgorithms.info
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
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
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
An Introduction to Bioinformatics Algorithms
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)
www.bioalgorithms.info
An Introduction to Bioinformatics Algorithms
Dot Matrices (cont’d)
• Identify diagonals
above a threshold
length
• Diagonals in the dot
matrix indicate exact
substring matching
www.bioalgorithms.info
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
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)
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Approximate Pattern Matching: A
Brute-Force Algorithm
ApproximatePatternMatching(p, t, k)
1 n  length of pattern p
2 m  length of text t
3 for i  1 to m – n + 1
4
dist  0
5
for j  1 to n
6
if ti+j-1 != pj
7
dist  dist + 1
8
if dist < k
9
output i
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
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Approximate Pattern Matching vs Query 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).
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
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
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:
1…l
1
l +1…2l
2
2l +1…3l
k
3l +1…n
k+1
• 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
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
text
Extend perfect
match of
length l
until we find an
approximate
match of
length n with k
mismatches
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Filtration: Example
l -tuple
length
k=0
k=1
k=2
k=3
k=4
k=5
n
n/2
n/3
n/4
n/5
n/6
Shorter perfect matches required
Performance decreases
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)
si , j
0
s
 i 1, j   (vi ,)
 max 
si , j 1   (, w j )
si 1, j 1   (vi , w j )

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)
si , j
0
s
 i 1, j   (vi ,)
 max 
si , j 1   (, w j )
si 1, j 1   (vi , w j )

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)
si , j
0
s
 i 1, j   (vi ,)
 max 
si , j 1   (, w j )
si 1, j 1   (vi , w j )

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
si , j
0
s
 i 1, j   (vi ,)
 max 
si , j 1   (, w j )
si 1, j 1   (vi , w j )

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
si , j
0
s
 i 1, j   (vi ,)
 max 
si , j 1   (, w j )
si 1, j 1   (vi , w j )

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”
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
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)
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
BLAST algorithm (cont’d)
keyword
Query: KRHRKVLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLKIFLENVIRD
GVK 18
GAK 16
Neighborhood
GIK 16
words
GGK 14
neighborhood
GLK 13
score threshold
GNK 12
(T = 13)
GRK 11
GEK 11
GDK 11
extension
Query: 22
VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60
+++DN +G +
IR L
G+K I+ L+ E+ RG++K
Sbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263
High-scoring Pair (HSP)
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Original BLAST: Example
From lectures by Serafim Batzoglou
(Stanford)
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 result
GTAAGGTCC
GTTAGGTCC
A C G A A G T A A G G T C C A G T
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Gapped BLAST : Example
GTAAGGTCCAGT
GTTAGGTC-AGT
From lectures by Serafim Batzoglou
(Stanford)
C T G A T C C T G G A T T G C G A
• Original BLAST
exact keyword
search, THEN:
• Extend with gaps
around ends of
exact match until
score < threshold
• Output result
A C G A A G T A A G G T C C A G T
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)
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
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.
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: Sli=1 (xi, yi)
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
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 q has mean E(q) = Kmne-lq;
K is a constant, m and n are the lengths of
the two compared sequences
• Parameter l is positive root of:
S 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
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Sample BLAST output
• Blast of human beta globin protein against zebra
fish E
Score
Sequences producing significant alignments:
(bits) Value
gi|18858329|ref|NP_571095.1| ba1 globin [Danio rerio] >gi|147757...
gi|18858331|ref|NP_571096.1| ba2 globin; SI:dZ118J2.3 [Danio rer...
gi|37606100|emb|CAE48992.1| SI:bY187G17.6 (novel beta globin) [D...
gi|31419195|gb|AAH53176.1| Ba1 protein [Danio rerio]
171
170
170
168
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
Sbjct: 1
Query: 61
Sbjct: 61
MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPK 60
MV T E++A+ LWGK+N+DE+G +AL R L+VYPWTQR+F +FG+LS+P A+MGNPK
MVEWTDAERTAILGLWGKLNIDEIGPQALSRCLIVYPWTQRYFATFGNLSSPAAIMGNPK 60
VKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFG 120
V AHG+ V+G
+ ++DN+K T+A LS +H +KLHVDP+NFRLL + +
A FG
VAAHGRTVMGGLERAIKNMDNVKNTYAALSVMHSEKLHVDPDNFRLLADCITVCAAMKFG 120
Query: 121 KE-FTPPVQAAYQKVVAGVANALAHKYH 147
+ F
VQ A+QK +A V +AL +YH
Sbjct: 121 QAGFNADVQEAWQKFLAVVVSALCRQYH 148
3e-44
7e-44
7e-44
3e-43
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Sample BLAST output (cont’d)
• Blast of human beta globin DNA against humanScore
DNAE
Sequences producing significant alignments:
(bits) Value
gi|19849266|gb|AF487523.1| Homo sapiens gamma A hemoglobin (HBG1...
gi|183868|gb|M11427.1|HUMHBG3E Human gamma-globin mRNA, 3' end
gi|44887617|gb|AY534688.1| Homo sapiens A-gamma globin (HBG1) ge...
gi|31726|emb|V00512.1|HSGGL1 Human messenger RNA for gamma-globin
gi|38683401|ref|NR_001589.1| Homo sapiens hemoglobin, beta pseud...
gi|18462073|gb|AF339400.1| Homo sapiens haplotype PB26 beta-glob...
289
289
280
260
151
149
1e-75
1e-75
1e-72
1e-66
7e-34
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
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
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):
• 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”):
11111111111
111010010100110111
Each 1 represents a “match”
Each 0 represents a “don’t
care”, so there can be a
match or a mismatch
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?
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Why is PH better?
BLAST may also miss a hit
GAGTACTCAACACCAACATTAGTGGGCAATGGAAAAT
|| ||||||||| |||||| | ||||||
||||||
GAATACTCAACAGCAACATCAATGGGCAGCAGAAAAT
9 matches
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Advantage of Gapped Seeds
11 positions
11 positions
10 positions
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Why is PH better?
• Higher hit probability
• Lower expected number of random hits
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.
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
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
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.
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
An Introduction to Bioinformatics Algorithms
www.bioalgorithms.info
Indexing: An Example
Here is an example with k = 3:
Genome: cacaattatcacgaccgc
3-mers (non-overlapping): cac aat tat cac gac cgc
Index: aat 3
gac 12
cac 0,9
tat 6
cgc 15
Multiple instances map to
single index
cDNA (query sequence): aattctcac
3-mers (overlapping): aat att ttc tct ctc tca cac
0
1
2
3
4
5
6
Position of 3-mer in query, genome
Hits: aat 0,3
cac 6,0
cac 6,9
clump: cacAATtatCACgaccgc
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
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
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
Download