de.jstacs.scoringFunctions.mix.motifSearch
Class PositionScoringFunction

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

public abstract class PositionScoringFunction
extends AbstractNormalizableScoringFunction

This class implements a position scoring function that enables the user to get a score without using a Sequence object. It furthermore implements a kind of iterator that allows the user to iterate over all reasonable possibilities.

Author:
Jens Keilwagen
See Also:
Sequence, reset(), next(), getLogScoreForInternal(), getLogScoreAndPartialDerivationForInternal(IntList, DoubleList)

Field Summary
protected  int[] internal
          This array is used for some method of DurationScoringFunction that use an internal memory
 
Fields inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
alphabets, length, r
 
Fields inherited from interface de.jstacs.scoringFunctions.ScoringFunction
UNKNOWN
 
Constructor Summary
protected PositionScoringFunction(AlphabetContainer con, int length)
          This constructor allows create instance with more than one dimension.
protected PositionScoringFunction(int min, int max)
          This is the main constructor that creates the AlphabetContainer internally.
protected PositionScoringFunction(StringBuffer source)
          This is the constructor for Storable.
 
Method Summary
 PositionScoringFunction clone()
          Creates a clone (deep copy) of the current ScoringFunction instance.
protected  void fromXML(StringBuffer xml)
          This method is called in the constructor for the Storable interface to create a scoring function from a StringBuffer.
 void getInternalPosition(int[] positions)
          Copies the current value of the internal iterator in the given array.
abstract  double getLogScore(int... values)
          This method enables the user to get the log-score without using a sequence object.
 double getLogScore(Sequence seq, int start)
          Returns the logarithmic score for the Sequence seq beginning at position start in the Sequence.
abstract  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.
 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 getLogScoreAndPartialDerivationForInternal(IntList indices, DoubleList partialDer)
          This method enables the user to get the log-score and the partial derivations without using a sequence object by using the internal iterator.
 double getLogScoreForInternal()
          This method enables the user to get the log-score without using a sequence object by using the internal iterator.
protected  int[] getValuesFromSequence(Sequence seq, int start)
          This method extracts the values form a sequence.
abstract  boolean isPossible(int... positions)
          This method returns true if the given positions are in the domain of the PositionScoringFunction.
abstract  boolean next()
          This method steps to the next reasonable outcome if possible.
abstract  void reset()
          This method resets the iterator to the initial state (first reasonable output) so that it can be used again.
 StringBuffer toXML()
          This method returns an XML representation as StringBuffer of an instance of the implementing class.
 
Methods inherited from class de.jstacs.scoringFunctions.AbstractNormalizableScoringFunction
getAlphabetContainer, getInitialClassParam, getLength, getLogScore, getLogScoreAndPartialDerivation, getNumberOfRecommendedStarts, getNumberOfStarts, isNormalized, isNormalized
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.jstacs.scoringFunctions.NormalizableScoringFunction
addGradientOfLogPriorTerm, getEss, getLogNormalizationConstant, getLogPartialNormalizationConstant, getLogPriorTerm, getSizeOfEventSpaceForRandomVariablesOfParameter
 
Methods inherited from interface de.jstacs.scoringFunctions.ScoringFunction
getCurrentParameterValues, getInstanceName, getNumberOfParameters, initializeFunction, initializeFunctionRandomly, isInitialized, setParameters
 

Field Detail

internal

protected int[] internal
This array is used for some method of DurationScoringFunction that use an internal memory

See Also:
DurationScoringFunction.reset(), DurationScoringFunction.next(), getInternalPosition(int[])
Constructor Detail

PositionScoringFunction

protected PositionScoringFunction(AlphabetContainer con,
                                  int length)
This constructor allows create instance with more than one dimension. This constructor can be used if the AlphabetContainer already exists.

Parameters:
con - the AlphabetContainer
length - the number of dimensions, e.g. the length of the modeled sequences

PositionScoringFunction

protected PositionScoringFunction(int min,
                                  int max)
This is the main constructor that creates the AlphabetContainer internally.

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

PositionScoringFunction

protected PositionScoringFunction(StringBuffer source)
                           throws NonParsableException
This is the constructor for Storable. Creates a new DurationScoringFunction out of a StringBuffer.

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

clone

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

Specified by:
clone in interface ScoringFunction
Overrides:
clone in class AbstractNormalizableScoringFunction
Returns:
the cloned instance of the current ScoringFunction
Throws:
CloneNotSupportedException - if something went wrong while cloning the ScoringFunction

reset

public abstract void reset()
This method resets the iterator to the initial state (first reasonable output) so that it can be used again.


next

public abstract boolean next()
This method steps to the next reasonable outcome if possible.

Returns:
true if a next reasonable outcome could be set, otherwise false

getInternalPosition

public void getInternalPosition(int[] positions)
Copies the current value of the internal iterator in the given array.

Parameters:
positions - the array containing the internal positions after calling this method

getLogScoreForInternal

public double getLogScoreForInternal()
This method enables the user to get the log-score without using a sequence object by using the internal iterator.

Returns:
the score

getLogScoreAndPartialDerivationForInternal

public double getLogScoreAndPartialDerivationForInternal(IntList indices,
                                                         DoubleList partialDer)
This method enables the user to get the log-score and the partial derivations without using a sequence object by using the internal iterator.

Parameters:
indices - a list for the indices of the parameters
partialDer - a list of the partial derivations
Returns:
the score

getLogScore

public abstract double getLogScore(int... values)
This method enables the user to get the log-score without using a sequence object.

Parameters:
values - the values
Returns:
the score

getLogScoreAndPartialDerivation

public abstract 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.

Parameters:
indices - a list for the indices of the parameters
partialDer - a list of the partial derivations
values - the values
Returns:
the score

getLogScore

public double getLogScore(Sequence seq,
                          int start)
Description copied from interface: ScoringFunction
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: ScoringFunction
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 $\frac{\partial \log score(seq)}{\partial \lambda_i}$ is not zero
partialDer - a DoubleList of partial derivations, after method invocation the list should contain the corresponding $\frac{\partial \log score(seq)}{\partial \lambda_i}$ that are not zero
Returns:
the logarithmic score for the Sequence

getValuesFromSequence

protected int[] getValuesFromSequence(Sequence seq,
                                      int start)
This method extracts the values form a sequence.

Parameters:
seq - the sequence
start - the index of the startposition
Returns:
the values of the sequence

isPossible

public abstract boolean isPossible(int... positions)
This method returns true if the given positions are in the domain of the PositionScoringFunction.

Parameters:
positions - the positions to be tested
Returns:
true if the given positions are in the domain of the PositionScoringFunction

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

fromXML

protected void fromXML(StringBuffer xml)
                throws NonParsableException
Description copied from class: AbstractNormalizableScoringFunction
This method is called in the constructor for the Storable interface to create a scoring function from a StringBuffer.

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