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

Implement forward and backward algorithms using a rescaling approach.

This scales the f and b variables, so that they remain within a manageable numerical interval during calculations. This approach is described in Durbin et al. on p 78.

This approach is a little more straightforward then log transformation but may still give underflow errors for some types of models. In these cases, the LogDPAlgorithms class should be used.

# Link to this section Summary

## Functions

Initialize the scaled approach to calculating probabilities

Calculate the value of the backward recursion

Calculate the next scaling variable for a sequence position

Calculate the value of the forward recursion

# Link to this section Functions

Initialize the scaled approach to calculating probabilities.

Arguments:

- markov_model — The current Markov model we are working with.
- sequence — A TrainingSequence object that must have a set of emissions to work with.

Calculate the value of the backward recursion.

Arguments:

- cur_state — The letter of the state we are calculating the forward variable for.
- sequence_pos — The position we are at in the training seq.
- backward_vars — The current set of backward variables

Calculate the next scaling variable for a sequence position.

This utilizes the approach of choosing s values such that the sum of all of the scaled f values is equal to 1.

Arguments:

- seq_pos — The current position we are at in the sequence.
- previous_vars — All of the forward or backward variables calculated so far.

Returns:

- The calculated scaling variable for the sequence item.

Calculate the value of the forward recursion.

Arguments:

- cur_state — The letter of the state we are calculating the forward variable for.
- sequence_pos — The position we are at in the training seq.
- forward_vars — The current set of forward variables