This question already has an answer here:

Why does BLAST use Local alignment, not Global alignment? And when would a global alignment be useful?


marked as duplicate by rg255, March Ho, James, fileunderwater, kmm Mar 14 '16 at 22:40

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ This sounds a little like a homework question. Otherwise, there are too many answers, so it would be good to narrow down the question. $\endgroup$ – skymningen Mar 10 '16 at 13:11

BLAST was devised to compare one sequence (the query sequence) with all the sequences in a database (target sequences), in particular the Genbank database(s). In 2012 Genbank contained over 3x1011 nucleotides in approx 109 sequences. So it is not feasible to do a rigorous comparison of the query sequence with each of the target sequences in the database, e.g. by the dynamic programming method, either local or global. It would just take too long. Instead BLAST uses heuristics to get the most likely best matches in a reasonable time.

The key assumptions of one of the heurists used is that any good overall match between sequences will contain some high-quality short matches, called high-scoring pairs (HSPs). (HSPs would be perfect matches of short runs of nucleotides, or high-score matches of amino acids (tripeptides) when one uses an amino acid comparison scoring matrix.) The program can make an index or library of those HSPs present in the query sequence and then just compare these (i.e. make a local alignment) in turn with target database sequences — a great time saving. So that is the basic answer to the first part of your question.

Just to quickly complete the story, an attempt is then made to use these high scoring pairs as 'seeds' to extend the alignment in either direction, and high scoring target sequences are saved and ranked.

An answer to your second question is you would do a global alignment when you were working with just a couple of sequences and had some scientific reason to believe that they were related, even though there were regions that had diverged appreciably. For example, you might be aware of key rare amino acids or nucleotide sequence motifs that should align in these regions and want to display them. Or you might want to align a protein of unknown three-dimensional structure with a related one of known structure to model it. But you wouldn't use BLAST to do the alignment, you'd probably use an implementation of the Needleman and Wunsch dynamic programming algorithm.


Not the answer you're looking for? Browse other questions tagged or ask your own question.