de.jstacs.sequenceScores.statisticalModels.differentiable
Class IndependentProductDiffSM

java.lang.Object
  extended by de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
      extended by de.jstacs.sequenceScores.differentiable.IndependentProductDiffSS
          extended by de.jstacs.sequenceScores.statisticalModels.differentiable.IndependentProductDiffSM
All Implemented Interfaces:
MotifDiscoverer, MutableMotifDiscoverer, DifferentiableSequenceScore, SequenceScore, DifferentiableStatisticalModel, StatisticalModel, Storable, Cloneable

public class IndependentProductDiffSM
extends IndependentProductDiffSS
implements DifferentiableStatisticalModel, MutableMotifDiscoverer

This class enables the user to model parts of a sequence independent of each other. For instance, the first part of the sequence is modeled by the first DifferentiableStatisticalModel and has the length of the first DifferentiableStatisticalModel, the second part starts directly after the first part, is modeled by the second DifferentiableStatisticalModel ... etc. It is also possible to use a DifferentiableStatisticalModel for more than one sequence part and in both orientations (if possible).

It is important to set the equivalent sample size (ESS) of each instance carefully, i.e., corresponding to the ESS of the parts.

Author:
Jens Keilwagen

Nested Class Summary
 
Nested classes/interfaces inherited from interface de.jstacs.motifDiscovery.MotifDiscoverer
MotifDiscoverer.KindOfProfile
 
Field Summary
 
Fields inherited from class de.jstacs.sequenceScores.differentiable.IndependentProductDiffSS
index, isVariable, partialLength, reverse, score, start, startIndexOfParams
 
Fields inherited from class de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
alphabets, length, r
 
Fields inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
UNKNOWN
 
Constructor Summary
IndependentProductDiffSM(double ess, boolean plugIn, DifferentiableStatisticalModel... functions)
          This constructor creates an instance of an IndependentProductDiffSM from a given series of independent DifferentiableStatisticalModels.
IndependentProductDiffSM(double ess, boolean plugIn, DifferentiableStatisticalModel[] functions, int[] length)
          This constructor creates an instance of an IndependentProductDiffSM from given series of independent DifferentiableStatisticalModels and lengths.
IndependentProductDiffSM(double ess, boolean plugIn, DifferentiableStatisticalModel[] functions, int[] index, int[] length, boolean[] reverse)
          This is the main constructor.
IndependentProductDiffSM(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.
 void adjustHiddenParameters(int index, DataSet[] data, double[][] weights)
          Adjusts all hidden parameters including duration and mixture parameters according to the current values of the remaining parameters.
 IndependentProductDiffSM clone()
          Creates a clone (deep copy) of the current DifferentiableSequenceScore instance.
 DataSet emitDataSet(int numberOfSequences, int... seqLength)
          This method returns a DataSet object containing artificial sequence(s).
protected  void extractFurtherInformation(StringBuffer rep)
          This method is the opposite of IndependentProductDiffSS.getFurtherInformation().
 double getESS()
          Returns the equivalent sample size (ess) of this model, i.e.
protected  StringBuffer getFurtherInformation()
          This method is used to append further information of the instance to the XML representation.
 int getGlobalIndexOfMotifInComponent(int component, int motif)
          Returns the global index of the motif used in component.
 int getIndexOfMaximalComponentFor(Sequence sequence)
          Returns the index of the component with the maximal score for the sequence sequence.
 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
 double getLogProbFor(Sequence sequence)
          Returns the logarithm of the probability of the given sequence given the model.
 double getLogProbFor(Sequence sequence, int startpos)
          Returns the logarithm of the probability of (a part of) the given sequence given the model.
 double getLogProbFor(Sequence sequence, int startpos, int endpos)
          Returns the logarithm of the probability of (a part of) the given sequence given the model.
 byte getMaximalMarkovOrder()
          This method returns the maximal used Markov order, if possible.
 int getMotifLength(int motif)
          This method returns the length of the motif with index motif .
 int getNumberOfComponents()
          Returns the number of components in this MotifDiscoverer.
 int getNumberOfMotifs()
          Returns the number of motifs for this MotifDiscoverer.
 int getNumberOfMotifsInComponent(int component)
          Returns the number of motifs that are used in the component component of this MotifDiscoverer.
 int getNumberOfParameters()
          Returns the number of parameters in this DifferentiableSequenceScore.
 int getNumberOfRecommendedStarts()
          This method returns the number of recommended optimization starts.
 double[] getProfileOfScoresFor(int component, int motif, Sequence sequence, int startpos, MotifDiscoverer.KindOfProfile dist)
          Returns the profile of the scores for component component and motif motif at all possible start positions of the motif in the sequence sequence beginning at startpos.
 int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
          Returns the size of the event space of the random variables that are affected by parameter no.
 double[] getStrandProbabilitiesFor(int component, int motif, Sequence sequence, int startpos)
          This method returns the probabilities of the strand orientations for a given subsequence if it is considered as site of the motif model in a specific component.
 void initializeMotif(int motifIndex, DataSet data, double[] weights)
          This method allows to initialize the model of a motif manually using a weighted data set.
 void initializeMotifRandomly(int motif)
          This method initializes the motif with index motif randomly using for instance DifferentiableSequenceScore.initializeFunctionRandomly(boolean).
 boolean isNormalized()
          This method indicates whether the implemented score is already normalized to 1 or not.
 boolean modifyMotif(int motifIndex, int offsetLeft, int offsetRight)
          Manually modifies the motif model with index motifIndex.
 void setParameters(double[] params, int start)
          This method sets the internal parameters to the values of params between start and start + DifferentiableSequenceScore.getNumberOfParameters() - 1
 
Methods inherited from class de.jstacs.sequenceScores.differentiable.IndependentProductDiffSS
extractSequenceParts, extractWeights, fromXML, getCurrentParameterValues, getFunctions, getIndices, getLengthArray, getLogScoreAndPartialDerivation, getLogScoreFor, getPartialLengths, getReverseSwitches, initializeFunction, initializeFunctionRandomly, isInitialized, setParamsStarts, toString, toXML
 
Methods inherited from class de.jstacs.sequenceScores.differentiable.AbstractDifferentiableSequenceScore
getAlphabetContainer, getCharacteristics, getInitialClassParam, getLength, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getNumberOfStarts, getNumericalCharacteristics
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
getCurrentParameterValues, getInitialClassParam, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, initializeFunction, initializeFunctionRandomly
 
Methods inherited from interface de.jstacs.sequenceScores.SequenceScore
getAlphabetContainer, getCharacteristics, getLength, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getNumericalCharacteristics, isInitialized, toString
 
Methods inherited from interface de.jstacs.Storable
toXML
 

Constructor Detail

IndependentProductDiffSM

public IndependentProductDiffSM(double ess,
                                boolean plugIn,
                                DifferentiableStatisticalModel... functions)
                         throws CloneNotSupportedException,
                                IllegalArgumentException,
                                WrongAlphabetException
This constructor creates an instance of an IndependentProductDiffSM from a given series of independent DifferentiableStatisticalModels. The length that is modeled by each component is determined by SequenceScore.getLength(). So the length should not be 0.

Parameters:
ess - the equivalent sample size
plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSM
functions - the components, i.e. the given series of independent DifferentiableStatisticalModels
Throws:
CloneNotSupportedException - if at least one element of functions could not be cloned
IllegalArgumentException - if at least one component has length 0 or if the equivalent sample size (ess) is smaller than zero (0)
WrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.
See Also:
IndependentProductDiffSM(double, boolean, DifferentiableStatisticalModel[], int[])

IndependentProductDiffSM

public IndependentProductDiffSM(double ess,
                                boolean plugIn,
                                DifferentiableStatisticalModel[] functions,
                                int[] length)
                         throws CloneNotSupportedException,
                                IllegalArgumentException,
                                WrongAlphabetException
This constructor creates an instance of an IndependentProductDiffSM from given series of independent DifferentiableStatisticalModels and lengths.

Parameters:
ess - the equivalent sample size
plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSM
functions - the components, i.e. the given series of independent DifferentiableStatisticalModels
length - the lengths, one for each component
Throws:
CloneNotSupportedException - if at least one component could not be cloned
IllegalArgumentException - if the lengths and the components are not matching or if the equivalent sample size (ess) is smaller than zero (0)
WrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.
See Also:
IndependentProductDiffSM(double, boolean, DifferentiableStatisticalModel[], int[], int[], boolean[])

IndependentProductDiffSM

public IndependentProductDiffSM(double ess,
                                boolean plugIn,
                                DifferentiableStatisticalModel[] functions,
                                int[] index,
                                int[] length,
                                boolean[] reverse)
                         throws CloneNotSupportedException,
                                IllegalArgumentException,
                                WrongAlphabetException
This is the main constructor.

Parameters:
ess - the equivalent sample size
plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSM
functions - the DifferentiableStatisticalModel
index - the index of the DifferentiableStatisticalModel at each part
length - the length of each part
reverse - a switch whether to use it directly or the reverse complementary strand
Throws:
CloneNotSupportedException - if at least one component could not be cloned
IllegalArgumentException - if the lengths and the components are not matching or if the equivalent sample size (ess) is smaller than zero (0)
WrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.

IndependentProductDiffSM

public IndependentProductDiffSM(StringBuffer source)
                         throws NonParsableException
This is the constructor for the interface Storable. Creates a new IndependentProductDiffSM out of a StringBuffer as returned by IndependentProductDiffSS.toXML().

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

clone

public IndependentProductDiffSM clone()
                               throws CloneNotSupportedException
Description copied from interface: DifferentiableSequenceScore
Creates a clone (deep copy) of the current DifferentiableSequenceScore instance.

Specified by:
clone in interface MotifDiscoverer
Specified by:
clone in interface DifferentiableSequenceScore
Specified by:
clone in interface SequenceScore
Overrides:
clone in class IndependentProductDiffSS
Returns:
the cloned instance of the current DifferentiableSequenceScore
Throws:
CloneNotSupportedException - if something went wrong while cloning the DifferentiableSequenceScore
See Also:
Cloneable

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, ...

Specified by:
getSizeOfEventSpaceForRandomVariablesOfParameter in interface DifferentiableStatisticalModel
Parameters:
index - the index of the parameter
Returns:
the size of the event space

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.

Specified by:
getLogNormalizationConstant in interface DifferentiableStatisticalModel
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,
\[\log \frac{\partial Z(\underline{\lambda})}{\partial \lambda_{parameterindex}}\]
.

Specified by:
getLogPartialNormalizationConstant in interface DifferentiableStatisticalModel
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.

Specified by:
getESS in interface DifferentiableStatisticalModel
Returns:
the equivalent sample size.

extractFurtherInformation

protected void extractFurtherInformation(StringBuffer rep)
                                  throws NonParsableException
Description copied from class: IndependentProductDiffSS
This method is the opposite of IndependentProductDiffSS.getFurtherInformation(). It extracts further information of the instance from a XML representation.

Overrides:
extractFurtherInformation in class IndependentProductDiffSS
Parameters:
rep - the StringBuffer containing the information to be extracted as XML code
Throws:
NonParsableException - if the StringBuffer could not be parsed

getInstanceName

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

Specified by:
getInstanceName in interface SequenceScore
Overrides:
getInstanceName in class IndependentProductDiffSS
Returns:
a short instance name

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.

Specified by:
getNumberOfParameters in interface DifferentiableSequenceScore
Overrides:
getNumberOfParameters in class IndependentProductDiffSS
Returns:
the number of parameters in this DifferentiableSequenceScore
See Also:
DifferentiableSequenceScore.UNKNOWN

getNumberOfRecommendedStarts

public int getNumberOfRecommendedStarts()
Description copied from interface: DifferentiableSequenceScore
This method returns the number of recommended optimization starts. The standard implementation returns 1.

Specified by:
getNumberOfRecommendedStarts in interface DifferentiableSequenceScore
Overrides:
getNumberOfRecommendedStarts in class IndependentProductDiffSS
Returns:
the number of recommended optimization starts

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

Specified by:
setParameters in interface DifferentiableSequenceScore
Overrides:
setParameters in class IndependentProductDiffSS
Parameters:
params - the new parameters
start - the start index in params

getFurtherInformation

protected StringBuffer getFurtherInformation()
Description copied from class: IndependentProductDiffSS
This method is used to append further information of the instance to the XML representation. This method is designed to allow subclasses to add information to the XML representation.

Overrides:
getFurtherInformation in class IndependentProductDiffSS
Returns:
the further information as XML code in a StringBuffer

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.

Specified by:
getLogPriorTerm in interface DifferentiableStatisticalModel
Specified by:
getLogPriorTerm in interface StatisticalModel
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)
                               throws Exception
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.

Specified by:
addGradientOfLogPriorTerm in interface DifferentiableStatisticalModel
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
Throws:
Exception - if something went wrong with the computing of the gradients
See Also:
DifferentiableStatisticalModel.getLogPriorTerm()

getLogProbFor

public double getLogProbFor(Sequence sequence,
                            int startpos)
                     throws Exception
Description copied from interface: StatisticalModel
Returns the logarithm of the probability of (a part of) the given sequence given the model. If at least one random variable is continuous the value of density function is returned.

If the length of the sequences, whose probability should be returned, is fixed (e.g. in a inhomogeneous model) and the given sequence is longer than their fixed length, the start position within the given sequence is given by startpos. E.g. the fixed length is 12. The length of the given sequence is 30 and the startpos=15 the logarithm of the probability of the part from position 15 to 26 (inclusive) given the model should be returned.
The length and the alphabets define the type of data that can be modeled and therefore both has to be checked.

Specified by:
getLogProbFor in interface StatisticalModel
Parameters:
sequence - the given sequence
startpos - the start position within the given sequence
Returns:
the logarithm of the probability or the value of the density function of (the part of) the given sequence given the model
Throws:
Exception - if the sequence could not be handled by the model
NotTrainedException - if the model is not trained yet
See Also:
StatisticalModel.getLogProbFor(Sequence, int, int)

getLogProbFor

public double getLogProbFor(Sequence sequence)
                     throws Exception
Description copied from interface: StatisticalModel
Returns the logarithm of the probability of the given sequence given the model. If at least one random variable is continuous the value of density function is returned.

The length and the alphabets define the type of data that can be modeled and therefore both has to be checked.

Specified by:
getLogProbFor in interface StatisticalModel
Parameters:
sequence - the given sequence for which the logarithm of the probability/the value of the density function should be returned
Returns:
the logarithm of the probability or the value of the density function of the part of the given sequence given the model
Throws:
Exception - if the sequence could not be handled by the model
NotTrainedException - if the model is not trained yet
See Also:
StatisticalModel.getLogProbFor(Sequence, int, int)

getLogProbFor

public double getLogProbFor(Sequence sequence,
                            int startpos,
                            int endpos)
                     throws Exception
Description copied from interface: StatisticalModel
Returns the logarithm of the probability of (a part of) the given sequence given the model. If at least one random variable is continuous the value of density function is returned.

It extends the possibility given by the method StatisticalModel.getLogProbFor(Sequence, int) by the fact, that the model could be e.g. homogeneous and therefore the length of the sequences, whose probability should be returned, is not fixed. Additionally, the end position of the part of the given sequence is given and the probability of the part from position startpos to endpos (inclusive) should be returned.
The length and the alphabets define the type of data that can be modeled and therefore both has to be checked.

Specified by:
getLogProbFor in interface StatisticalModel
Parameters:
sequence - the given sequence
startpos - the start position within the given sequence
endpos - the last position to be taken into account
Returns:
the logarithm of the probability or the value of the density function of (the part of) the given sequence given the model
Throws:
Exception - if the sequence could not be handled (e.g. startpos > , endpos > sequence.length, ...) by the model
NotTrainedException - if the model is not trained yet

initializeMotif

public void initializeMotif(int motifIndex,
                            DataSet data,
                            double[] weights)
                     throws Exception
Description copied from interface: MutableMotifDiscoverer
This method allows to initialize the model of a motif manually using a weighted data set.

Specified by:
initializeMotif in interface MutableMotifDiscoverer
Parameters:
motifIndex - the index of the motif in the motif discoverer
data - the data set of sequences
weights - either null or an array of length data.getNumberofElements() with non-negative weights.
Throws:
Exception - if initialize was not possible

initializeMotifRandomly

public void initializeMotifRandomly(int motif)
                             throws Exception
Description copied from interface: MutableMotifDiscoverer
This method initializes the motif with index motif randomly using for instance DifferentiableSequenceScore.initializeFunctionRandomly(boolean). Furthermore, if available, it also initializes the positional distribution.

Specified by:
initializeMotifRandomly in interface MutableMotifDiscoverer
Parameters:
motif - the index of the motif
Throws:
Exception - either if the index is wrong or if it is thrown by the method DifferentiableSequenceScore.initializeFunctionRandomly(boolean)

modifyMotif

public boolean modifyMotif(int motifIndex,
                           int offsetLeft,
                           int offsetRight)
                    throws Exception
Description copied from interface: MutableMotifDiscoverer
Manually modifies the motif model with index motifIndex. The two offsets offsetLeft and offsetRight define how many positions the left or right border positions shall be moved. Negative numbers indicate moves to the left while positive numbers correspond to moves to the right. The distribution for sequences to the left and right side of the motif shall be computed internally.

Specified by:
modifyMotif in interface MutableMotifDiscoverer
Parameters:
motifIndex - the index of the motif in the motif discoverer
offsetLeft - the offset on the left side
offsetRight - the offset on the right side
Returns:
true if the motif model was modified otherwise false
Throws:
Exception - if some unexpected error occurred during the modification
See Also:
MutableMotifDiscoverer.modifyMotif(int, int, int), Mutable.modify(int, int)

getGlobalIndexOfMotifInComponent

public int getGlobalIndexOfMotifInComponent(int component,
                                            int motif)
Description copied from interface: MotifDiscoverer
Returns the global index of the motif used in component. The index returned must be at least 0 and less than MotifDiscoverer.getNumberOfMotifs().

Specified by:
getGlobalIndexOfMotifInComponent in interface MotifDiscoverer
Parameters:
component - the component index
motif - the motif index in the component
Returns:
the global index of the motif in component

getIndexOfMaximalComponentFor

public int getIndexOfMaximalComponentFor(Sequence sequence)
                                  throws Exception
Description copied from interface: MotifDiscoverer
Returns the index of the component with the maximal score for the sequence sequence.

Specified by:
getIndexOfMaximalComponentFor in interface MotifDiscoverer
Parameters:
sequence - the given sequence
Returns:
the index of the component with the maximal score for the given sequence
Throws:
Exception - if the index could not be computed for any reasons

getMotifLength

public int getMotifLength(int motif)
Description copied from interface: MotifDiscoverer
This method returns the length of the motif with index motif .

Specified by:
getMotifLength in interface MotifDiscoverer
Parameters:
motif - the index of the motif
Returns:
the length of the motif with index motif

getNumberOfComponents

public int getNumberOfComponents()
Description copied from interface: MotifDiscoverer
Returns the number of components in this MotifDiscoverer.

Specified by:
getNumberOfComponents in interface MotifDiscoverer
Returns:
the number of components

getNumberOfMotifs

public int getNumberOfMotifs()
Description copied from interface: MotifDiscoverer
Returns the number of motifs for this MotifDiscoverer.

Specified by:
getNumberOfMotifs in interface MotifDiscoverer
Returns:
the number of motifs

getNumberOfMotifsInComponent

public int getNumberOfMotifsInComponent(int component)
Description copied from interface: MotifDiscoverer
Returns the number of motifs that are used in the component component of this MotifDiscoverer.

Specified by:
getNumberOfMotifsInComponent in interface MotifDiscoverer
Parameters:
component - the component of the MotifDiscoverer
Returns:
the number of motifs

getProfileOfScoresFor

public double[] getProfileOfScoresFor(int component,
                                      int motif,
                                      Sequence sequence,
                                      int startpos,
                                      MotifDiscoverer.KindOfProfile dist)
                               throws Exception
Description copied from interface: MotifDiscoverer
Returns the profile of the scores for component component and motif motif at all possible start positions of the motif in the sequence sequence beginning at startpos. This array should be of length
sequence.length() - startpos - motifs[motif].getLength() + 1.
A high score should encode for a probable start position.

Specified by:
getProfileOfScoresFor in interface MotifDiscoverer
Parameters:
component - the component index
motif - the index of the motif in the component
sequence - the given sequence
startpos - the start position in the sequence
dist - indicates the kind of profile
Returns:
the profile of scores
Throws:
Exception - if the score could not be computed for any reasons

getStrandProbabilitiesFor

public double[] getStrandProbabilitiesFor(int component,
                                          int motif,
                                          Sequence sequence,
                                          int startpos)
                                   throws Exception
Description copied from interface: MotifDiscoverer
This method returns the probabilities of the strand orientations for a given subsequence if it is considered as site of the motif model in a specific component.

Specified by:
getStrandProbabilitiesFor in interface MotifDiscoverer
Parameters:
component - the component index
motif - the index of the motif in the component
sequence - the given sequence
startpos - the start position in the sequence
Returns:
the probabilities of the strand orientations
Throws:
Exception - if the strand could not be computed for any reasons

isNormalized

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

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

adjustHiddenParameters

public void adjustHiddenParameters(int index,
                                   DataSet[] data,
                                   double[][] weights)
                            throws Exception
Description copied from interface: MutableMotifDiscoverer
Adjusts all hidden parameters including duration and mixture parameters according to the current values of the remaining parameters.

Specified by:
adjustHiddenParameters in interface MutableMotifDiscoverer
Parameters:
index - the index of the class of this MutableMotifDiscoverer
data - the array of data for all classes
weights - the weights for all sequences in data
Throws:
Exception - thrown if the hidden parameters could not be adjusted

emitDataSet

public DataSet emitDataSet(int numberOfSequences,
                           int... seqLength)
                    throws NotTrainedException,
                           Exception
Description copied from interface: StatisticalModel
This method returns a DataSet object containing artificial sequence(s).

There are two different possibilities to create a data set for a model with length 0 (homogeneous models).
  1. emitDataSet( int n, int l ) should return a data set with n sequences of length l.
  2. emitDataSet( int n, int[] l ) should return a data set with n sequences which have a sequence length corresponding to the entry in the given array l.

There are two different possibilities to create a data set for a model with length greater than 0 (inhomogeneous models).
emitDataSet( int n ) and emitDataSet( int n, null ) should return a data set with n sequences of length of the model ( SequenceScore.getLength()).

The standard implementation throws an Exception.

Specified by:
emitDataSet in interface StatisticalModel
Parameters:
numberOfSequences - the number of sequences that should be contained in the returned data set
seqLength - the length of the sequences for a homogeneous model; for an inhomogeneous model this parameter should be null or an array of size 0.
Returns:
a DataSet containing the artificial sequence(s)
Throws:
NotTrainedException - if the model is not trained yet
Exception - if the emission did not succeed
See Also:
DataSet

getMaximalMarkovOrder

public byte getMaximalMarkovOrder()
                           throws UnsupportedOperationException
Description copied from interface: StatisticalModel
This method returns the maximal used Markov order, if possible.

Specified by:
getMaximalMarkovOrder in interface StatisticalModel
Returns:
maximal used Markov order
Throws:
UnsupportedOperationException - if the model can't give a proper answer