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

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:
  • Constructor Details

  • Method Details

    • getSourceAlphabet

      Description copied from interface: TranslationTable
      The alphabet of Symbols that can be translated.
      Specified by:
      getSourceAlphabet in interface TranslationTable
      Specified by:
      getSourceAlphabet in class AbstractManyToOneTranslationTable
      Returns:
      the source Alphabet
    • getTargetAlphabet

      Description copied from interface: TranslationTable
      The alphabet of Symbols that will be produced.
      Specified by:
      getTargetAlphabet in interface TranslationTable
      Specified by:
      getTargetAlphabet in class AbstractManyToOneTranslationTable
      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 class AbstractManyToOneTranslationTable
    • setTranslation

      Alter the translation mapping.
      Parameters:
      from - source AtomicSymbol
      to - 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 interface TranslationTable
      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