Package org.biojava.bio.dist
Class SimpleDistribution
- java.lang.Object
-
- org.biojava.utils.AbstractChangeable
-
- org.biojava.bio.dist.AbstractDistribution
-
- org.biojava.bio.dist.SimpleDistribution
-
- All Implemented Interfaces:
Serializable
,Distribution
,Changeable
- Direct Known Subclasses:
UntrainableDistribution
public class SimpleDistribution extends AbstractDistribution implements Serializable
A simple implementation of a distribution, which works with any finite alphabet.- Since:
- 1.0
- Author:
- Matthew Pocock, Thomas Down, Mark Schreiber
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
SimpleDistribution.Trainer
A simple implementation of a trainer for this class.-
Nested classes/interfaces inherited from interface org.biojava.bio.dist.Distribution
Distribution.NullModelForwarder
-
-
Field Summary
-
Fields inherited from class org.biojava.bio.dist.AbstractDistribution
nullModelForwarder
-
Fields inherited from interface org.biojava.bio.dist.Distribution
NULL_MODEL, WEIGHTS
-
-
Constructor Summary
Constructors Constructor Description SimpleDistribution(Distribution dist)
make an instance of SimpleDistribution with weights identical to the specified Distribution.SimpleDistribution(FiniteAlphabet alphabet)
make an instance of SimpleDistribution for the specified Alphabet.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Alphabet
getAlphabet()
The alphabet from which this spectrum emits symbols.Distribution
getNullModel()
Retrieve the null model Distribution that this Distribution recognizes.double
getWeightImpl(AtomicSymbol s)
Override this method to implement getting the weight for an atomic symbol.protected double[]
getWeights()
Get the underlying array that stores the weights.protected boolean
hasWeights()
Indicate whether the weights array has been allocated yet.void
registerWithTrainer(DistributionTrainerContext dtc)
Register an SimpleDistribution.Trainer instance as the trainer for this distribution.protected void
setNullModelImpl(Distribution nullModel)
Implement this to set the null model.protected void
setWeightImpl(AtomicSymbol s, double w)
Implement this to actually set the weight.-
Methods inherited from class org.biojava.bio.dist.AbstractDistribution
equals, getChangeSupport, getWeight, hashCode, sampleSymbol, setNullModel, setWeight
-
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
-
-
-
-
Constructor Detail
-
SimpleDistribution
public SimpleDistribution(FiniteAlphabet alphabet)
make an instance of SimpleDistribution for the specified Alphabet.
-
SimpleDistribution
public SimpleDistribution(Distribution dist)
make an instance of SimpleDistribution with weights identical to the specified Distribution.- Parameters:
dist
- Distribution to copy the weights from.
-
-
Method Detail
-
getAlphabet
public Alphabet getAlphabet()
Description copied from interface:Distribution
The alphabet from which this spectrum emits symbols.- Specified by:
getAlphabet
in interfaceDistribution
- Returns:
- the Alphabet associated with this spectrum
-
getNullModel
public Distribution getNullModel()
Description copied from interface:Distribution
Retrieve the null model Distribution that this Distribution recognizes.- Specified by:
getNullModel
in interfaceDistribution
- Returns:
- the apropriate null model
-
setNullModelImpl
protected void setNullModelImpl(Distribution nullModel) throws IllegalAlphabetException, ChangeVetoException
Description copied from class:AbstractDistribution
Implement this to set the null model.You should not inform any change listeners in this method. All of that work has been done for you.
- Specified by:
setNullModelImpl
in classAbstractDistribution
- Parameters:
nullModel
- the new null model Distribution- Throws:
IllegalAlphabetException
- if the null model is for the wrong alphabetChangeVetoException
- if your implementation wishes to block this opperation
-
hasWeights
protected boolean hasWeights()
Indicate whether the weights array has been allocated yet.- Returns:
- true if the weights are allocated
-
getWeights
protected double[] getWeights()
Get the underlying array that stores the weights.Modifying this will modify the state of the distribution.
- Returns:
- the weights array
-
getWeightImpl
public double getWeightImpl(AtomicSymbol s) throws IllegalSymbolException
Description copied from class:AbstractDistribution
Override this method to implement getting the weight for an atomic symbol. You should just do what is necessary to fetch state. All the work with exceptions and listeners will have been handled for you.- Specified by:
getWeightImpl
in classAbstractDistribution
- Parameters:
s
- the AtomicSymbol to get the weight for- Returns:
- the weight
- Throws:
IllegalSymbolException
- if sym is not known
-
setWeightImpl
protected void setWeightImpl(AtomicSymbol s, double w) throws IllegalSymbolException, ChangeVetoException
Description copied from class:AbstractDistribution
Implement this to actually set the weight.Do not inform any listeners. This has already been done for you. Just update state.
- Specified by:
setWeightImpl
in classAbstractDistribution
- Parameters:
s
- the AtomicSymbol to update forw
- the new weight for that symbol- Throws:
IllegalSymbolException
- if the symbol is not knownChangeVetoException
- if the change is to be prevented
-
registerWithTrainer
public void registerWithTrainer(DistributionTrainerContext dtc)
Register an SimpleDistribution.Trainer instance as the trainer for this distribution.- Specified by:
registerWithTrainer
in interfaceDistribution
- Overrides:
registerWithTrainer
in classAbstractDistribution
- Parameters:
dtc
- the context to register with
-
-