Table of Contents

Class: MarkovModelBuilder Bio/HMM/MarkovModel.py

Interface to build up a Markov Model.

This class is designed to try to separate the task of specifying the Markov Model from the actual model itself. This is in hopes of making the actual Markov Model classes smaller.

So, this builder class should be used to create Markov models instead of trying to initiate a Markov Model directly.

Methods   
__init__
_all_blank
_all_pseudo
allow_all_transitions
allow_transition
destroy_transition
get_markov_model
set_emission_pseudocount
set_emission_score
set_equal_probabilities
set_random_probabilities
set_transition_pseudocount
set_transition_score
  __init__ 
__init__ (
        self,
        state_alphabet,
        emission_alphabet,
        )

Initialize a builder to create Markov Models.

Arguments:

  • state_alphabet -- An alphabet containing all of the letters that can appear in the states

  • emission_alphabet -- An alphabet containing all of the letters for states that can be emitted by the HMM.

  _all_blank 
_all_blank (
        self,
        first_alphabet,
        second_alphabet,
        )

Return a dictionary with all counts set to zero.

This uses the letters in the first and second alphabet to create a dictionary with keys of two tuples organized as (letter of first alphabet, letter of second alphabet). The values are all set to 0.

  _all_pseudo 
_all_pseudo (
        self,
        first_alphabet,
        second_alphabet,
        )

Return a dictionary with all counts set to a default value.

This takes the letters in first alphabet and second alphabet and creates a dictionary with keys of two tuples organized as: (letter of first alphabet, letter of second alphabet). The values are all set to the value of the class attribute DEFAULT_PSEUDO.

  allow_all_transitions 
allow_all_transitions ( self )

A convenience function to create transitions between all states.

By default all transitions within the alphabet are disallowed; this is a way to change this to allow all possible transitions.

  allow_transition 
allow_transition (
        self,
        from_state,
        to_state,
        probability=None,
        pseudocount=None,
        )

Set a transition as being possible between the two states.

probability and pseudocount are optional arguments specifying the probabilities and pseudo counts for the transition. If these are not supplied, then the values are set to the default values.

Raises: KeyError -- if the two states already have an allowed transition.

Exceptions   
KeyError("Transtion from %s to %s is already allowed." %( from_state, to_state ) )
  destroy_transition 
destroy_transition (
        self,
        from_state,
        to_state,
        )

Restrict transitions between the two states.

Raises: KeyError if the transition is not currently allowed.

Exceptions   
KeyError("Transition from %s to %s is already disallowed." %( from_state, to_state ) )
  get_markov_model 
get_markov_model ( self )

Return the markov model corresponding with the current parameters.

Each markov model returned by a call to this function is unique (ie. they don't influence each other).

  set_emission_pseudocount 
set_emission_pseudocount (
        self,
        seq_state,
        emission_state,
        count,
        )

Set the default pseudocount for an emission.

To avoid computational problems, it is helpful to be able to set a default pseudocount to start with for estimating transition and emission probabilities (see p62 in Durbin et al for more discussion on this. By default, all emissions have a pseudocount of 1.

Raises: KeyError if the emission from the given state is not allowed.

Exceptions   
KeyError("Emission of %s from %s is not allowed." %( emission_state, seq_state ) )
  set_emission_score 
set_emission_score (
        self,
        seq_state,
        emission_state,
        probability,
        )

Set the probability of a emission from a particular state.

Raises: KeyError if the emission from the given state is not allowed.

Exceptions   
KeyError("Emission of %s from %s is not allowed." %( emission_state, seq_state ) )
  set_equal_probabilities 
set_equal_probabilities ( self )

Reset all probabilities to be an average value.

This resets the values of all allowed transitions and all allowed emissions to be equal to 1 divided by the number of possible elements.

This is useful if you just want to initialize a Markov Model to starting values (ie. if you have no prior notions of what the probabilities should be -- or if you are just feeling too lazy to calculate them :-).

Warning 1
this will reset all currently set probabilities.
Warning 2
This just sets all probabilities for transitions and emissions to total up to 1, so it doesn't ensure that the sum of each set of transitions adds up to 1.
  set_random_probabilities 
set_random_probabilities ( self )

Set all probabilities to randomly generated numbers.

This will reset the value of all allowed transitions and emissions to random values.

Warning 1
This will reset any currently set probabibilities.
Warning 2
This does not check to ensure that the sum of all of the probabilities is less then 1. It just randomly assigns a probability to each
  set_transition_pseudocount 
set_transition_pseudocount (
        self,
        from_state,
        to_state,
        count,
        )

Set the default pseudocount for a transition.

To avoid computational problems, it is helpful to be able to set a default pseudocount to start with for estimating transition and emission probabilities (see p62 in Durbin et al for more discussion on this. By default, all transitions have a pseudocount of 1.

Raises: KeyError if the transition is not allowed.

Exceptions   
KeyError("Transition from %s to %s is not allowed." %( from_state, to_state ) )
  set_transition_score 
set_transition_score (
        self,
        from_state,
        to_state,
        probability,
        )

Set the probability of a transition between two states.

Raises: KeyError if the transition is not allowed.

Exceptions   
KeyError("Transition from %s to %s is not allowed." %( from_state, to_state ) )

Table of Contents

This document was automatically generated on Mon Jul 1 12:03:09 2002 by HappyDoc version 2.0.1