org.biojava.bio.dist
Class GapDistribution

java.lang.Object
  extended byorg.biojava.utils.Unchangeable
      extended byorg.biojava.bio.dist.GapDistribution
All Implemented Interfaces:
Changeable, Distribution, java.io.Serializable

public class GapDistribution
extends Unchangeable
implements Distribution, java.io.Serializable

This distribution emits gap symbols.

It is a useful thing to have around for pair-wise alignment, as you can build a PairDistribution that emits gaps in one sequence and Symbols in the other. The GapDistriution will always emit with a probability of 1, as every symbol has a matches alphabet that contains the empty set. Or is this so?

Author:
Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.biojava.bio.dist.Distribution
Distribution.NullModelForwarder
 
Field Summary
 
Fields inherited from interface org.biojava.bio.dist.Distribution
NULL_MODEL, WEIGHTS
 
Constructor Summary
GapDistribution(Alphabet alpha)
           
 
Method Summary
 Alphabet getAlphabet()
          The alphabet from which this spectrum emits symbols.
 Distribution getNullModel()
          Retrieve the null model Distribution that this Distribution recognizes.
 double getWeight(Symbol sym)
           Return the probability that Symbol s is emited by this spectrum.
 void registerWithTrainer(DistributionTrainerContext dtc)
           Register this distribution with a training context.
 Symbol sampleSymbol()
          Sample a symbol from this state's probability distribution.
 void setNullModel(Distribution nullModel)
          Set the null model Distribution that this Distribution recognizes.
 void setWeight(Symbol s, double w)
          Set the probability or odds that Symbol s is emited by this state.
 
Methods inherited from class org.biojava.utils.Unchangeable
addChangeListener, addChangeListener, addForwarder, getForwarders, getListeners, isUnchanging, removeChangeListener, removeChangeListener, removeForwarder
 
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 Detail

GapDistribution

public GapDistribution(Alphabet alpha)
Method Detail

getWeight

public double getWeight(Symbol sym)
                 throws IllegalSymbolException
Description copied from interface: Distribution

Return the probability that Symbol s is emited 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 interface Distribution
Parameters:
sym - the Symbol emitted
Returns:
the probability of emitting that symbol
Throws:
IllegalSymbolException - if s is not from this state's alphabet

setWeight

public void setWeight(Symbol s,
                      double w)
               throws IllegalSymbolException,
                      java.lang.UnsupportedOperationException
Description copied from interface: Distribution
Set the probability or odds that Symbol s is emited by this state.

Specified by:
setWeight in interface Distribution
Parameters:
s - the Symbol emitted
w - the probability of emitting that symbol
Throws:
IllegalSymbolException - if s is not from this state's alphabet, or if it is an ambiguity symbol and the implementation can't handle this case
java.lang.UnsupportedOperationException

getAlphabet

public Alphabet getAlphabet()
Description copied from interface: Distribution
The alphabet from which this spectrum emits symbols.

Specified by:
getAlphabet in interface Distribution
Returns:
the Alphabet associated with this spectrum

sampleSymbol

public Symbol sampleSymbol()
Description copied from interface: Distribution
Sample a symbol from this state's probability distribution.

Specified by:
sampleSymbol in interface Distribution
Returns:
the symbol sampled

getNullModel

public Distribution getNullModel()
Description copied from interface: Distribution
Retrieve the null model Distribution that this Distribution recognizes.

Specified by:
getNullModel in interface Distribution
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 interface Distribution
Parameters:
nullModel - the new null model Distribution
Throws:
IllegalAlphabetException - if the null model has the wrong alphabet
ChangeVetoException - if this Distirbution doesn't support setting the null model, or if one of its listeners objects

registerWithTrainer

public void registerWithTrainer(DistributionTrainerContext dtc)
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 interface Distribution
Parameters:
dtc - the DistributionTrainerContext with witch to register a trainer