de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements
Class DistanceBasedScaledTransitionElement

java.lang.Object
  extended by de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.BasicHigherOrderTransition.AbstractTransitionElement
      extended by de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements.BasicTransitionElement
          extended by de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements.ReferenceBasedTransitionElement
              extended by de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements.DistanceBasedScaledTransitionElement
All Implemented Interfaces:
Storable, Cloneable

public class DistanceBasedScaledTransitionElement
extends ReferenceBasedTransitionElement

Distance-based scaled transition element for an HMM with distance-scaled transition matrices (DSHMM).

Author:
Michael Seifert

Field Summary
protected  String arrowOptions
          The Graphviz options for drawing the arrows.
protected  Hashtable<Sequence,double[]> diagonalWeights
          Contains the single epsilons of the diagonal elements required for estimating the self-transition probability.
protected  double scalingFactor
          The maximal scaling factor.
protected  double[] statisticsTransitionProb
          Represents the summarized epsilons required for estimating the transition probabilities from the context.
 
Fields inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements.ReferenceBasedTransitionElement
annotationID, diagElement, ess, probabilities
 
Fields inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.BasicHigherOrderTransition.AbstractTransitionElement
context, descendants, hyperParameters, logNorm, parameters, states, statistic
 
Constructor Summary
DistanceBasedScaledTransitionElement(int[] context, int[] states, double[] probabilities, double ess, double scalingFactor, String annotationID)
          Creates an object representing the transition probabilities of a Hidden Markov TrainableStatisticalModel with scaled transition matrices (SHMM) for the given context.
DistanceBasedScaledTransitionElement(int[] context, int[] states, double[] probabilities, double ess, double scalingFactor, String annotationID, double[] weight)
          Creates an object representing the transition probabilities of a Hidden Markov TrainableStatisticalModel with scaled transition matrices (SHMM) for the given context.
DistanceBasedScaledTransitionElement(StringBuffer xml)
          Extracts a distance-base scaled transition element from XML.
 
Method Summary
 void addToStatistic(int childIdx, double weight, Sequence sequence, int sequencePosition)
          This method adds a given weight to the sufficient statistic for the parameters.
protected  void appendFurtherInformation(StringBuffer xml)
          This method appends further information to the XML representation.
protected  void appendTransitions(StringBuffer res, String contextNodeRepresentation, NumberFormat nf, String arrowOption, boolean graphical)
          This method appends all edges of the transition element to a given Graphviz representation.
 DistanceBasedScaledTransitionElement clone()
          Clones the object.
 void estimateFromStatistic()
          This method estimates the parameters from the sufficient statistic.
protected  void extractFurtherInformation(StringBuffer xml)
          This method extracts further information from the XML representation.
protected  double getIndex(int pos, Sequence seq)
          Returns the distance integrated into the transition from pos - 1 to pos in sequences seq.
 double getLogScoreFor(int state, Sequence sequence, int sequencePosition)
          This method returns the score for the transition from the current context to the state with index index.
protected  String getXMLTag()
          This method returns the xml tag used in BasicHigherOrderTransition.AbstractTransitionElement.toXML().
protected  void init()
          Basic initialization.
 void resetStatistic()
          This method resets the sufficient statistic for the parameters.
 String toString(String[] stateNames)
           
 
Methods inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.elements.ReferenceBasedTransitionElement
determineDiagonalElement, getLogGammaScoreFromStatistic, getLogPriorTerm, initializeRandomly, precompute
 
Methods inherited from class de.jstacs.sequenceScores.statisticalModels.trainable.hmm.transitions.BasicHigherOrderTransition.AbstractTransitionElement
appendGraphvizDescription, drawParametersFromStatistic, getArrowOption, getChild, getContext, getDescendant, getGraphvizEdgeWeight, getLabel, getNextContext, getNumberOfChildren, getNumberOfParameters, joinStatistics, setIndexOfDescendantTransitionElement, setParameters, toString, toString, toXML
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

arrowOptions

protected String arrowOptions
The Graphviz options for drawing the arrows.


scalingFactor

protected double scalingFactor
The maximal scaling factor.


statisticsTransitionProb

protected double[] statisticsTransitionProb
Represents the summarized epsilons required for estimating the transition probabilities from the context.


diagonalWeights

protected Hashtable<Sequence,double[]> diagonalWeights
Contains the single epsilons of the diagonal elements required for estimating the self-transition probability.

Constructor Detail

DistanceBasedScaledTransitionElement

public DistanceBasedScaledTransitionElement(int[] context,
                                            int[] states,
                                            double[] probabilities,
                                            double ess,
                                            double scalingFactor,
                                            String annotationID)
Creates an object representing the transition probabilities of a Hidden Markov TrainableStatisticalModel with scaled transition matrices (SHMM) for the given context.

Parameters:
context - context of states
states - states that can be reached from the context
probabilities - transition probabilities from the context to the states
ess - the equivalent sample size (ess)
scalingFactor - scaling factor
annotationID - identifier for decoding transition classes
See Also:
DistanceBasedScaledTransitionElement(int[], int[], double[], double, double, String, double[])

DistanceBasedScaledTransitionElement

public DistanceBasedScaledTransitionElement(int[] context,
                                            int[] states,
                                            double[] probabilities,
                                            double ess,
                                            double scalingFactor,
                                            String annotationID,
                                            double[] weight)
Creates an object representing the transition probabilities of a Hidden Markov TrainableStatisticalModel with scaled transition matrices (SHMM) for the given context.

Parameters:
context - context of states
states - states that can be reached from the context
probabilities - transition probabilities from the context to the states
ess - the equivalent sample size (ess)
scalingFactor - scaling factor
annotationID - identifier for decoding transition classes
weight - the weight for plotting the edge in Graphviz, enables to modify the edge length, larger weights imply shorter edges (default: 1)

DistanceBasedScaledTransitionElement

public DistanceBasedScaledTransitionElement(StringBuffer xml)
                                     throws NonParsableException
Extracts a distance-base scaled transition element from XML.

Parameters:
xml - the XML-representation
Throws:
NonParsableException - if the representation could not be parsed
Method Detail

init

protected void init()
Basic initialization.

Overrides:
init in class ReferenceBasedTransitionElement

clone

public DistanceBasedScaledTransitionElement clone()
                                           throws CloneNotSupportedException
Clones the object.

Overrides:
clone in class ReferenceBasedTransitionElement
Throws:
CloneNotSupportedException

getIndex

protected double getIndex(int pos,
                          Sequence seq)
Returns the distance integrated into the transition from pos - 1 to pos in sequences seq.

Parameters:
pos - position in seq
seq - sequences
Returns:
distance

addToStatistic

public void addToStatistic(int childIdx,
                           double weight,
                           Sequence sequence,
                           int sequencePosition)
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method adds a given weight to the sufficient statistic for the parameters.

Overrides:
addToStatistic in class BasicHigherOrderTransition.AbstractTransitionElement
Parameters:
childIdx - the index of the descendant state
weight - the weight to be added
sequence - the sequence, which might be used to retrieve SequenceAnnotation
sequencePosition - the position within the sequence
See Also:
TransitionWithSufficientStatistic.addToStatistic(int, int, int, double, Sequence, int), BasicHigherOrderTransition.AbstractTransitionElement.statistic, BasicHigherOrderTransition.AbstractTransitionElement.resetStatistic(), BasicHigherOrderTransition.AbstractTransitionElement.estimateFromStatistic(), BasicHigherOrderTransition.AbstractTransitionElement.drawParametersFromStatistic()

resetStatistic

public void resetStatistic()
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method resets the sufficient statistic for the parameters.

Overrides:
resetStatistic in class BasicHigherOrderTransition.AbstractTransitionElement
See Also:
BasicHigherOrderTransition.AbstractTransitionElement.statistic, BasicHigherOrderTransition.AbstractTransitionElement.estimateFromStatistic(), BasicHigherOrderTransition.AbstractTransitionElement.drawParametersFromStatistic(), BasicHigherOrderTransition.AbstractTransitionElement.addToStatistic(int, double, Sequence, int), TransitionWithSufficientStatistic.resetStatistic()

estimateFromStatistic

public void estimateFromStatistic()
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method estimates the parameters from the sufficient statistic.

Overrides:
estimateFromStatistic in class BasicHigherOrderTransition.AbstractTransitionElement
See Also:
BasicHigherOrderTransition.AbstractTransitionElement.statistic, BasicHigherOrderTransition.AbstractTransitionElement.resetStatistic(), BasicHigherOrderTransition.AbstractTransitionElement.addToStatistic(int, double, Sequence, int), TrainableTransition.estimateFromStatistic()

getLogScoreFor

public double getLogScoreFor(int state,
                             Sequence sequence,
                             int sequencePosition)
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method returns the score for the transition from the current context to the state with index index.

Overrides:
getLogScoreFor in class BasicHigherOrderTransition.AbstractTransitionElement
Parameters:
state - the index of the child
sequence - the sequence, which might be used to retrieve SequenceAnnotation
sequencePosition - the position within the sequence
Returns:
the score for the transition from the current context to the state with index index

appendTransitions

protected void appendTransitions(StringBuffer res,
                                 String contextNodeRepresentation,
                                 NumberFormat nf,
                                 String arrowOption,
                                 boolean graphical)
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method appends all edges of the transition element to a given Graphviz representation.

Overrides:
appendTransitions in class BasicHigherOrderTransition.AbstractTransitionElement
Parameters:
res - the current Graphviz representation
contextNodeRepresentation - the String representation of the context node(s)
nf - the NumberFormat used for the probabilities, if null no probabilities will we written
arrowOption - this parameter gives the possibility to set some arrow option
graphical - represent transition probabilities as thickness of edges instead of textual output
See Also:
BasicHigherOrderTransition.AbstractTransitionElement.appendGraphvizDescription(StringBuffer, NumberFormat, String, boolean), BasicHigherOrderTransition.AbstractTransitionElement.getArrowOption(NumberFormat, double, double, String, boolean)

appendFurtherInformation

protected void appendFurtherInformation(StringBuffer xml)
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method appends further information to the XML representation. It allows subclasses to save further parameters that are not defined in the superclass.

Overrides:
appendFurtherInformation in class ReferenceBasedTransitionElement
Parameters:
xml - the XML representation

extractFurtherInformation

protected void extractFurtherInformation(StringBuffer xml)
                                  throws NonParsableException
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method extracts further information from the XML representation. It allows subclasses to cast further parameters that are not defined in the superclass.

Overrides:
extractFurtherInformation in class ReferenceBasedTransitionElement
Parameters:
xml - the XML representation
Throws:
NonParsableException - if the information could not be reconstructed out of the StringBuffer xml

getXMLTag

protected String getXMLTag()
Description copied from class: BasicHigherOrderTransition.AbstractTransitionElement
This method returns the xml tag used in BasicHigherOrderTransition.AbstractTransitionElement.toXML().

Overrides:
getXMLTag in class BasicHigherOrderTransition.AbstractTransitionElement
Returns:
the xml tag used in BasicHigherOrderTransition.AbstractTransitionElement.toXML()

toString

public String toString(String[] stateNames)