## org.biojava.bio.dist
Class GapDistribution

    java.lang.Object
      org.biojava.utils.Unchangeable
          org.biojava.bio.dist.GapDistribution

All Implemented Interfaces:
  Serializable, Distribution, Changeable

    public class GapDistribution

extends Unchangeable
implements Distribution, 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?

Since:
  1.0
Author:
  Matthew Pocock
See Also:
  Serialized Form

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
`GapDistribution(Alphabet alpha)` Get a GapDistribution for an alphabet.

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 emitted 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 emitted 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)

  Get a GapDistribution for an alphabet.

  Parameters:
    `alpha` - the Alphabet that this distribution is over

Method Detail

### getWeight

    public double getWeight(Symbol sym)
                     throws IllegalSymbolException

  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 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,
                          UnsupportedOperationException

  Description copied from interface: `Distribution`
  Set the probability or odds that Symbol s is emitted 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
    `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