public class IndependentProductDiffSS extends AbstractDifferentiableSequenceScore
DifferentiableSequenceScore and has the length of the first
DifferentiableSequenceScore, the second part starts directly after
the first part, is modeled by the second DifferentiableSequenceScore
... etc. It is also possible to use a DifferentiableSequenceScore for
more than one sequence part and in both orientations (if possible).
| Modifier and Type | Field and Description |
|---|---|
protected int[] |
index
This index indicates which entry of the array
score should be used for the specific parts. |
protected boolean[] |
isVariable
This array specifies for each entry of
score whether it is able to score sequences of variable length. |
protected int[] |
partialLength
This array specifies the lengths of the specific parts.
|
protected boolean[] |
reverse
This array specifies whether the sequence or its reverse complement is used in the specific parts.
|
protected DifferentiableSequenceScore[] |
score
The internally used
DifferentiableSequenceScores. |
protected int[] |
start
This array specifies the start positions of the specific parts.
|
protected int[] |
startIndexOfParams
This array contains the start indices for
DifferentiableSequenceScore.setParameters(double[], int) on score. |
alphabets, length, rUNKNOWN| Constructor and Description |
|---|
IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore... functions)
This constructor creates an instance of an
IndependentProductDiffSS from a given series of
independent DifferentiableSequenceScores. |
IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore[] functions,
int[] length)
This constructor creates an instance of an
IndependentProductDiffSS from given series of
independent DifferentiableSequenceScores and lengths. |
IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore[] functions,
int[] index,
int[] length,
boolean[] reverse)
This is the main constructor.
|
IndependentProductDiffSS(StringBuffer source)
This is the constructor for the interface
Storable. |
| Modifier and Type | Method and Description |
|---|---|
IndependentProductDiffSS |
clone()
Creates a clone (deep copy) of the current
DifferentiableSequenceScore
instance. |
protected void |
extractFurtherInformation(StringBuffer xml)
This method is the opposite of
getFurtherInformation(). |
int |
extractSequenceParts(int scoringFunctionIndex,
DataSet[] data,
DataSet[] result)
This method extracts the corresponding
Sequence parts for a specific DifferentiableSequenceScore. |
double[][] |
extractWeights(int number,
double[][] weights)
This method creates the weights for
extractSequenceParts(int, DataSet[], DataSet[]). |
protected void |
fromXML(StringBuffer rep)
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. |
DifferentiableSequenceScore[] |
getFunctions()
This method returns a deep copy of the internally used
DifferentiableSequenceScore. |
protected StringBuffer |
getFurtherInformation()
This method is used to append further information of the instance to the
XML representation.
|
int[] |
getIndices()
This method returns a deep copy of the internally used indices of the
DifferentiableSequenceScore for the parts. |
String |
getInstanceName()
Should return a short instance name such as iMM(0), BN(2), ...
|
protected static int[] |
getLengthArray(DifferentiableSequenceScore... function)
This method provides an array of lengths that can be used for instance as
partialLength. |
double |
getLogScoreAndPartialDerivation(Sequence seq,
int start,
IntList indices,
DoubleList partialDer)
|
double |
getLogScoreFor(Sequence seq,
int start)
|
int |
getNumberOfParameters()
Returns the number of parameters in this
DifferentiableSequenceScore. |
int |
getNumberOfRecommendedStarts()
This method returns the number of recommended optimization starts.
|
int[] |
getPartialLengths()
This method returns a deep copy of the internally used partial lengths of the parts.
|
boolean[] |
getReverseSwitches()
This method returns a deep copy of the internally used switches for the parts whether to use the corresponding
DifferentiableSequenceScore forward or as reverse complement. |
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 + |
protected void |
setParamsStarts()
This method set the value of the array
startIndexOfParams. |
String |
toString(NumberFormat nf)
This method returns a
String representation of the instance. |
StringBuffer |
toXML()
This method returns an XML representation as
StringBuffer of an
instance of the implementing class. |
getAlphabetContainer, getCharacteristics, getInitialClassParam, getLength, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getNumberOfStarts, getNumericalCharacteristics, toStringprotected DifferentiableSequenceScore[] score
DifferentiableSequenceScores.protected int[] index
score should be used for the specific parts.protected int[] start
protected int[] partialLength
protected boolean[] reverse
protected boolean[] isVariable
score whether it is able to score sequences of variable length.protected int[] startIndexOfParams
DifferentiableSequenceScore.setParameters(double[], int) on score.public IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore... functions)
throws CloneNotSupportedException,
WrongAlphabetException
IndependentProductDiffSS from a given series of
independent DifferentiableSequenceScores. The length that is
modeled by each component is determined by
SequenceScore.getLength(). So the length should not be 0.plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSMfunctions - the components, i.e. the given series of independent
DifferentiableSequenceScoresCloneNotSupportedException - if at least one element of functions could not
be clonedWrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.IndependentProductDiffSS(boolean, DifferentiableSequenceScore[], int[])public IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore[] functions,
int[] length)
throws CloneNotSupportedException,
WrongAlphabetException
IndependentProductDiffSS from given series of
independent DifferentiableSequenceScores and lengths.plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSMfunctions - the components, i.e. the given series of independent
DifferentiableSequenceScoreslength - the lengths, one for each componentCloneNotSupportedException - if at least one component could not be clonedWrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.IndependentProductDiffSS(boolean, DifferentiableSequenceScore[], int[], int[], boolean[])public IndependentProductDiffSS(boolean plugIn,
DifferentiableSequenceScore[] functions,
int[] index,
int[] length,
boolean[] reverse)
throws CloneNotSupportedException,
WrongAlphabetException
plugIn - whether to use plugIn parameters for the parts, otherwise the last parameters are used for parts that are instance of HomogeneousDiffSMfunctions - the DifferentiableSequenceScoreindex - the index of the DifferentiableSequenceScore at each partlength - the length of each partreverse - a switch whether to use it directly or the reverse complementary strandCloneNotSupportedException - if at least one component could not be clonedWrongAlphabetException - if the user tries to use an alphabet for a reverse complement that can not be used for a reverse complement.public IndependentProductDiffSS(StringBuffer source) throws NonParsableException
Storable.
Creates a new IndependentProductDiffSS out of a
StringBuffer as returned by toXML().source - the XML representation as StringBufferNonParsableException - if the XML representation could not be parsedprotected static final int[] getLengthArray(DifferentiableSequenceScore... function) throws IllegalArgumentException
partialLength.function - the internally used DifferentiableSequenceScorespartialLengthIllegalArgumentException - if at least one function has length 0SequenceScore.getLength(),
IndependentProductDiffSS(boolean, DifferentiableSequenceScore...)protected void setParamsStarts()
startIndexOfParams.public IndependentProductDiffSS clone() throws CloneNotSupportedException
DifferentiableSequenceScoreDifferentiableSequenceScore
instance.clone in interface DifferentiableSequenceScoreclone in interface SequenceScoreclone in class AbstractDifferentiableSequenceScoreDifferentiableSequenceScoreCloneNotSupportedException - if something went wrong while cloning the
DifferentiableSequenceScorepublic void initializeFunction(int index,
boolean freeParams,
DataSet[] data,
double[][] weights)
throws Exception
DifferentiableSequenceScoreDifferentiableSequenceScore.index - the index of the class the DifferentiableSequenceScore modelsfreeParams - indicates whether the (reduced) parameterization is useddata - the data setsweights - the weights of the sequences in the data setsException - if something went wrongpublic int extractSequenceParts(int scoringFunctionIndex,
DataSet[] data,
DataSet[] result)
throws Exception
Sequence parts for a specific DifferentiableSequenceScore.scoringFunctionIndex - the index of the DifferentiableSequenceScoredata - the original dataresult - an array for the resulting DataSets of Sequences; has to have same length as dataDifferentiableSequenceScore was usedException - if the DataSet can not be createdpublic double[][] extractWeights(int number,
double[][] weights)
extractSequenceParts(int, DataSet[], DataSet[]).number - the number how often the weights should be copied after each other.weights - the original weightsnull)extractSequenceParts(int, DataSet[], DataSet[])protected void fromXML(StringBuffer rep) throws NonParsableException
AbstractDifferentiableSequenceScoreStorable
interface to create a scoring function from a StringBuffer.fromXML in class AbstractDifferentiableSequenceScorerep - the XML representation as StringBufferNonParsableException - if the StringBuffer could not be parsedAbstractDifferentiableSequenceScore.AbstractDifferentiableSequenceScore(StringBuffer)protected StringBuffer getFurtherInformation()
StringBufferprotected void extractFurtherInformation(StringBuffer xml) throws NonParsableException
getFurtherInformation(). It
extracts further information of the instance from a XML representation.xml - the StringBuffer containing the information to be
extracted as XML codeNonParsableException - if the StringBuffer could not be parsedpublic String getInstanceName()
SequenceScorepublic DifferentiableSequenceScore[] getFunctions() throws Exception
DifferentiableSequenceScore.DifferentiableSequenceScoreException - if at least one DifferentiableSequenceScore could not be clonedgetIndices(),
getPartialLengths(),
getReverseSwitches()public int[] getIndices()
DifferentiableSequenceScore for the parts.DifferentiableSequenceScore for the partsgetFunctions(),
getPartialLengths(),
getReverseSwitches()public int[] getPartialLengths()
getFunctions(),
getIndices(),
getReverseSwitches()public boolean[] getReverseSwitches()
DifferentiableSequenceScore forward or as reverse complement.DifferentiableSequenceScore forward or as reverse complementgetFunctions(),
getIndices(),
getPartialLengths()public double[] getCurrentParameterValues()
throws Exception
DifferentiableSequenceScoredouble 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.Exception - if no parameters exist (yet)public double getLogScoreFor(Sequence seq, int start)
SequenceScorepublic double getLogScoreAndPartialDerivation(Sequence seq, int start, IntList indices, DoubleList partialDer)
DifferentiableSequenceScoreSequence beginning at
position start in the Sequence and fills lists with
the indices and the partial derivations.seq - the Sequencestart - the start position in the Sequenceindices - an IntList of indices, after method invocation the
list should contain the indices i where
is not zeropartialDer - a DoubleList of partial derivations, after method
invocation the list should contain the corresponding
that are not zeroSequencepublic int getNumberOfParameters()
DifferentiableSequenceScoreDifferentiableSequenceScore. If the
number of parameters is not known yet, the method returns
DifferentiableSequenceScore.UNKNOWN.DifferentiableSequenceScoreDifferentiableSequenceScore.UNKNOWNpublic int getNumberOfRecommendedStarts()
DifferentiableSequenceScoregetNumberOfRecommendedStarts in interface DifferentiableSequenceScoregetNumberOfRecommendedStarts in class AbstractDifferentiableSequenceScorepublic void setParameters(double[] params,
int start)
DifferentiableSequenceScoreparams between start and
start + DifferentiableSequenceScore.getNumberOfParameters() - 1params - the new parametersstart - the start index in paramspublic StringBuffer toXML()
StorableStringBuffer of an
instance of the implementing class.public String toString(NumberFormat nf)
SequenceScoreString representation of the instance.nf - the NumberFormat for the String representation of parameters or probabilitiesString representation of the instancepublic boolean isInitialized()
SequenceScoreSequenceScore.getLogScoreFor(Sequence).true if the instance is initialized, false
otherwisepublic void initializeFunctionRandomly(boolean freeParams)
throws Exception
DifferentiableSequenceScoreDifferentiableSequenceScore randomly. It has to
create the underlying structure of the DifferentiableSequenceScore.freeParams - indicates whether the (reduced) parameterization is usedException - if something went wrong