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