Package Bio :: Package HMM :: Module MarkovModel :: Class MarkovModelBuilder
[hide private]
[frames] | no frames]

Class MarkovModelBuilder

source code

object --+
         |
        MarkovModelBuilder

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.

Instance Methods [hide private]
 
__init__(self, state_alphabet, emission_alphabet)
Initialize a builder to create Markov Models.
source code
 
_all_blank(self, first_alphabet, second_alphabet)
Return a dictionary with all counts set to zero.
source code
 
_all_pseudo(self, first_alphabet, second_alphabet)
Return a dictionary with all counts set to a default value.
source code
 
get_markov_model(self)
Return the markov model corresponding with the current parameters.
source code
 
set_initial_probabilities(self, initial_prob)
Set initial state probabilities.
source code
 
set_equal_probabilities(self)
Reset all probabilities to be an average value.
source code
 
set_random_initial_probabilities(self)
Set all initial state probabilities to a randomly generated distribution.
source code
 
set_random_transition_probabilities(self)
Set all allowed transition probabilities to a randomly generated distribution.
source code
 
set_random_emission_probabilities(self)
Set all allowed emission probabilities to a randomly generated distribution.
source code
 
set_random_probabilities(self)
Set all probabilities to randomly generated numbers.
source code
 
allow_all_transitions(self)
A convenience function to create transitions between all states.
source code
 
allow_transition(self, from_state, to_state, probability=None, pseudocount=None)
Set a transition as being possible between the two states.
source code
 
destroy_transition(self, from_state, to_state)
Restrict transitions between the two states.
source code
 
set_transition_score(self, from_state, to_state, probability)
Set the probability of a transition between two states.
source code
 
set_transition_pseudocount(self, from_state, to_state, count)
Set the default pseudocount for a transition.
source code
 
set_emission_score(self, seq_state, emission_state, probability)
Set the probability of a emission from a particular state.
source code
 
set_emission_pseudocount(self, seq_state, emission_state, count)
Set the default pseudocount for an emission.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  DEFAULT_PSEUDO = 1
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, state_alphabet, emission_alphabet)
(Constructor)

source code 
Initialize a builder to create Markov Models.

Arguments:

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

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

Overrides: object.__init__

_all_blank(self, first_alphabet, second_alphabet)

source code 
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(self, first_alphabet, second_alphabet)

source code 
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.

get_markov_model(self)

source code 
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_initial_probabilities(self, initial_prob)

source code 
Set initial state probabilities.

initial_prob is a dictionary mapping states to probabilities.
Suppose, for example, that the state alphabet is ['A', 'B']. Call
set_initial_prob({'A': 1}) to guarantee that the initial
state will be 'A'. Call set_initial_prob({'A': 0.5, 'B': 0.5})
to make each initial state equally probable.

This method must now be called in order to use the Markov model
because the calculation of initial probabilities has changed
incompatibly; the previous calculation was incorrect.

If initial probabilities are set for all states, then they should add up
to 1. Otherwise the sum should be <= 1. The residual probability is
divided up evenly between all the states for which the initial
probability has not been set. For example, calling
set_initial_prob({}) results in P('A') = 0.5 and P('B') = 0.5,
for the above example.

set_equal_probabilities(self)

source code 
Reset all probabilities to be an average value.

Resets the values of all initial probabilities and 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_initial_probabilities(self)

source code 
Set all initial state probabilities to a randomly generated distribution.
Returns the dictionary containing the initial probabilities.

set_random_transition_probabilities(self)

source code 
Set all allowed transition probabilities to a randomly generated distribution.
Returns the dictionary containing the transition probabilities.

set_random_emission_probabilities(self)

source code 
Set all allowed emission probabilities to a randomly generated
distribution.  Returns the dictionary containing the emission
probabilities.

set_random_probabilities(self)

source code 
Set all probabilities to randomly generated numbers.

Resets probabilities of all initial states, transitions, and
emissions to random values.

allow_all_transitions(self)

source code 
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(self, from_state, to_state, probability=None, pseudocount=None)

source code 
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.

destroy_transition(self, from_state, to_state)

source code 
Restrict transitions between the two states.

Raises:
KeyError if the transition is not currently allowed.

set_transition_score(self, from_state, to_state, probability)

source code 
Set the probability of a transition between two states.

Raises:
KeyError if the transition is not allowed.

set_transition_pseudocount(self, from_state, to_state, count)

source code 
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.

set_emission_score(self, seq_state, emission_state, probability)

source code 
Set the probability of a emission from a particular state.

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

set_emission_pseudocount(self, seq_state, emission_state, count)

source code 
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.