|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectde.jstacs.models.AbstractModel
de.jstacs.models.CompositeModel
public class CompositeModel
This class is for modelling sequences by modelling the different positions of the each sequence by different models. For instance one can use this class to model a sequence of subsequences, where each subsequence is modeled by a different model.
| Field Summary | |
|---|---|
protected int[][] |
lengths
The length for each component. |
protected Model[] |
models
The models for the components |
protected int[][] |
starts
The start indices. |
| Fields inherited from class de.jstacs.models.AbstractModel |
|---|
alphabets, length |
| Constructor Summary | |
|---|---|
CompositeModel(AlphabetContainer alphabets,
int[] assignment,
Model... models)
Creates a new CompositeModel. |
|
CompositeModel(StringBuffer stringBuff)
The standard constructor for the interface Storable. |
|
| Method Summary | |
|---|---|
CompositeModel |
clone()
Follows the conventions of Object's clone()-method. |
void |
fromXML(StringBuffer representation)
This method should only be used by the constructor that works on a StringBuffer. |
ResultSet |
getCharacteristics()
Returns some information characterizing or describing the current instance of the model. |
String |
getInstanceName()
Should return a short instance name such as iMM(0), BN(2), ... |
int[] |
getLengthOfModels()
This method returns the length of the models in the CompositeModel. |
double |
getLogPriorTerm()
Returns a value that is proportional to the log of the prior. |
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. |
Model[] |
getModels()
Returns the a deep copy of the models. |
int |
getNumberOfModels()
This method returns the number of models in the CompositeModel. |
NumericalResultSet |
getNumericalCharacteristics()
Returns the subset of numerical values that are also returned by Model.getCharacteristics(). |
double |
getProbFor(Sequence sequence,
int startpos,
int endpos)
Returns the probability of (a part of) the given sequence given the model. |
boolean |
isTrained()
Returns true if the model has been trained successfully,
false otherwise. |
protected void |
set(AlphabetContainer abc)
This method should only be invoked by the method AbstractModel.setNewAlphabetContainerInstance(AlphabetContainer) and not be
made public. |
String |
toString()
Should give a simple representation (text) of the model as String
. |
StringBuffer |
toXML()
This method returns an XML representation as StringBuffer of an
instance of the implementing class. |
void |
train(Sample data,
double[] weights)
Trains the Model object given the data as Sample using
the specified weights. |
| Methods inherited from class de.jstacs.models.AbstractModel |
|---|
emitSample, getAlphabetContainer, getLength, getLogProbFor, getLogProbFor, getLogProbFor, getLogProbFor, getPriorTerm, getProbFor, getProbFor, setNewAlphabetContainerInstance, train |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected Model[] models
protected int[][] starts
protected int[][] lengths
| Constructor Detail |
|---|
public CompositeModel(AlphabetContainer alphabets,
int[] assignment,
Model... models)
throws WrongAlphabetException,
CloneNotSupportedException
CompositeModel.
alphabets - the alphabets used in the modelsassignment - an array assigning each position to a modelmodels - the single models
IllegalArgumentException - if something is wrong with the assignment of the models
WrongAlphabetException - if (parts of) the alphabet does not match with the alphabets
of the models
CloneNotSupportedException - if the models could not be cloned
public CompositeModel(StringBuffer stringBuff)
throws NonParsableException
Storable.
Creates a new CompositeModel out of a StringBuffer.
stringBuff - the StringBuffer to be parsed
NonParsableException - if the StringBuffer is not parsable| Method Detail |
|---|
public CompositeModel clone()
throws CloneNotSupportedException
AbstractModelObject's clone()-method.
clone in interface Modelclone in class AbstractModelAbstractModel
(the member-AlphabetContainer isn't deeply cloned since
it is assumed to be immutable). The type of the returned object
is defined by the class X directly inherited from
AbstractModel. Hence X's
clone()-method should work as:Object o = (X)super.clone(); o defined by
X that are not of simple data-types like
int, double, ... have to be deeply
copied return o
CloneNotSupportedException - if something went wrong while cloning
public ResultSet getCharacteristics()
throws Exception
ModelStorableResult.
getCharacteristics in interface ModelgetCharacteristics in class AbstractModelException - if some of the characteristics could not be definedStorableResultpublic String getInstanceName()
Model
public int[] getLengthOfModels()
CompositeModel.
public byte getMaximalMarkovOrder()
throws UnsupportedOperationException
Model
getMaximalMarkovOrder in interface ModelgetMaximalMarkovOrder in class AbstractModelUnsupportedOperationException - if the model can't give a proper answer
public NumericalResultSet getNumericalCharacteristics()
throws Exception
ModelModel.getCharacteristics().
Exception - if some of the characteristics could not be defined
public Model[] getModels()
throws CloneNotSupportedException
AbstractModels
CloneNotSupportedException - if at least one of the models could not be clonedpublic int getNumberOfModels()
CompositeModel.
public double getLogPriorTerm()
throws Exception
Model
Exception - if something went wrongModel.getPriorTerm()
public double getProbFor(Sequence sequence,
int startpos,
int endpos)
throws NotTrainedException,
Exception
ModelModel.getProbFor(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.
length and the alphabets define the type of
data that can be modeled and therefore both has to be checked.
sequence - the given sequencestartpos - the start position within the given sequenceendpos - the last position to be taken into account
NotTrainedException - if the model is not trained yet
Exception - if the sequence could not be handled (e.g.
startpos > endpos, endpos
> sequence.length, ...) by the model
public double getLogProbFor(Sequence sequence,
int startpos,
int endpos)
throws NotTrainedException,
Exception
ModelModel.getProbFor(Sequence, int, int)
getLogProbFor in interface ModelgetLogProbFor in class AbstractModelsequence - the given sequencestartpos - the start position within the given sequenceendpos - the last position to be taken into account
NotTrainedException - if the model is not trained yet
Exception - if the sequence could not be handled (e.g.
startpos > , endpos
> sequence.length, ...) by the modelModel.getProbFor(Sequence, int, int)public boolean isTrained()
Modeltrue if the model has been trained successfully,
false otherwise.
true if the model has been trained successfully,
false otherwise
public void fromXML(StringBuffer representation)
throws NonParsableException
AbstractModelStringBuffer. It is the counter part of Storable.toXML().
fromXML in class AbstractModelrepresentation - the XML representation of the model
NonParsableException - if the StringBuffer is not parsable or the
representation is conflictingAbstractModel.AbstractModel(StringBuffer)public StringBuffer toXML()
StorableStringBuffer of an
instance of the implementing class.
public void train(Sample data,
double[] weights)
throws Exception
ModelModel object given the data as Sample using
the specified weights. The weight at position i belongs to the element at
position i. So the array weight should have the number of
sequences in the sample as dimension. (Optionally it is possible to use
weight == null if all weights have the value one.)train(data1); train(data2)
should be a fully trained model over data2 and not over
data1+data2. All parameters of the model were given by the
call of the constructor.
data - the given sequences as Sampleweights - the weights of the elements, each weight should be
non-negative
Exception - if the training did not succeed (e.g. the dimension of
weights and the number of sequences in the
sample do not match)Sample.getElementAt(int),
Sample.ElementEnumeratorpublic String toString()
ModelString
.
toString in interface ModeltoString in class ObjectStringprotected void set(AlphabetContainer abc)
AbstractModelAbstractModel.setNewAlphabetContainerInstance(AlphabetContainer) and not be
made public.
AbstractModel.setNewAlphabetContainerInstance(AlphabetContainer), e.g. setting
a new AlphabetContainer instance for subcomponents.
set in class AbstractModelabc - the new instance
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||