Why does BLAST use Local alignment, not Global alignment? And when would a global alignment be useful?
1 Answer
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.