A computational technique to compare two nucleotide or protein sequences. There are two basic types of sequence alignment i.e. local alignment (local comparison of subsequences) or global alignment (end to end comparison of the entire sequences).
Nucleic acids and proteins are heteropolymers and therefore have a sequence which is read from 5' to 3' in case of nucleotides and N-terminal to C-terminal in case of proteins.
First step of comparing two nucleic acids or proteins is to compare their sequences; this process is technically a string comparison and is called sequence alignment.
In a local alignment, subsequences (substrings) of the query are compared to the reference. This method is used to find shorter stretches of high homology.
Global alignment involves and end-to-end alignment of the query to the reference. This method is used to overall compare the two genes or proteins (finding homologs). This post summarizes these methods.
Alignment process generates a score which is in very simple terms total number of matches. In case of nucleic acid there can be either a match or a mismatch but for proteins, amino acids with similar chemical properties can be considered a partial match. These scoring rules are obtained from PAM or BLOSUM matrices.
Some sequence alignment tools include:
- BLAST and its variants
More tools can be found here:
What questions can have this tag?
- Questions regarding basics of sequence alignment algorithm but not going deep into the computational aspects such as dynamic programming
- Questions related to technical aspects of running these tools (parameter suggestion, scoring etc)
- Questions related to interpretation of alignment data
- Questions related to application of sequence alignment