The document discusses pairwise sequence alignment and dynamic programming algorithms for computing optimal alignments. It covers:
- Assumptions of sequence evolution including substitutions, insertions, deletions, duplications, and domain reuse.
- Using sequence comparison to discover functional and evolutionary relationships by identifying similar sequences and orthologs with similar functions.
- The dot plot method for discovering sequence similarity by plotting sequences against each other in a matrix and identifying diagonals of matches.
- Dynamic programming algorithms that compute the optimal alignment score in quadratic time and linear space by breaking the problem into overlapping subproblems.
- Extensions of the basic algorithm to handle affine gap penalties by introducing three matrices to track alignments ending in matches, gaps