Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.jstacs.sequenceScores.statisticalModels.differentiable
Class MarkovRandomFieldDiffSM

    java.lang.Object
      de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
          de.jstacs.sequenceScores.statisticalModels.differentiable.AbstractDifferentiableStatisticalModel
              de.jstacs.sequenceScores.statisticalModels.differentiable.MarkovRandomFieldDiffSM

All Implemented Interfaces:
  DifferentiableSequenceScore, SequenceScore, DifferentiableStatisticalModel, StatisticalModel, Storable, Cloneable

    public final class MarkovRandomFieldDiffSM

extends AbstractDifferentiableStatisticalModel

This class implements the scoring function for any MRF (Markov Random Field).

Author:
  Jens Keilwagen

Field Summary

Fields inherited from class de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
`alphabets, length, r`

Fields inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
`UNKNOWN`

Constructor Summary
`MarkovRandomFieldDiffSM(AlphabetContainer alphabets, int length, double ess, String constr)` This is the main constructor that creates an instance of a `MarkovRandomFieldDiffSM`.
`MarkovRandomFieldDiffSM(AlphabetContainer alphabets, int length, String constr)` This constructor creates an instance of a `MarkovRandomFieldDiffSM` with equivalent sample size (ess) 0.
`MarkovRandomFieldDiffSM(StringBuffer source)` This is the constructor for the interface `Storable`.

Method Summary
`void` | `addGradientOfLogPriorTerm(double[] grad, int start)` This method computes the gradient of `DifferentiableStatisticalModel.getLogPriorTerm()` for each parameter of this model.
`MarkovRandomFieldDiffSM` | `clone()` Creates a clone (deep copy) of the current `DifferentiableSequenceScore` instance.
`protected void` | `fromXML(StringBuffer representation)` This method is called in the constructor for the `Storable` interface to create a scoring function from a `StringBuffer`.
`double[]` | `getCurrentParameterValues()` Returns a `double` array of dimension `DifferentiableSequenceScore.getNumberOfParameters()` containing the current parameter values.
`double` | `getESS()` Returns the equivalent sample size (ess) of this model, i.e. the equivalent sample size for the class or component that is represented by this model.
`String` | `getInstanceName()` Should return a short instance name such as iMM(0), BN(2), ...
`double` | `getLogNormalizationConstant()` Returns the logarithm of the sum of the scores over all sequences of the event space.
`double` | `getLogPartialNormalizationConstant(int parameterIndex)` Returns the logarithm of the partial normalization constant for the parameter with index `parameterIndex`.
`double` | `getLogPriorTerm()` This method computes a value that is proportional to ``DifferentiableStatisticalModel.getESS()` * `DifferentiableStatisticalModel.getLogNormalizationConstant()` + Math.log( prior )` where `prior` is the prior for the parameters of this model.
`double` | `getLogScoreAndPartialDerivation(Sequence seq, int start, IntList indices, DoubleList partialDer)` Returns the logarithmic score for a `Sequence` beginning at position `start` in the `Sequence` and fills lists with the indices and the partial derivations.
`double` | `getLogScoreFor(Sequence seq, int start)` Returns the logarithmic score for the `Sequence` `seq` beginning at position `start` in the `Sequence`.
`int` | `getNumberOfParameters()` Returns the number of parameters in this `DifferentiableSequenceScore`.
`int` | `getSizeOfEventSpaceForRandomVariablesOfParameter(int index)` Returns the size of the event space of the random variables that are affected by parameter no.
`void` | `initializeFunction(int index, boolean freeParams, DataSet[] data, double[][] weights)` This method creates the underlying structure of the `DifferentiableSequenceScore`.
`void` | `initializeFunctionRandomly(boolean freeParams)` This method initializes the `DifferentiableSequenceScore` randomly.
`boolean` | `isInitialized()` This method can be used to determine whether the instance is initialized.
`void` | `setParameters(double[] params, int start)` This method sets the internal parameters to the values of `params` between `start` and `start + `DifferentiableSequenceScore.getNumberOfParameters()` - 1`
`String` | `toString()`
`StringBuffer` | `toXML()` This method returns an XML representation as `StringBuffer` of an instance of the implementing class.

Methods inherited from class de.jstacs.sequenceScores.statisticalModels.differentiable.AbstractDifferentiableStatisticalModel
`emitDataSet, getInitialClassParam, getLogProbFor, getLogProbFor, getLogProbFor, getLogScoreFor, getLogScoreFor, getMaximalMarkovOrder, isNormalized, isNormalized`

Methods inherited from class de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
`getAlphabetContainer, getCharacteristics, getLength, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getLogScoreFor, getLogScoreFor, getNumberOfRecommendedStarts, getNumberOfStarts, getNumericalCharacteristics`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
`getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getNumberOfRecommendedStarts`

Methods inherited from interface de.jstacs.sequenceScores.SequenceScore
`getAlphabetContainer, getCharacteristics, getLength, getLogScoreFor, getLogScoreFor, getNumericalCharacteristics`

Constructor Detail

### MarkovRandomFieldDiffSM

    public MarkovRandomFieldDiffSM(AlphabetContainer alphabets,
                                   int length,
                                   String constr)

  This constructor creates an instance of a `MarkovRandomFieldDiffSM` with equivalent sample size (ess) 0.

  Parameters:
    `alphabets` - the `AlphabetContainer`
    `length` - the length of the sequences and accordingly the model
    `constr` - the constraints that are used for the model, see `ConstraintManager.extract(int, String)`
  See Also:
    `MarkovRandomFieldDiffSM(AlphabetContainer, int, double, String)`

### MarkovRandomFieldDiffSM

    public MarkovRandomFieldDiffSM(AlphabetContainer alphabets,
                                   int length,
                                   double ess,
                                   String constr)

  This is the main constructor that creates an instance of a `MarkovRandomFieldDiffSM`.

  Parameters:
    `alphabets` - the `AlphabetContainer`
    `length` - the length of the sequences and accordingly the model
    `ess` - the equivalent sample size (ess)
    `constr` - the constraints that are used for the model, see `ConstraintManager.extract(int, String)`

### MarkovRandomFieldDiffSM

    public MarkovRandomFieldDiffSM(StringBuffer source)
                            throws NonParsableException

  This is the constructor for the interface `Storable`. Creates a new `MarkovRandomFieldDiffSM` out of a `StringBuffer` as returned by `toXML()`.

  Parameters:
    `source` - the XML representation as `StringBuffer`
  Throws:
    `NonParsableException` - if the XML representation could not be parsed

Method Detail

### fromXML

    protected void fromXML(StringBuffer representation)
                    throws NonParsableException

  Description copied from class: `AbstractDifferentiableSequenceScore`
  This method is called in the constructor for the `Storable` interface to create a scoring function from a `StringBuffer`.

  Specified by:
    `fromXML` in class `AbstractDifferentiableSequenceScore`
  Parameters:
    `representation` - the XML representation as `StringBuffer`
  Throws:
    `NonParsableException` - if the `StringBuffer` could not be parsed
  See Also:
    `AbstractDifferentiableSequenceScore.AbstractDifferentiableSequenceScore(StringBuffer)`

### clone

    public MarkovRandomFieldDiffSM clone()
                                  throws CloneNotSupportedException

  Description copied from interface: `DifferentiableSequenceScore`
  Creates a clone (deep copy) of the current `DifferentiableSequenceScore` instance.

  Specified by:
    `clone` in interface `DifferentiableSequenceScore`
  Specified by:
    `clone` in interface `SequenceScore`
  Overrides:
    `clone` in class `AbstractDifferentiableStatisticalModel`
  Returns:
    the cloned instance of the current `DifferentiableSequenceScore`
  Throws:
    `CloneNotSupportedException` - if something went wrong while cloning the `DifferentiableSequenceScore`

### getLogScoreFor

    public double getLogScoreFor(Sequence seq,
                                 int start)

  Description copied from interface: `SequenceScore`
  Returns the logarithmic score for the `Sequence` `seq` beginning at position `start` in the `Sequence`.

  Parameters:
    `seq` - the `Sequence`
    `start` - the start position in the `Sequence`
  Returns:
    the logarithmic score for the `Sequence`

### getLogScoreAndPartialDerivation

    public double getLogScoreAndPartialDerivation(Sequence seq,
                                                  int start,
                                                  IntList indices,
                                                  DoubleList partialDer)

  Description copied from interface: `DifferentiableSequenceScore`
  Returns the logarithmic score for a `Sequence` beginning at position `start` in the `Sequence` and fills lists with the indices and the partial derivations.

  Parameters:
    `seq` - the `Sequence`
    `start` - the start position in the `Sequence`
    `indices` - an `IntList` of indices, after method invocation the list should contain the indices i where is not zero
    `partialDer` - a `DoubleList` of partial derivations, after method invocation the list should contain the corresponding that are not zero
  Returns:
    the logarithmic score for the `Sequence`

### getNumberOfParameters

    public int getNumberOfParameters()

  Description copied from interface: `DifferentiableSequenceScore`
  Returns the number of parameters in this `DifferentiableSequenceScore`. If the number of parameters is not known yet, the method returns `DifferentiableSequenceScore.UNKNOWN`.

  Returns:
    the number of parameters in this `DifferentiableSequenceScore`
  See Also:
    `DifferentiableSequenceScore.UNKNOWN`

### getInstanceName

    public String getInstanceName()

  Description copied from interface: `SequenceScore`
  Should return a short instance name such as iMM(0), BN(2), ...

  Returns:
    a short instance name

### setParameters

    public void setParameters(double[] params,
                              int start)

  Description copied from interface: `DifferentiableSequenceScore`
  This method sets the internal parameters to the values of `params` between `start` and `start + `DifferentiableSequenceScore.getNumberOfParameters()` - 1`

  Parameters:
    `params` - the new parameters
    `start` - the start index in `params`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### toXML

    public StringBuffer toXML()

  Description copied from interface: `Storable`
  This method returns an XML representation as `StringBuffer` of an instance of the implementing class.

  Returns:
    the XML representation

### initializeFunction

    public void initializeFunction(int index,
                                   boolean freeParams,
                                   DataSet[] data,
                                   double[][] weights)
                            throws Exception

  Description copied from interface: `DifferentiableSequenceScore`
  This method creates the underlying structure of the `DifferentiableSequenceScore`.

  Parameters:
    `index` - the index of the class the `DifferentiableSequenceScore` models
    `freeParams` - indicates whether the (reduced) parameterization is used
    `data` - the samples
    `weights` - the weights of the sequences in the samples
  Throws:
    `Exception` - if something went wrong

### initializeFunctionRandomly

    public void initializeFunctionRandomly(boolean freeParams)
                                    throws Exception

  Description copied from interface: `DifferentiableSequenceScore`
  This method initializes the `DifferentiableSequenceScore` randomly. It has to create the underlying structure of the `DifferentiableSequenceScore`.

  Parameters:
    `freeParams` - indicates whether the (reduced) parameterization is used
  Throws:
    `Exception` - if something went wrong

### getLogNormalizationConstant

    public double getLogNormalizationConstant()

  Description copied from interface: `DifferentiableStatisticalModel`
  Returns the logarithm of the sum of the scores over all sequences of the event space.

  Returns:
    the logarithm of the normalization constant Z

### getLogPartialNormalizationConstant

    public double getLogPartialNormalizationConstant(int parameterIndex)
                                              throws Exception

  Description copied from interface: `DifferentiableStatisticalModel`
  Returns the logarithm of the partial normalization constant for the parameter with index `parameterIndex`. This is the logarithm of the partial derivation of the normalization constant for the parameter with index `parameterIndex`,
  .

  Parameters:
    `parameterIndex` - the index of the parameter
  Returns:
    the logarithm of the partial normalization constant
  Throws:
    `Exception` - if something went wrong with the normalization
  See Also:
    `DifferentiableStatisticalModel.getLogNormalizationConstant()`

### getESS

    public double getESS()

  Description copied from interface: `DifferentiableStatisticalModel`
  Returns the equivalent sample size (ess) of this model, i.e. the equivalent sample size for the class or component that is represented by this model.

  Returns:
    the equivalent sample size.

### getSizeOfEventSpaceForRandomVariablesOfParameter

    public int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)

  Description copied from interface: `DifferentiableStatisticalModel`
  Returns the size of the event space of the random variables that are affected by parameter no. `index`, i.e. the product of the sizes of the alphabets at the position of each random variable affected by parameter `index`. For DNA alphabets this corresponds to 4 for a PWM, 16 for a WAM except position 0, ...

  Parameters:
    `index` - the index of the parameter
  Returns:
    the size of the event space

### getLogPriorTerm

    public double getLogPriorTerm()

  Description copied from interface: `DifferentiableStatisticalModel`
  This method computes a value that is proportional to

  ``DifferentiableStatisticalModel.getESS()` * `DifferentiableStatisticalModel.getLogNormalizationConstant()` + Math.log( prior )`

  where `prior` is the prior for the parameters of this model.

  Returns:
    a value that is proportional to ``DifferentiableStatisticalModel.getESS()` * `DifferentiableStatisticalModel.getLogNormalizationConstant()` + Math.log( prior ).`
  See Also:
    `DifferentiableStatisticalModel.getESS()`, `DifferentiableStatisticalModel.getLogNormalizationConstant()`

### addGradientOfLogPriorTerm

    public void addGradientOfLogPriorTerm(double[] grad,
                                          int start)

  Description copied from interface: `DifferentiableStatisticalModel`
  This method computes the gradient of `DifferentiableStatisticalModel.getLogPriorTerm()` for each parameter of this model. The results are added to the array `grad` beginning at index `start`.

  Parameters:
    `grad` - the array of gradients
    `start` - the start index in the `grad` array, where the partial derivations for the parameters of this models shall be entered
  See Also:
    `DifferentiableStatisticalModel.getLogPriorTerm()`

### getCurrentParameterValues

    public double[] getCurrentParameterValues()
                                       throws Exception

  Description copied from interface: `DifferentiableSequenceScore`
  Returns a `double` array of dimension `DifferentiableSequenceScore.getNumberOfParameters()` containing the current parameter values. If one likes to use these parameters to start an optimization it is highly recommended to invoke `DifferentiableSequenceScore.initializeFunction(int, boolean, DataSet[], double[][])` before. After an optimization this method can be used to get the current parameter values.

  Returns:
    the current parameter values
  Throws:
    `Exception` - if no parameters exist (yet)

### isInitialized

    public boolean isInitialized()

  Description copied from interface: `SequenceScore`
  This method can be used to determine whether the instance is initialized. If the instance is initialized you should be able to invoke `SequenceScore.getLogScoreFor(Sequence)`.

  Returns:
    `true` if the instance is initialized, `false` otherwise

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD