Package org.biojava.bio.dist
Class PairDistribution
java.lang.Object
org.biojava.utils.AbstractChangeable
org.biojava.bio.dist.PairDistribution
- All Implemented Interfaces:
Serializable
,Distribution
,Changeable
Class for pairing up two independant distributions.
- Since:
- 1.1
- Author:
- Matthew Pocock, Thomas Down, Samiul Hasan
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.biojava.bio.dist.Distribution
Distribution.NullModelForwarder
-
Field Summary
Fields inherited from interface org.biojava.bio.dist.Distribution
NULL_MODEL, WEIGHTS
-
Constructor Summary
ConstructorsConstructorDescriptionPairDistribution
(Distribution first, Distribution second) Create a new PairDistribution that represents the product of two other distributions. -
Method Summary
Modifier and TypeMethodDescriptionThe alphabet from which this spectrum emits symbols.Retrieve the null model Distribution that this Distribution recognizes.protected static Distribution
getNullModel
(Distribution first, Distribution second) Get a uniform null model over a PairDistribution over [first,second].double
Return the probability that Symbol s is emitted by this spectrum.void
Register this distribution with a training context.void
registerWithTrainer
(ModelTrainer trainer) Register this paired distribution with a model trainer.Sample a symbol from this state's probability distribution.void
setNullModel
(Distribution nullModel) Set the null model Distribution that this Distribution recognizes.void
Set the probability or odds that Symbol s is emitted by this state.Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
-
Constructor Details
-
PairDistribution
Create a new PairDistribution that represents the product of two other distributions. The alphabet will be the product of the first and seccond distribution's alphabets, and the weights will be the products of the weights for the first and seccond distributions given the first and second component of the symbol respectively.- Parameters:
first
- the first distributionsecond
- the second distribution
-
-
Method Details
-
getNullModel
Get a uniform null model over a PairDistribution over [first,second].- Parameters:
first
- the first Alphabetsecond
- the second Alphabet- Returns:
- a Distribution that is a uniform distribution over the product of first and second
-
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
Description copied from interface:Distribution
Retrieve the null model Distribution that this Distribution recognizes.- Specified by:
getNullModel
in interfaceDistribution
- Returns:
- the apropriate null model
-
setNullModel
public void setNullModel(Distribution nullModel) throws IllegalAlphabetException, ChangeVetoException Description copied from interface:Distribution
Set the null model Distribution that this Distribution recognizes.- Specified by:
setNullModel
in interfaceDistribution
- Parameters:
nullModel
- the new null model Distribution- Throws:
IllegalAlphabetException
- if the null model has the wrong alphabetChangeVetoException
- if this Distirbution doesn't support setting the null model, or if one of its listeners objects
-
registerWithTrainer
Register this paired distribution with a model trainer.- Parameters:
trainer
- the trainer to register this distribution with.
-
getWeight
Description copied from interface:Distribution
Return the probability that Symbol s is emitted by this spectrum.
If the symbol is ambiguou, then it is the sum of the probability that each one of the matching symbols was emitted.
- Specified by:
getWeight
in interfaceDistribution
- Parameters:
sym
- the Symbol emitted- Returns:
- the probability of emitting that symbol
- Throws:
IllegalSymbolException
- if s is not from this state's alphabet
-
setWeight
Description copied from interface:Distribution
Set the probability or odds that Symbol s is emitted by this state.- Specified by:
setWeight
in interfaceDistribution
- Parameters:
sym
- the Symbol emittedweight
- the probability of emitting that symbol- Throws:
ChangeVetoException
- if this state does not allow weights to be tampered with, or if one of the listeners vetoed this change
-
registerWithTrainer
Description copied from interface:Distribution
Register this distribution with a training context.
This should be invoked from within dtc.addDistribution(). This method is responsible for constructing a suitable DistributionTrainer instance and registering it by calling dtc.registerDistributionTrainer(this, trainer). If the distribution is a view onto another distribution, it can force the other to be registered by calling dtc.addDistribution(other), and can then get on with registering it's own trainer.
- Specified by:
registerWithTrainer
in interfaceDistribution
- Parameters:
dtc
- the DistributionTrainerContext with witch to register a trainer
-
sampleSymbol
Description copied from interface:Distribution
Sample a symbol from this state's probability distribution.- Specified by:
sampleSymbol
in interfaceDistribution
- Returns:
- the symbol sampled
-