org.biojava.bio.dist
Class GapDistribution

java.lang.Object
  |
  +--org.biojava.bio.dist.GapDistribution

public class GapDistribution
extends java.lang.Object
implements Distribution

This distribution emits only the gap symbol.

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.

Author:
Matthew Pocock

Constructor Summary
GapDistribution(Alphabet alpha)
           
 
Method Summary
 Alphabet getAlphabet()
          The alphabet from which this spectrum emits symbols.
 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 setWeight(Symbol s, double w)
          Set the probability or odds that Symbol s is emited by this state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 an AmbiguitySymbol, then it is the probability that exactly one of the symbols matching it was emitted.

Specified by:
getWeight in interface Distribution
Tags copied from interface: Distribution
Parameters:
s - the Symbol emitted
Returns:
the log 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
Tags copied from 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 - if this state does not allow weights to be tampered with

getAlphabet

public Alphabet getAlphabet()
Description copied from interface: Distribution
The alphabet from which this spectrum emits symbols.
Specified by:
getAlphabet in interface Distribution
Tags copied from 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
Tags copied from interface: Distribution
Returns:
the symbol sampled

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
Tags copied from interface: Distribution
Parameters:
dtc - the DistributionTrainerContext with witch to register a trainer