Classes and interfaces for defining biological sequences and informatics objects.

This package contains the core classes and interfaces for defining sequences and features, sequence database and iterators, and miscellaneous biological information. All definitions are interfaces. Where ever possible, at least one pure java implementation of the interface is supplied.

The Sequence interface inherits the SymbolList interface, making it a list of Symbol objects. It also implements Annotatable which allows annotation to be attached to the entire sequence. Lastly, it implements FeatureHolder so that it can contain features. A Sequence instance represents a concrete piece of biological data, rather than a comp-sci abstraction.

Features are regions of a sequence which have location-specific annotation or meaning. The location of a feature is a Location object. Features can contain sub-features, as they are FeatureHolder implementors. They are also annotatable. Lastly, they contain a couple of fields aimed at enhancing GFF interoperability.

Also within this package are the classes that implement these interfaces. They are usually preceeded with 'Simple' to indicate that they are vanilla, pure-java implementations. You should be able to use these objects out-of-the-box.

The DNATools and ProteinTools classes provide a central point-of-access to the DNA and Protein alphabets and add on many operators specific to these domains. For example, DNATools has a method 'complement' that will complement a DNA SymbolList.