# biopython v1.71.0 Bio.HMM.DynamicProgramming.AbstractDPAlgorithms

An abstract class to calculate forward and backward probabilities.

This class should not be instantiated directly, but should be used through a derived class which implements proper scaling of variables.

This class is just meant to encapsulate the basic forward and backward algorithms, and allow derived classes to deal with the problems of multiplying probabilities.

Derived class of this must implement:

- _forward_recursion — Calculate the forward values in the recursion using some kind of technique for preventing underflow errors.
- _backward_recursion — Calculate the backward values in the recursion step using some technique to prevent underflow errors.

# Link to this section Summary

## Functions

Initialize to calculate forward and backward probabilities

Calculate the backward recursion value

Calculate the forward recursion value

Calculate sequence probability using the backward algorithm

Calculate sequence probability using the forward algorithm

# Link to this section Functions

Initialize to calculate forward and backward probabilities.

Arguments:

- markov_model — The current Markov model we are working with.
- sequence — A training sequence containing a set of emissions.

Calculate the backward recursion value.

Calculate the forward recursion value.

Calculate sequence probability using the backward algorithm.

This implements the backward algorithm, as described on p58-59 of Durbin et al.

Returns:

- A dictionary containing the backwards variables. This has keys of the form (state letter, position in the training sequence), and values containing the calculated backward variable.

Calculate sequence probability using the forward algorithm.

This implements the forward algorithm, as described on p57-58 of Durbin et al.

Returns:

- A dictionary containing the forward variables. This has keys of the form (state letter, position in the training sequence), and values containing the calculated forward variable.
- The calculated probability of the sequence.