Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
HiddenMarkovModel Class Reference

Hidden Markov Model implementation of PILIS. More...

#include <OpenMS/ANALYSIS/ID/HiddenMarkovModel.h>

Public Member Functions

HiddenMarkovModeloperator= (const HiddenMarkovModel &)
 assignment operator More...
 
Constructors and destructors
 HiddenMarkovModel ()
 default constructor More...
 
 HiddenMarkovModel (const HiddenMarkovModel &hmm_new)
 copy constructor More...
 
virtual ~HiddenMarkovModel ()
 destructor More...
 
void writeGraphMLFile (const String &filename)
 writes the HMM into a file in GraphML format More...
 
void write (std::ostream &out) const
 writes the HMM into an outstream More...
 
double getTransitionProbability (const String &s1, const String &s2) const
 returns the transition probability of the given state names More...
 
void setTransitionProbability (const String &s1, const String &s2, double prob)
 sets the transition probability of the given state names to prob More...
 
Size getNumberOfStates () const
 return the number of states More...
 
void addNewState (HMMState *state)
 registers a new state to the HMM More...
 
void addNewState (const String &name)
 registers a new state to the HMM More...
 
void addSynonymTransition (const String &name1, const String &name2, const String &synonym1, const String &synonym2)
 add a new synonym transition to the given state names More...
 
void evaluate ()
 evaluate the HMM, estimates the transition probabilities from the training More...
 
void train ()
 trains the HMM; initial probabilities and emission probabilities of the emitting states should be set More...
 
void setInitialTransitionProbability (const String &state, double prob)
 sets the initial transition probability of the given state to prob More...
 
void clearInitialTransitionProbabilities ()
 clears the initial probabilities More...
 
void setTrainingEmissionProbability (const String &state, double prob)
 sets the emission probability of the given state to prob More...
 
void clearTrainingEmissionProbabilities ()
 clear the emission probabilities More...
 
void enableTransition (const String &s1, const String &s2)
 enables a transition; adds s1 to the predecessor list of s2 and s2 to the successor list of s1 More...
 
void disableTransition (const String &s1, const String &s2)
 disables the transition; deletes the nodes from the predecessor/successor list respectively More...
 
void disableTransitions ()
 disables all transitions More...
 
void calculateEmissionProbabilities (Map< HMMState *, double > &emission_probs)
 calculates the emission probabilities of the HMM (of course only of the non-hidden states) More...
 
void dump ()
 writes some stats to cerr More...
 
void forwardDump ()
 writes some info of the forward "matrix" to cerr More...
 
void estimateUntrainedTransitions ()
 builds a synonyms structure, needed when synonyms are used More...
 
HMMStategetState (const String &name)
 returns the state with the given name More...
 
const HMMStategetState (const String &name) const
 returns the state with the given name More...
 
void clear ()
 clears all data More...
 
void setPseudoCounts (double pseudo_counts)
 sets the pseudo count that are added instead of zero More...
 
double getPseudoCounts () const
 returns the pseudo counts More...
 
void setVariableModifications (const StringList &modifications)
 

Protected Member Functions

void disableTransition_ (HMMState *s1, HMMState *s2)
 disables the transition; deletes the nodes from the predecessor/successor list respectively More...
 
void enableTransition_ (HMMState *s1, HMMState *s2)
 enables a transition; adds s1 to the predecessor list of s2 and s2 to the successor list of s1 More...
 
void setTrainingEmissionProbability_ (HMMState *state, double prob)
 sets the emission probability of the given state to prob More...
 
void setTransitionProbability_ (HMMState *s1, HMMState *s2, double prob)
 sets the transition probability of the given states to prob More...
 
double getTransitionProbability_ (HMMState *s1, HMMState *s2) const
 returns the transition probability of the given states More...
 
void calculateForwardPart_ ()
 performs the forward algorithm More...
 
void calculateBackwardPart_ ()
 performs the backward algorithm More...
 
double getForwardVariable_ (HMMState *)
 returns the forward variable More...
 
double getBackwardVariable_ (HMMState *)
 returns the backward variable More...
 

Private Member Functions

void copy_ (const HiddenMarkovModel &source)
 

Private Attributes

Map< HMMState *, Map< HMMState *, double > > trans_
 
Map< HMMState *, Map< HMMState *, double > > count_trans_
 
Map< HMMState *, Map< HMMState *, std::vector< double > > > count_trans_all_
 
Map< HMMState *, Map< HMMState *, std::vector< double > > > train_count_trans_all_
 
Map< HMMState *, Map< HMMState *, Size > > training_steps_count_
 
Map< HMMState *, doubleforward_
 
Map< HMMState *, doublebackward_
 
Map< String, HMMState * > name_to_state_
 
Map< HMMState *, doubletrain_emission_prob_
 
Map< HMMState *, doubleinit_prob_
 
std::set< HMMState * > states_
 
std::set< std::pair< HMMState *, HMMState * > > trained_trans_
 
Map< String, Map< String, std::pair< String, String > > > synonym_trans_names_
 
Map< HMMState *, Map< HMMState *, std::pair< HMMState *, HMMState * > > > synonym_trans_
 
Map< HMMState *, std::set< HMMState * > > enabled_trans_
 
double pseudo_counts_
 
StringList var_modifications_
 

Detailed Description

Hidden Markov Model implementation of PILIS.

Hidden Markov Model implementation suitable for forward connected HMMs. The HMM is mostly used within PILIS. For further details have a look at the docs of PILIS.

Constructor & Destructor Documentation

default constructor

HiddenMarkovModel ( const HiddenMarkovModel hmm_new)

copy constructor

virtual ~HiddenMarkovModel ( )
virtual

destructor

Member Function Documentation

void addNewState ( HMMState state)

registers a new state to the HMM

void addNewState ( const String name)

registers a new state to the HMM

void addSynonymTransition ( const String name1,
const String name2,
const String synonym1,
const String synonym2 
)

add a new synonym transition to the given state names

void calculateBackwardPart_ ( )
protected

performs the backward algorithm

void calculateEmissionProbabilities ( Map< HMMState *, double > &  emission_probs)

calculates the emission probabilities of the HMM (of course only of the non-hidden states)

void calculateForwardPart_ ( )
protected

performs the forward algorithm

void clear ( )

clears all data

void clearInitialTransitionProbabilities ( )

clears the initial probabilities

void clearTrainingEmissionProbabilities ( )

clear the emission probabilities

void copy_ ( const HiddenMarkovModel source)
private
void disableTransition ( const String s1,
const String s2 
)

disables the transition; deletes the nodes from the predecessor/successor list respectively

void disableTransition_ ( HMMState s1,
HMMState s2 
)
protected

disables the transition; deletes the nodes from the predecessor/successor list respectively

void disableTransitions ( )

disables all transitions

void dump ( )

writes some stats to cerr

void enableTransition ( const String s1,
const String s2 
)

enables a transition; adds s1 to the predecessor list of s2 and s2 to the successor list of s1

void enableTransition_ ( HMMState s1,
HMMState s2 
)
protected

enables a transition; adds s1 to the predecessor list of s2 and s2 to the successor list of s1

void estimateUntrainedTransitions ( )

builds a synonyms structure, needed when synonyms are used

estimates the transition probabilities of not trained transitions by averages similar trained ones

void evaluate ( )

evaluate the HMM, estimates the transition probabilities from the training

void forwardDump ( )

writes some info of the forward "matrix" to cerr

double getBackwardVariable_ ( HMMState )
protected

returns the backward variable

double getForwardVariable_ ( HMMState )
protected

returns the forward variable

Size getNumberOfStates ( ) const

return the number of states

double getPseudoCounts ( ) const

returns the pseudo counts

HMMState* getState ( const String name)

returns the state with the given name

const HMMState* getState ( const String name) const

returns the state with the given name

double getTransitionProbability ( const String s1,
const String s2 
) const

returns the transition probability of the given state names

double getTransitionProbability_ ( HMMState s1,
HMMState s2 
) const
protected

returns the transition probability of the given states

HiddenMarkovModel& operator= ( const HiddenMarkovModel )

assignment operator

void setInitialTransitionProbability ( const String state,
double  prob 
)

sets the initial transition probability of the given state to prob

void setPseudoCounts ( double  pseudo_counts)

sets the pseudo count that are added instead of zero

void setTrainingEmissionProbability ( const String state,
double  prob 
)

sets the emission probability of the given state to prob

void setTrainingEmissionProbability_ ( HMMState state,
double  prob 
)
protected

sets the emission probability of the given state to prob

void setTransitionProbability ( const String s1,
const String s2,
double  prob 
)

sets the transition probability of the given state names to prob

void setTransitionProbability_ ( HMMState s1,
HMMState s2,
double  prob 
)
protected

sets the transition probability of the given states to prob

void setVariableModifications ( const StringList modifications)
void train ( )

trains the HMM; initial probabilities and emission probabilities of the emitting states should be set

void write ( std::ostream &  out) const

writes the HMM into an outstream

void writeGraphMLFile ( const String filename)

writes the HMM into a file in GraphML format

Accessors A detailed description of the GraphML format can be found under http://graphml.graphdrawing.org/

Member Data Documentation

Map<HMMState *, double> backward_
private
Map<HMMState *, Map<HMMState *, double> > count_trans_
private
Map<HMMState *, Map<HMMState *, std::vector<double> > > count_trans_all_
private
Map<HMMState *, std::set<HMMState *> > enabled_trans_
private
Map<HMMState *, double> forward_
private
Map<HMMState *, double> init_prob_
private
Map<String, HMMState *> name_to_state_
private
double pseudo_counts_
private
std::set<HMMState *> states_
private
Map<HMMState *, Map<HMMState *, std::pair<HMMState *, HMMState *> > > synonym_trans_
private
Map<String, Map<String, std::pair<String, String> > > synonym_trans_names_
private
Map<HMMState *, Map<HMMState *, std::vector<double> > > train_count_trans_all_
private
Map<HMMState *, double> train_emission_prob_
private
std::set<std::pair<HMMState *, HMMState *> > trained_trans_
private
Map<HMMState *, Map<HMMState *, Size> > training_steps_count_
private
Map<HMMState *, Map<HMMState *, double> > trans_
private
StringList var_modifications_
private

OpenMS / TOPP release 2.0.0 Documentation generated on Wed Mar 30 2016 12:49:28 using doxygen 1.8.11