de.jstacs.scoringFunctions.mix.motifSearch
Class UniformDurationScoringFunction

java.lang.Object
  extended by de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
      extended by de.jstacs.scoringFunctions.mix.motifSearch.PositionScoringFunction
          extended by de.jstacs.scoringFunctions.mix.motifSearch.DurationScoringFunction
              extended by de.jstacs.scoringFunctions.mix.motifSearch.UniformDurationScoringFunction
All Implemented Interfaces:
NormalizableScoringFunction, ScoringFunction, Storable, Cloneable

public final class UniformDurationScoringFunction
extends DurationScoringFunction

This scoring function implements a uniform distribution for positions. The class has no parameters, so the distribution does not change and it is possible to save parameters in an optimization.


Field Summary
 
Fields inherited from class de.jstacs.scoringFunctions.mix.motifSearch.DurationScoringFunction
delta, ess, max, min
 
Fields inherited from class de.jstacs.scoringFunctions.mix.motifSearch.PositionScoringFunction
internal
 
Fields inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
alphabets, length, r
 
Fields inherited from interface de.jstacs.scoringFunctions.ScoringFunction
UNKNOWN
 
Constructor Summary
UniformDurationScoringFunction(int min, int max)
          This is the main constructor that creates an instance for the given interval.
UniformDurationScoringFunction(int min, int max, double ess)
          This is the main constructor that creates an instance for the given interval and given ESS.
UniformDurationScoringFunction(StringBuffer b)
          This is the constructor for Storable.
 
Method Summary
 void addGradientOfLogPriorTerm(double[] grad, int start)
          This method computes the gradient of NormalizableScoringFunction.getLogPriorTerm() for each parameter of this model.
 void adjust(int[] length, double[] weight)
          This method adjust the parameter based on the given statistic.
 void drawPosition(int[] positions)
          This method draws from the distribution and returns the result in the given array.
 double[] getCurrentParameterValues()
          Returns a double array of dimension ScoringFunction.getNumberOfParameters() containing the current parameter values.
 String getInstanceName()
          Returns a short instance name.
 double getLogPriorTerm()
          This method computes a value that is proportional to NormalizableScoringFunction.getEss() * NormalizableScoringFunction.getLogNormalizationConstant() + Math.log( prior ) where prior is the prior for the parameters of this model.
 double getLogScore(int... values)
          This method enables the user to get the log-score without using a sequence object.
 double getLogScoreAndPartialDerivation(IntList indices, DoubleList partialDer, int... values)
          This method enables the user to get the log-score and the partial derivations without using a sequence object.
 int getNumberOfParameters()
          Returns the number of parameters in this ScoringFunction.
protected  String getRNotation(String distributionName)
          This method returns the distribution in R notation.
 void initializeFunction(int index, boolean meila, Sample[] data, double[][] weights)
          This method creates the underlying structure of the ScoringFunction.
 void initializeFunctionRandomly(boolean freeParams)
          This method initializes the ScoringFunction randomly.
 void initializeUniformly()
          This method set special parameters that lead to an uniform distribution.
 boolean isInitialized()
          This method can be used to determine whether the model is initialized.
 boolean isNormalized()
          This method indicates whether the implemented score is already normalized to 1 or not.
 void setParameters(double[] params, int start)
          This method sets the internal parameters to the values of params between start and start + ScoringFunction.getNumberOfParameters() - 1
 
Methods inherited from class de.jstacs.scoringFunctions.mix.motifSearch.DurationScoringFunction
fromXML, getEss, getLogNormalizationConstant, getLogPartialNormalizationConstant, getMax, getMin, getNumberOfPossibilities, getSizeOfEventSpaceForRandomVariablesOfParameter, isPossible, modify, next, reset, toString, toXML
 
Methods inherited from class de.jstacs.scoringFunctions.mix.motifSearch.PositionScoringFunction
clone, getInternalPosition, getLogScore, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivationForInternal, getLogScoreForInternal, getValuesFromSequence
 
Methods inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
getAlphabetContainer, getInitialClassParam, getLength, getLogScore, getLogScoreAndPartialDerivation, getNumberOfRecommendedStarts, getNumberOfStarts, isNormalized
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UniformDurationScoringFunction

public UniformDurationScoringFunction(int min,
                                      int max)
This is the main constructor that creates an instance for the given interval.

Parameters:
min - the minimal value
max - the maximal value

UniformDurationScoringFunction

public UniformDurationScoringFunction(int min,
                                      int max,
                                      double ess)
This is the main constructor that creates an instance for the given interval and given ESS.

Parameters:
min - the minimal value
max - the maximal value
ess - the equivalent sample size (used for the class probability)

UniformDurationScoringFunction

public UniformDurationScoringFunction(StringBuffer b)
                               throws NonParsableException
This is the constructor for Storable. Creates a new UniformDurationScoringFunction out of a StringBuffer.

Parameters:
b - the XML representation as StringBuffer
Throws:
NonParsableException - if the XML representation could not be parsed
Method Detail

getInstanceName

public String getInstanceName()
Description copied from interface: ScoringFunction
Returns a short instance name.

Returns:
a short instance name

getNumberOfParameters

public int getNumberOfParameters()
Description copied from interface: ScoringFunction
Returns the number of parameters in this ScoringFunction. If the number of parameters is not known yet, the method returns ScoringFunction.UNKNOWN.

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

setParameters

public void setParameters(double[] params,
                          int start)
Description copied from interface: ScoringFunction
This method sets the internal parameters to the values of params between start and start + ScoringFunction.getNumberOfParameters() - 1

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

initializeFunction

public void initializeFunction(int index,
                               boolean meila,
                               Sample[] data,
                               double[][] weights)
Description copied from interface: ScoringFunction
This method creates the underlying structure of the ScoringFunction.

Parameters:
index - the index of the class the ScoringFunction models
meila - indicates whether the (reduced) parameterization is used
data - the samples
weights - the weights of the sequences in the samples

getRNotation

protected String getRNotation(String distributionName)
Description copied from class: DurationScoringFunction
This method returns the distribution in R notation.

Specified by:
getRNotation in class DurationScoringFunction
Parameters:
distributionName - the name of the distribution, e.g., "p"
Returns:
the distribution in R notation
See Also:
REnvironment

getLogPriorTerm

public double getLogPriorTerm()
Description copied from interface: NormalizableScoringFunction
This method computes a value that is proportional to

NormalizableScoringFunction.getEss() * NormalizableScoringFunction.getLogNormalizationConstant() + Math.log( prior )

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

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

addGradientOfLogPriorTerm

public void addGradientOfLogPriorTerm(double[] grad,
                                      int start)
Description copied from interface: NormalizableScoringFunction
This method computes the gradient of NormalizableScoringFunction.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:
NormalizableScoringFunction.getLogPriorTerm()

getLogScore

public double getLogScore(int... values)
Description copied from class: PositionScoringFunction
This method enables the user to get the log-score without using a sequence object.

Specified by:
getLogScore in class PositionScoringFunction
Parameters:
values - the values
Returns:
the score

getLogScoreAndPartialDerivation

public double getLogScoreAndPartialDerivation(IntList indices,
                                              DoubleList partialDer,
                                              int... values)
Description copied from class: PositionScoringFunction
This method enables the user to get the log-score and the partial derivations without using a sequence object.

Specified by:
getLogScoreAndPartialDerivation in class PositionScoringFunction
Parameters:
indices - a list for the indices of the parameters
partialDer - a list of the partial derivations
values - the values
Returns:
the score

drawPosition

public void drawPosition(int[] positions)
This method draws from the distribution and returns the result in the given array.

Parameters:
positions - an array for the result.

getCurrentParameterValues

public double[] getCurrentParameterValues()
                                   throws Exception
Description copied from interface: ScoringFunction
Returns a double array of dimension ScoringFunction.getNumberOfParameters() containing the current parameter values. If one likes to use these parameters to start an optimization it is highly recommended to invoke ScoringFunction.initializeFunction(int, boolean, Sample[], 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: ScoringFunction
This method can be used to determine whether the model is initialized. If the model is not initialized you should invoke the method ScoringFunction.initializeFunction(int, boolean, Sample[], double[][]).

Returns:
true if the model is initialized, false otherwise

isNormalized

public boolean isNormalized()
Description copied from interface: NormalizableScoringFunction
This method indicates whether the implemented score is already normalized to 1 or not. The standard implementation returns false.

Specified by:
isNormalized in interface NormalizableScoringFunction
Overrides:
isNormalized in class AbstractNormalizableScoringFunction
Returns:
true if the implemented score is already normalized to 1, false otherwise

initializeFunctionRandomly

public void initializeFunctionRandomly(boolean freeParams)
                                throws Exception
Description copied from interface: ScoringFunction
This method initializes the ScoringFunction randomly. It has to create the underlying structure of the ScoringFunction.

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

initializeUniformly

public void initializeUniformly()
Description copied from class: DurationScoringFunction
This method set special parameters that lead to an uniform distribution.

Specified by:
initializeUniformly in class DurationScoringFunction

adjust

public void adjust(int[] length,
                   double[] weight)
Description copied from class: DurationScoringFunction
This method adjust the parameter based on the given statistic.

Specified by:
adjust in class DurationScoringFunction
Parameters:
length - an array containing length values
weight - an array containing corresponding weight values