de.jstacs.sampling
Interface SamplingComponent

All Known Subinterfaces:
GibbsSamplingModel, SamplingEmission, SamplingFromStatistic, SamplingState, SamplingTransition
All Known Implementing Classes:
AbstractConditionalDiscreteEmission, DiscreteEmission, FSDAGModelForGibbsSampling, HigherOrderTransition, PhyloDiscreteEmission, ReferenceSequenceDiscreteEmission, SamplingScoreBasedClassifier.DiffSMSamplingComponent, SilentEmission, SimpleSamplingState

public interface SamplingComponent

This interface defines methods that are used during a sampling. Before starting a series of samplings the method initForSampling(int) is called.
Then before starting a specific sampling the method extendSampling(int, boolean) is called.
During the sampling the parameters have to be sampled from the posterior by a specialized method that is defined in one of the sub-interfaces. The sampled parameters can than be written to a file using the method acceptParameters().
After finishing the sampling the method samplingStopped() is called.
After a sampling the methods parseParameterSet(int, int) and parseNextParameterSet() will be used for computing for instance the (log-) likelihoods.


The method isInSamplingMode() can be used to check whether an object is currently used for sampling. If the object is in sampling mode, it should not support any other method for changing the parameters than the specialized sampling method of the sub-interfaces and parseParameterSet(int, int). Furthermore it is legal to throw an Exception when the object is in sampling mode and a method for saving, cloning or training the parameters is called.

Author:
Berit Haldemann, Jens Keilwagen, Michael Scharfe

Method Summary
 void acceptParameters()
          This methods accepts the drawn parameters.
 void extendSampling(int sampling, boolean append)
          This method allows to extend a sampling.
 void initForSampling(int starts)
          This method initializes the instance for the sampling.
 boolean isInSamplingMode()
          This method returns true if the object is currently used in a sampling, otherwise false.
 boolean parseNextParameterSet()
          This method allows the user to parse the next set of parameters (from a file).
 boolean parseParameterSet(int sampling, int n)
          This method allows the user to parse the set of parameters with index n of a certain sampling (from a file).
 void samplingStopped()
          This method is the opposite of the method extendSampling(int, boolean).
 

Method Detail

parseParameterSet

boolean parseParameterSet(int sampling,
                          int n)
                          throws Exception
This method allows the user to parse the set of parameters with index n of a certain sampling (from a file). The internal numbering should start with 0. The parameter set with index 0 is the initial (random) parameter set. It is recommended that a series of parameter sets is accessed by the following lines:

for( sampling = 0; sampling < numSampling; sampling++ )
{

boolean b = parseParameterSet( sampling, n );
while( b )
{
//do something
b = parseNextParameterSet();
}
}

Parameters:
sampling - the index of the sampling
n - the index of the parameter set
Returns:
true if the parameter set could be parsed
Throws:
Exception - if there is a problem with parsing the parameters
See Also:
parseNextParameterSet()

parseNextParameterSet

boolean parseNextParameterSet()
This method allows the user to parse the next set of parameters (from a file).

Returns:
true if the parameters could be parsed, otherwise false
See Also:
parseParameterSet(int, int)

initForSampling

void initForSampling(int starts)
                     throws IOException
This method initializes the instance for the sampling. For instance this method can be used to create new files where all parameter sets are stored.

Parameters:
starts - the number of different sampling starts that will be done
Throws:
IOException - if something went wrong
See Also:
File.createTempFile(String, String, java.io.File )

extendSampling

void extendSampling(int sampling,
                    boolean append)
                    throws IOException
This method allows to extend a sampling.

Parameters:
sampling - the index of the sampling
append - whether to append the sampled parameters to an existing file or to overwrite the file
Throws:
IOException - if the file could not be handled correctly

samplingStopped

void samplingStopped()
                     throws IOException
This method is the opposite of the method extendSampling(int, boolean). It can be used for closing any streams of writer, ...

Throws:
IOException - if something went wrong
See Also:
extendSampling(int, boolean)

isInSamplingMode

boolean isInSamplingMode()
This method returns true if the object is currently used in a sampling, otherwise false.

Returns:
true if the object is currently used in a sampling, otherwise false

acceptParameters

void acceptParameters()
                      throws IOException
This methods accepts the drawn parameters. Internally the drawn parameters should be saved (to a file).

Throws:
IOException - if the file could not be handled correctly