## org.biojava.bio.dp
Interface EmissionState

All Known Implementing Classes:
  SimpleEmissionState

public interface EmissionState
extends State, Trainable

A state in a markov process that has an emission spectrum.

These states have an associated Distribution. Within an HMM, these are the states that actualy make your observed sequence. They also must supply training behaviour to set the emission spectrum up.

Author:
  Matthew Pocock

Method Summary
`int[]` `getAdvance()` Determine the number of symbols this state advances along one or more symbol lists.
`Distribution` `getDistribution()` Get the Distribution associated with this state.
`void` `setDistribution(Distribution dis)` Set the Distribution associated with this state.

Methods inherited from interface org.biojava.bio.dp.Trainable
`registerWithTrainer`

Methods inherited from interface org.biojava.bio.symbol.AtomicSymbol
`getMatches`

Methods inherited from interface org.biojava.bio.symbol.Symbol
`getName, getToken`

Methods inherited from interface org.biojava.bio.Annotatable
`getAnnotation`

Method Detail

### getAdvance

    public int[] getAdvance()

  Determine the number of symbols this state advances along one or more symbol lists. In the simple case, this method should almost always return {1} if it is a true `emmision' state, or {0} if it is a dot state which only emits a gap character. For pairwise HMMs, it will normally return {1, 1} for match state, and {0, 1} or {1, 0} for a gap state. Under some circumstances it may be valid to return values other than 1 or 0, but you should consider the consequences for HMM architecture very carefully.

  Note that the int array returned by this method should never be modified.

### getDistribution

    public Distribution getDistribution()

  Get the Distribution associated with this state.

  If the state is to be added to an HMM, then the state's emission spectrum must be compatible with the HMM - that is, their emission alphabets must match.

  Returns:
    the current Distribution object used by this state

### setDistribution

    public void setDistribution(Distribution dis)
                         throws java.lang.UnsupportedOperationException

  Set the Distribution associated with this state.
  Parameters:
    `dis` - the new Distribution to use