## Package org.biojava.bio.alignment

Classes to generate and describe sequence alignments.

See:
Description

Interface Summary
AlignmentElement: AlignmentElement is a class which represents a SymbolList and its location within an Alignment This is for use in UnequalLengthAlignments and ARAlignments.
ARAlignment: ARAlignment is an interface that defines methods for adding and removing seqeunces from an Alignment.
EditableAlignment: EditableAlignment is an interface that defines methods for shifting bases within an Alignment.
QualitativeAlignment
UnequalLengthAlignment: UnequalLengthAlignment has the following behavior.

Class Summary
AbstractULAlignment
FlexibleAlignment: FlexibleAlignment is a class which implements UnequalLengthAlignment, ARAlignment and EditableAlignment It places no restriction on where any sequence can be in the alignment so there could be gaps in the alignment.
NeedlemanWunsch: Needleman and Wunsch defined the problem of global sequence alignments, from the first till the last symbol of a sequence.
SequenceAlignment: This Interface provides methods for the alignment of bio-sequences.
SimpleAlignmentElement: SimpleSimpleAlignment is a simple implementation of AlignmentElement.
SmithWaterman: Smith and Waterman developed an efficient dynamic programming algorithm to perform local sequence alignments, which returns the most conserved region of two sequences (longest common substring with modifications).
SubstitutionMatrix: This object is able to read a substitution matrix file and constructs a short matrix in memory.

Exception Summary
IllegalAlignmentEditException: The usual reason for throwing an IllegalAlignmentEditException is that you are trying to shift a group of bases in such a way that it would require deleting bases.

## Package org.biojava.bio.alignment Description

Classes to generate and describe sequence alignments.

Classes can represent alignments of one or more sequences. Gaps and unequal alignments can be represented. Quality can be represented using `QualitativeAlignment`. Additionally implementations of the Needleman- Wunsch and Smith-Waterman algorithms are provided.