Package Bio :: Package HMM :: Module DynamicProgramming :: Class ScaledDPAlgorithms
[show private | hide private]
[frames | no frames]

Class ScaledDPAlgorithms

AbstractDPAlgorithms --+
                       |
                      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 straightfoward then log transformation but may still give underflow errors for some types of models. In these cases, the LogDPAlgorithms class should be used.
Method Summary
  __init__(self, markov_model, sequence)
Initialize the scaled approach to calculating probabilities.
  _backward_recursion(self, cur_state, sequence_pos, backward_vars)
Calculate the value of the backward recursion
  _calculate_s_value(self, seq_pos, previous_vars)
Calculate the next scaling variable for a sequence position.
  _forward_recursion(self, cur_state, sequence_pos, forward_vars)
Calculate the value of the forward recursion.
    Inherited from AbstractDPAlgorithms
  backward_algorithm(self)
Calculate sequence probability using the backward algorithm.
  forward_algorithm(self)
Calculate sequence probability using the forward algorithm.
  _foward_recursion(self, cur_state, sequence_pos, forward_vars)
Calculate the forward recursion value.

Method Details

__init__(self, markov_model, sequence)
(Constructor)

Initialize the scaled approach to calculating probabilities. Arguments:

o markov_model -- The current Markov model we are working with.

o sequence -- A TrainingSequence object that must have a set of emissions to work with.
Overrides:
Bio.HMM.DynamicProgramming.AbstractDPAlgorithms.__init__

_backward_recursion(self, cur_state, sequence_pos, backward_vars)

Calculate the value of the backward recursion

Arguments:

o cur_state -- The letter of the state we are calculating the forward variable for.

o sequence_pos -- The position we are at in the training seq.

o backward_vars -- The current set of backward variables
Overrides:
Bio.HMM.DynamicProgramming.AbstractDPAlgorithms._backward_recursion

_calculate_s_value(self, seq_pos, previous_vars)

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:

o seq_pos -- The current position we are at in the sequence.

o previous_vars -- All of the forward or backward variables calculated so far.

Returns:

o The calculated scaling variable for the sequence item.

_forward_recursion(self, cur_state, sequence_pos, forward_vars)

Calculate the value of the forward recursion.

Arguments:

o cur_state -- The letter of the state we are calculating the forward variable for.

o sequence_pos -- The position we are at in the training seq.

o forward_vars -- The current set of forward variables

Generated by Epydoc 2.1 on Thu Aug 10 20:01:09 2006 http://epydoc.sf.net