Dynamic programming is a programming technique to find solutions to problems in bio-sequence analysis; it compares protein and DNA sequences. Sequence comparison, gene recognition, RNA structure prediction, and hundreds of other problems are solved in dynamic programming. Some of the algorithms utilized in dynamic programming include sequence alignment, structural alignment and RNA structure prediction. The pair-wise method alignment is used to find the best-matching local or global alignment of two sequences, but the growing of those sequences has brought the need to create tools to maximize and expedite those comparisons. Based on heuristics and the local alignment algorithm of Smith-Waterman, BLAST algorithm was developed as a faster tool for similarity searching in sequence databases. This project analyzes the systematic approach of BLAST in bioinformatics by implementing the local and global algorithms, provides the BLAST methodology, and analyzes the scoring matrices and the different variants of the BLAST algorithm. |