Package org.biojava.bio.symbol
Class SimpleManyToOneTranslationTable
- java.lang.Object
-
- org.biojava.bio.symbol.AbstractManyToOneTranslationTable
-
- org.biojava.bio.symbol.SimpleManyToOneTranslationTable
-
- All Implemented Interfaces:
Serializable
,ManyToOneTranslationTable
,TranslationTable
- Direct Known Subclasses:
SimpleGeneticCodeTable
public class SimpleManyToOneTranslationTable extends AbstractManyToOneTranslationTable implements Serializable
A no-frills implementation of a translation table that maps between two alphabets. The mapping can be either one-to-one or many-to-one.- Author:
- David Huen
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.biojava.bio.symbol.TranslationTable
ALT_YEAST_NUC, ASCID_MITO, BACTERIAL, BLEPH_MNUC, CHLORO_MITO, CILIATE_NUC, ECHIN_MITO, EUPL_NUC, FWORM_MITO, INVERT_MITO, MOLD_MITO, SCENE_MITO, TREMA_MITO, UNIVERSAL, VERT_MITO, YEAST_MITO
-
-
Constructor Summary
Constructors Constructor Description SimpleManyToOneTranslationTable(FiniteAlphabet source, FiniteAlphabet target)
Construct a new translation table.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Symbol
doTranslate(Symbol sym)
this method is expected to translate any symbol in the source alphabet.protected Set
doUntranslate(Symbol sym)
this method is expected to reverse-translate any symbol in the source alphabet.Alphabet
getSourceAlphabet()
The alphabet of Symbols that can be translated.Alphabet
getTargetAlphabet()
The alphabet of Symbols that will be produced.void
setTranslation(AtomicSymbol from, AtomicSymbol to)
Alter the translation mapping.Symbol
translate(Symbol sym)
Translate a single symbol from source alphabet to the target alphabet.-
Methods inherited from class org.biojava.bio.symbol.AbstractManyToOneTranslationTable
untranslate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.biojava.bio.symbol.TranslationTable
translate
-
-
-
-
Constructor Detail
-
SimpleManyToOneTranslationTable
public SimpleManyToOneTranslationTable(FiniteAlphabet source, FiniteAlphabet target)
Construct a new translation table.- Parameters:
source
- the source FiniteAlphabettarget
- the target FiniteAlphabet
-
-
Method Detail
-
getSourceAlphabet
public Alphabet getSourceAlphabet()
Description copied from interface:TranslationTable
The alphabet of Symbols that can be translated.- Specified by:
getSourceAlphabet
in interfaceTranslationTable
- Specified by:
getSourceAlphabet
in classAbstractManyToOneTranslationTable
- Returns:
- the source Alphabet
-
getTargetAlphabet
public Alphabet getTargetAlphabet()
Description copied from interface:TranslationTable
The alphabet of Symbols that will be produced.- Specified by:
getTargetAlphabet
in interfaceTranslationTable
- Specified by:
getTargetAlphabet
in classAbstractManyToOneTranslationTable
- Returns:
- the target Alphabet
-
doTranslate
protected Symbol doTranslate(Symbol sym)
this method is expected to translate any symbol in the source alphabet. Failure can be indicated by returning a null if, for example, your method only handles AtomicSymbols and you want BasisSymbols to be taken apart. If you are sure the symbol is illegal, you can throw the IllegalSymbolException immediately to bypass further processing.As an optimisation, if your method is capable of immediately translating an ambiguity Symbol, just return it and the alternate route of establishing the translation through doing an ambiguity lookup will be avoided.
-
doUntranslate
protected Set doUntranslate(Symbol sym)
Description copied from class:AbstractManyToOneTranslationTable
this method is expected to reverse-translate any symbol in the source alphabet. Failure can be indicated by returning a null if, for example, your method only handles AtomicSymbols and you want BasisSymbols to be taken apart. If you are sure the symbol is illegal, you can throw the IllegalSymbolException immediately to bypass further processing.As an optimisation, if your method is capable of immediately translating an ambiguity Symbol, just return it and the alternate route of establishing the translation through doing an ambiguity lookup will be avoided.
- Specified by:
doUntranslate
in classAbstractManyToOneTranslationTable
-
setTranslation
public void setTranslation(AtomicSymbol from, AtomicSymbol to) throws IllegalSymbolException
Alter the translation mapping.- Parameters:
from
- source AtomicSymbolto
- target AtomicSymbol to be returned by translate(from)- Throws:
IllegalSymbolException
- if either from is not in the source alphabet or to is not in the target alphabet
-
translate
public Symbol translate(Symbol sym) throws IllegalSymbolException
Description copied from interface:TranslationTable
Translate a single symbol from source alphabet to the target alphabet.- Specified by:
translate
in interfaceTranslationTable
- Parameters:
sym
- the Symbol to translate (member of source alphabet)- Returns:
- the translated version of sym (member of target alphabet)
- Throws:
IllegalSymbolException
- if sym is not a member of the source alphabet
-
-