|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
de.jstacs.scoringFunctions.VariableLengthScoringFunction
de.jstacs.scoringFunctions.homogeneous.HomogeneousScoringFunction
de.jstacs.scoringFunctions.homogeneous.HMMScoringFunction
public class HMMScoringFunction
This scoring function implements a homogeneous Markov model of arbitrary order for any sequence length. The scoring function uses the parametrization of Meila if one uses the free parameters, which yields in a non-concave lo conditional likelihood.
Field Summary |
---|
Fields inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
---|
alphabets, length, r |
Fields inherited from interface de.jstacs.scoringFunctions.ScoringFunction |
---|
UNKNOWN |
Constructor Summary | |
---|---|
HMMScoringFunction(AlphabetContainer alphabets,
int order,
double classEss,
double[] sumOfHyperParams,
boolean plugIn,
boolean optimize,
int starts)
This is the main constructor. |
|
HMMScoringFunction(StringBuffer xml)
This is the constructor for Storable . |
Method Summary | |
---|---|
void |
addGradientOfLogPriorTerm(double[] grad,
int start)
This method computes the gradient of getLogPriorTerm() for each parameter of this model. |
HMMScoringFunction |
clone()
Creates a clone (deep copy) of the current ScoringFunction instance. |
Sample |
emit(int numberOfSequences,
int... seqLength)
This method returns a Sample object containing artificial sequence(s). |
protected void |
fromXML(StringBuffer xml)
This method is called in the constructor to create a scoring function from a StringBuffer |
double[] |
getCurrentParameterValues()
Returns a double array of dimension getNumberOfParameters() containing the current parameter
values. |
double |
getEss()
Returns the equivalent sample size of this model, i.e. the equivalent sample size for the class or component that is represented by this model. |
String |
getInstanceName()
Returns a short instance name. |
double |
getLogPriorTerm()
This method computes a value that is proportional to getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior ). |
double |
getLogScore(Sequence seq,
int start,
int length)
This method computes the logarithm of the score for a given subsequence. |
double |
getLogScoreAndPartialDerivation(Sequence seq,
int start,
int length,
IntList indices,
DoubleList dList)
This method computes the logarithm of the score and the partial derivations for a given subsequence. |
int |
getMaximalMarkovOrder()
Returns the maximal used markov oder. |
double |
getNormalizationConstant(int length)
This method returns the normalization constant for a given sequence length. |
int |
getNumberOfParameters()
The number of parameters in this scoring function. |
int |
getNumberOfRecommendedStarts()
This method return the number of recommended optimization starts. |
double |
getPartialNormalizationConstant(int parameterIndex,
int length)
This method returns the partial normalization constant for a given parameter index and sequence length. |
int |
getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
Returns the size of the event space of the random variables that are affected by parameter no. |
double[] |
getStationarySymbolDistribution()
This method returns the stationary symbol distribution. |
void |
initializeFunction(int index,
boolean freeParams,
Sample[] data,
double[][] weights)
This method creates the underlying structure of the scoring function. |
void |
initializeFunctionRandomly(boolean freeParams)
This method initializes the scoring function randomly. |
boolean |
isInitialized()
This method can be used to determine whether the model is initialized. |
boolean |
isNormalized()
This method returns whether the implemented score is already normalized to 1. |
void |
setParameterOptimization(boolean optimize)
This method allows the user specify whether the parameters should be optimized or not. |
void |
setParameters(double[] params,
int start)
This method sets the internal parameters to the values of params between start and
start + this.getNumberOfParameters() - 1 |
void |
setStatisticForHyperparameters(int[] length,
double[] weight)
This method sets the hyperparameters for the model parameters by evaluating the given statistic. |
String |
toString()
|
StringBuffer |
toXML()
This method returns an XML-representation of an instance of the implementing class. |
Methods inherited from class de.jstacs.scoringFunctions.VariableLengthScoringFunction |
---|
getLogScore, getLogScoreAndPartialDerivation, getNormalizationConstant, getPartialNormalizationConstant |
Methods inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction |
---|
getAlphabetContainer, getInitialClassParam, getLength, getLogScore, getLogScoreAndPartialDerivation, isNormalized |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public HMMScoringFunction(AlphabetContainer alphabets, int order, double classEss, double[] sumOfHyperParams, boolean plugIn, boolean optimize, int starts)
alphabets
- the alphabet containerorder
- the oder of the model (has to be non-negative)classEss
- the ess of the classsumOfHyperParams
- the sum of the hyperparameter for each order (length has to be order
, each entry has to be non-negative)plugIn
- a switch which enables to used the MAP-parameters as plug-in parametersoptimize
- a switch which enables to optimize or fix the parametersstarts
- the number of recommended startspublic HMMScoringFunction(StringBuffer xml) throws NonParsableException
Storable
.
xml
- the xml representation
NonParsableException
- if the representation could not be parsed.Method Detail |
---|
public HMMScoringFunction clone() throws CloneNotSupportedException
ScoringFunction
ScoringFunction
instance.
clone
in interface ScoringFunction
clone
in class AbstractNormalizableScoringFunction
CloneNotSupportedException
public String getInstanceName()
ScoringFunction
public double getLogScore(Sequence seq, int start, int length)
VariableLengthScoringFunction
getLogScore
in class VariableLengthScoringFunction
seq
- the sequencestart
- the start indexlength
- the end index
ScoringFunction.getLogScore(Sequence, int)
public double getLogScoreAndPartialDerivation(Sequence seq, int start, int length, IntList indices, DoubleList dList)
VariableLengthScoringFunction
getLogScoreAndPartialDerivation
in class VariableLengthScoringFunction
seq
- the sequencestart
- the start indexlength
- the end indexindices
- the list for the indices of the parametersdList
- the list for the partial derivations
ScoringFunction.getLogScoreAndPartialDerivation(Sequence, int, IntList,
DoubleList)
public int getNumberOfParameters()
ScoringFunction
UNKNOWN
.
ScoringFunction.UNKNOWN
public void setParameters(double[] params, int start)
ScoringFunction
params
between start
and
start + this.getNumberOfParameters() - 1
params
- the parametersstart
- the start indexpublic StringBuffer toXML()
Storable
public double[] getCurrentParameterValues()
ScoringFunction
getNumberOfParameters()
containing the current parameter
values. If on e 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.
public void initializeFunction(int index, boolean freeParams, Sample[] data, double[][] weights)
ScoringFunction
index
- the index of the class the scoring function modelsfreeParams
- if true, the (reduced) parameterization is useddata
- the samplesweights
- the weights of the sequences in the samples
public void initializeFunctionRandomly(boolean freeParams)
ScoringFunction
freeParams
- if true, the (reduced) parameterization is usedprotected void fromXML(StringBuffer xml) throws NonParsableException
AbstractNormalizableScoringFunction
fromXML
in class AbstractNormalizableScoringFunction
xml
- the XML representation
NonParsableException
- if the StringBuffer could not be parsed.public int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
NormalizableScoringFunction
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, ...
index
- the index of the parameter
public double getNormalizationConstant(int length)
VariableLengthScoringFunction
getNormalizationConstant
in class VariableLengthScoringFunction
length
- the sequence length
NormalizableScoringFunction.getNormalizationConstant()
public double getPartialNormalizationConstant(int parameterIndex, int length) throws Exception
VariableLengthScoringFunction
getPartialNormalizationConstant
in class VariableLengthScoringFunction
parameterIndex
- the index of the parameterlength
- the sequence length
Exception
- if something went wrongNormalizableScoringFunction.getPartialNormalizationConstant(int)
public double getEss()
NormalizableScoringFunction
public String toString()
toString
in class Object
public double getLogPriorTerm()
NormalizableScoringFunction
getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior ).
prior is the prior for the parameters of this model.
- Returns:
getESS()*Math.log( getNormalizationConstant() ) + Math.log( prior )
- See Also:
NormalizableScoringFunction.getEss()
,
NormalizableScoringFunction.getNormalizationConstant()
public void addGradientOfLogPriorTerm(double[] grad, int start)
NormalizableScoringFunction
getLogPriorTerm()
for each parameter of this model. The
results are added to the array grad
beginning at index start
.
grad
- the gradientstart
- the start index in the grad
array, where the partial derivations for the parameters of
this models shall be enterNormalizableScoringFunction.getLogPriorTerm()
public boolean isNormalized()
NormalizableScoringFunction
false
.
isNormalized
in interface NormalizableScoringFunction
isNormalized
in class AbstractNormalizableScoringFunction
public boolean isInitialized()
ScoringFunction
ScoringFunction.initializeFunction(int, boolean, Sample[], double[][])
.
true
if the model is initializedpublic int getMaximalMarkovOrder()
HomogeneousScoringFunction
getMaximalMarkovOrder
in class HomogeneousScoringFunction
public int getNumberOfRecommendedStarts()
ScoringFunction
getNumberOfRecommendedStarts
in interface ScoringFunction
getNumberOfRecommendedStarts
in class AbstractNormalizableScoringFunction
public void setParameterOptimization(boolean optimize)
optimize
- whether the parameters should be optimized or not.public double[] getStationarySymbolDistribution()
VariableLengthScoringFunction
de.jstacs.motifDiscovery.Mutable#expand(int, double[], double[], double)
,
de.jstacs.motifDiscovery.Mutable#shift(double[], double[], double)
and
de.jstacs.motifDiscovery.Mutable#shrink(double[], double[], double)
.
getStationarySymbolDistribution
in class VariableLengthScoringFunction
Mutable
public void setStatisticForHyperparameters(int[] length, double[] weight) throws Exception
VariableLengthScoringFunction
length
) and how often (weight
) they have been seen.
setStatisticForHyperparameters
in class VariableLengthScoringFunction
length
- the non-negative lengths of the sequencesweight
- the non-negative weight for the corresponding sequence
Exception
- if something went wrongMutable
public Sample emit(int numberOfSequences, int... seqLength) throws Exception
emitSample( int n, int l )
returns a sample with n
sequences of length l
.
emitSample( int n, int[] l )
should return a sample with n
sequences which have a sequence length corresponding to the entry in the array
numberOfSequences
- the number of sequences that should be contained in the returned sampleseqLength
- the length of the sequences
Exception
- an Exception should be thrown if the emission did not succeed.
NotTrainedException
- a NotTrainedException should be thrown if the model is not trained yet.Sample
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |