Probalign is a sequence alignment tool that calculates a maximum expected accuracy alignment using partition function posterior probabilities. Base pair probabilities are estimated using an estimate similar to Boltzmann distribution. The partition function is calculated using a dynamic programming approach.
Contents
Algorithm
The following describes the algorithm used by probalign to determine the base pair probabilities.
Alignment score
To score an alignment of two sequences two things are needed:
The score
Now the boltzmann weighted score of an alignment a is:
Where
The probability of an alignment assuming boltzmann distribution is given by
Where
Dynamic Programming
Let
-
Z i , j M : the partition function of all alignments of the two prefixes that end in a match. -
Z i , j I : the partition function of all alignments of the two prefixes that end in an insertion( − , y j ) . -
Z i , j D : the partition function of all alignments of the two prefixes that end in a deletion( x i , − ) .
Then we have:
Initialization
The matrixes are initialized as follows:
Recursion
The partition function for the alignments of two sequences
Base pair probability
Finally the probability that positions