Felsenstein's tree-pruning algorithm
In statistical genetics, Felsenstein's tree-pruning algorithm, attributed to Joseph Felsenstein, is an algorithm for computing the likelihood of an evolutionary tree from nucleic acid sequence data.
The algorithm is often used as a subroutine in a search for a maximum likelihood estimate for an evolutionary tree. Further, it can be used in a hypothesis test for whether evolutionary rates are constant. It can also be used to provide error estimates for the parameters describing an evolutionary tree.