Class WMAsMM
- All Implemented Interfaces:
Serializable,MarkovModel,Changeable
- Author:
- Matthew Pocock
- See Also:
-
Field Summary
Fields inherited from interface org.biojava.bio.dp.MarkovModel
ARCHITECTURE, PARAMETER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a state to the model.int[]advance()The maximum advance for this model.booleancontainsTransition(State from, State to) Returns wether a transition exists or not.voidcreateTransition(State from, State to) Makes a transition between two states legal.voiddestroyTransition(State from, State to) Breaks a transition between two states legal.Alphabet that is emitted by the emission states.getWeights(State source) Get a probability Distribution over the transition from 'source'.intheads()The number of heads on this model.protected intThe MagicalState for this model.voidregisterWithTrainer(ModelTrainer modelTrainer) voidremoveState(State toAdd) Remove a state from the model.voidsetWeights(State source, Distribution dist) Set the probability distribution over the transitions from 'source'.FiniteAlphabet of the states.transitionsFrom(State from) Returns the FiniteAlphabet of all states that have a transition from 'source'.transitionsTo(State to) Returns the FiniteAlphabet of all states that have a transition to 'dest'.Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
-
Constructor Details
-
WMAsMM
- Throws:
IllegalSymbolException
-
-
Method Details
-
advance
Description copied from interface:MarkovModelThe maximum advance for this model.Each head consumes a single SymbolList. However, the states that advance through that SymbolList may emit more than one symbol at a time. This array give the maximum advance in each direction.
Be sure to return a new array each time this is called. This protects the internal state of the object from someone modifying the advance array. Be sure to update this as/when states modify their advance arrays and as/when states are added or removed- Specified by:
advancein interfaceMarkovModel- Returns:
- the maximum advance of all states for all heads
-
emissionAlphabet
Description copied from interface:MarkovModelAlphabet that is emitted by the emission states.- Specified by:
emissionAlphabetin interfaceMarkovModel
-
stateAlphabet
Description copied from interface:MarkovModelFiniteAlphabet of the states.We are modeling a finite-state-machine, so there will be a finite set of states.
The MagicalState returned by getMagicalState is always contained within this as the start/end state.
- Specified by:
stateAlphabetin interfaceMarkovModel- Returns:
- the alphabet over states
-
heads
Description copied from interface:MarkovModelThe number of heads on this model.Each head consumes a single SymbolList. A single-head model just consumes/ emits a single sequence. A two-head model performs alignment between two sequences (e.g. smith-waterman). Models with more heads do more interesting things.
heads()should equaladvance().length.- Specified by:
headsin interfaceMarkovModel- Returns:
- the number of heads in this model.
-
magicalState
Description copied from interface:MarkovModelThe MagicalState for this model.- Specified by:
magicalStatein interfaceMarkovModel
-
getWeights
Description copied from interface:MarkovModelGet a probability Distribution over the transition from 'source'.- Specified by:
getWeightsin interfaceMarkovModel- Parameters:
source- the State currently occupied- Returns:
- the probability Distribution over the reachable states
- Throws:
IllegalSymbolException- if from is not a legal state
-
setWeights
Description copied from interface:MarkovModelSet the probability distribution over the transitions from 'source'.This should throw an IllegalAlphabetException if the source alphabet in 'dist' is not the same alphabet as returned by transitionsFrom(source).
- Specified by:
setWeightsin interfaceMarkovModel- Parameters:
source- the source Statedist- the new distribution over transitions from 'source'- Throws:
ChangeVetoException- if for any reason the distribution can't be replaced at this time
-
transitionsFrom
Description copied from interface:MarkovModelReturns the FiniteAlphabet of all states that have a transition from 'source'.- Specified by:
transitionsFromin interfaceMarkovModel- Parameters:
from- the source State- Returns:
- a FiniteAlphabet of State objects that can reach from 'source'
- Throws:
IllegalSymbolException
-
transitionsTo
Description copied from interface:MarkovModelReturns the FiniteAlphabet of all states that have a transition to 'dest'.- Specified by:
transitionsToin interfaceMarkovModel- Parameters:
to- the destination state- Returns:
- a FiniteAlphabet of State objects that can reach 'dest'
- Throws:
IllegalSymbolException
-
registerWithTrainer
- Throws:
BioException
-
createTransition
Description copied from interface:MarkovModelMakes a transition between two states legal.This should inform each TransitionListener that a transition is to be created using preCreateTransition, and if none of the listeners fire a ChangeVetoException, it should create the transition, and then inform each TransitionListener with postCreateTransition.
- Specified by:
createTransitionin interfaceMarkovModel- Parameters:
from- the State currently occupiedto- the State to move to- Throws:
ChangeVetoException- if creating the transition is vetoed
-
destroyTransition
Description copied from interface:MarkovModelBreaks a transition between two states legal.This should inform each TransitionListener that a transition is to be broken using preDestroyTransition, and if none of the listeners fire a ChangeVetoException, it should break the transition, and then inform each TransitionListener with postDestroyTransition.
- Specified by:
destroyTransitionin interfaceMarkovModel- Parameters:
from- the State currently occupiedto- the State to move to- Throws:
ChangeVetoException- if breaking the transition is vetoed
-
addState
Description copied from interface:MarkovModelAdds a state to the model.- Specified by:
addStatein interfaceMarkovModel- Parameters:
toAdd- the state to add- Throws:
IllegalSymbolException- if the state is not valid or is a MagicalStateChangeVetoException- if either the model does not allow states to be added, or the change was vetoed
-
removeState
Description copied from interface:MarkovModelRemove a state from the model.States should not be removed untill they are involved in no transitions. This is to avoid producing corrupted models by accident.
- Specified by:
removeStatein interfaceMarkovModel- Parameters:
toAdd- the state to remove- Throws:
IllegalSymbolException- if the symbol is not part of this model or a MagicalStateChangeVetoException- if either the model does not allow states to be removed, or the change was vetoed
-
containsTransition
Description copied from interface:MarkovModelReturns wether a transition exists or not.- Specified by:
containsTransitionin interfaceMarkovModel- Parameters:
from- the transitin sourceto- the transition destination- Returns:
- true/false depending on wether this model has the transition
- Throws:
IllegalSymbolException- if either from or to are not states in this model
-
index
-