org.biojava.bio.symbol
Interface CrossProductAlphabet


public interface CrossProductAlphabet
extends Alphabet

Cross product of a list of alphabets. This is provided primarily to assist in the implemention of a `multi-headed' hidden markov model. For instance, in a pair HMM intended for aligning DNA sequence, the emmision alphabet will be (DNA, gap) x (DNA, gap). To actualy make a CrossProductAlphabet, either roll your own, or use the CrossProductAlphabetFactory object.

Author:
Thomas Down

Inner classes inherited from class org.biojava.bio.symbol.Alphabet
Alphabet.EmptyAlphabet
 
Fields inherited from interface org.biojava.bio.symbol.Alphabet
EMPTY_ALPHABET
 
Method Summary
 java.util.List getAlphabets()
          Return an ordered List of the alphabets which make up this compound alphabet.
 CrossProductSymbol getSymbol(java.util.List rl)
          Get a symbol from the CrossProductAlphabet which corresponds to the specified ordered list of symbols.
 
Methods inherited from interface org.biojava.bio.symbol.Alphabet
contains, getName, getParser, validate
 
Methods inherited from interface org.biojava.bio.Annotatable
getAnnotation
 

Method Detail

getAlphabets

public java.util.List getAlphabets()
Return an ordered List of the alphabets which make up this compound alphabet. The returned list should be immutable.

getSymbol

public CrossProductSymbol getSymbol(java.util.List rl)
                             throws IllegalSymbolException
Get a symbol from the CrossProductAlphabet which corresponds to the specified ordered list of symbols.
Parameters:
rl - A list of symbols.
Throws:
IllegalSymbolException - if the members of rl are not Symbols over the alphabets returned from getAlphabets