Package org.biojava.bio.symbol
This package is not intended to have strong biological ties. It is here to make programming things like dynamicprogramming much easier. It also handles serialization of wellknown alphabets so that applicable singleton properties of alphabets and Symbols are maintained.
All coordinates are in 'biocoordinates'  that is  legal indexes start from 1 and a range is inclusive (4 to 7 includes 4, 5, 6 and 7).
A Symbol is a single token. The Symbol maintains a name, a token (char), and an Annotation bundle. A set of Symbols is represented by an Alphabet instance. If the Alphabet can guarantee that there are only ever a finite number of Symbols contained with in it, then it must implement FiniteAlphabet. The Symbol objects within a FiniteAlphabet can be tested for equality by comparing their references directly. A SymbolList is a string over the Symbols from a single Alphabet instance. This allows you to represent a sequence of tokens, such as DNA nucleotides, or stockmarket prices.
CrossProductAlphabet and CrossProductSymbol allow alphabets and symbols to be represented that are the combination of two or more alphabets and symbols under crossproduct. For example, the CrossProduct alphabet DNA x DNA would contain all dinucleotides. DNA x DNA x DNA x Protein would contain all combinations of three nucleotides and a single aminoacid. Dice x Coin would contain every possible combination of dice roles (1..6) and of coin flips (Heads, Tails) as the Symbol objects (1, Heads), (1, Tails), (2, Heads) ... (6, Tails). If any one of the Alphabets that make up the source of a CrossProductAlphabet is not finite, then the resulting CrossProductAlphabet will not be finite either.
Locations within a SymbolList can be represented by a Location object. This interface defines a subset of points that are within the Location. This uses biocoordinates, and defines all the operations that you are likely to need to build your own Locations (union, intersection and the like).

Interface Summary Interface Description Alphabet The set of AtomicSymbols which can be concatenated together to make a SymbolList.AlphabetIndex Map between Symbols and index numbers.AtomicSymbol A symbol that is not ambiguous.BasisSymbol A symbol that can be represented as a string of Symbols.CodonPref CodonPrefFilter FiniteAlphabet An alphabet over a finite set of Symbols.FuzzyLocation.RangeResolver Determines how aFuzzyLocation
should be treated when used as a normalLocation
.FuzzyPointLocation.PointResolver Determines how aFuzzyPointLocation
should be treated when used as a normalLocation
.GappedSymbolList This extends SymbolList with API for manipulating, inserting and deleting gaps.Location A set of integers, often used to represent positions on biological sequences.ManyToOneTranslationTable A translation table that will handle the manytoone mappings that you see, for example, with genetic codes.Packing An encapsulation of the way symbols map to bitpatterns.ReversibleTranslationTable A translation table that can also translate from the target to source alphabet.SoftMaskedAlphabet.MaskingDetector Implementations will define how soft masking looks.Symbol A single symbol.SymbolList A sequence of symbols that belong to an alphabet.SymbolListFactory This interface exists to hide implementational details of SymbolLists when making chunked symbol lists.SymbolPropertyTable class for maintaining properties associated with a symbolTranslationTable Encapsulates the mapping from a source to a destination alphabet.WobbleDistribution an object to return statistics about the frequency of the wobble base in a set of synonymous codons. 
Class Summary Class Description AbstractAlphabet An abstract implementation ofAlphabet
.AbstractLocation An abstract implementation ofLocation
.AbstractLocationDecorator AbstractLocation
decorator (wrapper).AbstractManyToOneTranslationTable an abstract class implementing basic functionality of a translation table that translates Symbols from one Alphabet to another.AbstractRangeLocation Base class for simple contiguous Location implementations.AbstractReversibleTranslationTable an abstract class implementing basic functionality of a translation table that translates Symbols from one Alphabet to another.AbstractSymbol The baseclass for Symbol implementations.AbstractSymbolList Abstract helper implementation of the SymbolList core interface.AlphabetManager Utility methods for working with Alphabets.BetweenLocation Between view onto an underlying Location instance.ChunkedSymbolList SymbolList implementation using constantsize chunks.CircularLocation Circular view onto an underlying Location instance.CodonPrefFilter.AcceptAll CodonPrefFilter.ByName CodonPrefFilter.EverythingToXML CodonPrefTools An utility class for codon preferencesDNAAmbPack Packing utility class for DNA.DNANoAmbPack APacking
implementation which handles the DNA alphabet, without any support for ambiguity symbols.DoubleAlphabet An efficient implementation of an Alphabet over the infinite set of double values.DoubleAlphabet.DoubleRange A range of double values.DoubleAlphabet.DoubleSymbol A single double value.DoubleAlphabet.SubDoubleAlphabet A class to represent a contiguous range of double symbols.DummySymbolList Symbol list which just consists of noninformative symbols.Edit Encapsulates an edit operation on a SymbolList.FundamentalAtomicSymbol An atomic symbol consisting only of itself.FuzzyLocation A 'fuzzy' location ala Embl fuzzy locations.FuzzyPointLocation FuzzyPointLocation
represents two types of EMBLstyle partiallydefined locations.IntegerAlphabet An efficient implementation of an Alphabet over the infinite set of integer values.IntegerAlphabet.IntegerSymbol A single int value.IntegerAlphabet.SubIntegerAlphabet A class to represent a finite contiguous subset of the infinite IntegerAlphabetLocationTools Tools class containing a number of operators for working withLocation
objects.MergeLocation Produced by LocationTools as a result of union operations.MotifTools MotifTools
contains utility methods for sequence motifs.PackedSymbolList A SymbolList that stores symbols as bitpatterns in an array of longs.PackedSymbolListFactory This class makes PackedSymbolLists.PackingFactory A factory that is used to maintain associations between alphabets and preferred bitpackings for them.PointLocation A location representing a single point.RangeLocation A simple implementation of Location that contains all points between getMin and getMax inclusive.RelabeledAlignment An alignment that relabels another alignment.SimpleAlphabet A simple nofrills implementation of the FiniteAlphabet interface.SimpleAtomicSymbol A basic implementation of AtomicSymbol.SimpleCodonPref a simple nofrills implementation of the CodonPref object that encapsulates codon preference data.SimpleGappedSymbolList This implementation of GappedSymbolList wraps a SymbolList, allowing you to insert gaps.SimpleGappedSymbolList.Block An aligned block.SimpleGeneticCodeTable A genetic code translation table representing a translation table in the DDBJ/EMBL/GenBank Feature Table (appendix V).SimpleManyToOneTranslationTable A nofrills implementation of a translation table that maps between two alphabets.SimpleReversibleTranslationTable A nofrills implementation of TranslationTable that uses a Map to map from symbols in a finite source alphabet into a target alphabet.SimpleSymbolList Basic implementation of SymbolList.SimpleSymbolListFactory This class makes SimpleSymbolLists.SimpleSymbolPropertyTable Class that implements the SymbolPropertyTable interfaceSimpleTranslationTable A nofrills implementation of TranslationTable that uses a Map to map from symbols in a finite source alphabet into a target alphabet.SingletonAlphabet An alphabet that contains a single atomic symbol.SoftMaskedAlphabet Soft masking is usually displayed by making the masked regions somehow different from the non masked regions.SoftMaskedAlphabet.MaskingDetector.DefaultMaskingDetector SuffixTree Suffix tree implementation.SuffixTree.SuffixNode A node in the suffix tree.SymbolListViews Tools class for constructing views ofSymbolList
objects.UkkonenSuffixTree A suffix tree is an efficient method for encoding the frequencies of motifs in a sequence.UkkonenSuffixTree.SuffixNode end Tree modification methods 
Exception Summary Exception Description IllegalAlphabetException The exception to indicate that an invalid alphabet has been used.IllegalSymbolException The exception to indicate that a symbol is not valid within a context.