## org.biojava.bio.symbol
Interface Alignment

All Known Subinterfaces:
  StatePath

All Known Implementing Classes:
  SimpleAlignment

public interface Alignment
extends SymbolList

An alignment containing multiple SymbolLists.

The alignment can be thought of as a rectangular array of Symbols. Each row is indexed by a label and each column is indexed by offset (counting from 0).

Alternatively, it can be thought of as a SymbolList where each Symbol is a list of Symbols in that column.

To create gapped alignments, use SymbolLists with gaps. The most flexible way to do this will be to leverage GappedSymbolList objects.

Inner classes inherited from class org.biojava.bio.symbol.SymbolList
`SymbolList.EmptySymbolList`

Fields inherited from interface org.biojava.bio.symbol.SymbolList
`EMPTY_LIST`

Method Summary
`java.util.List` `getLabels()` The list of SymbolLists in the alignment.
`Alignment` `subAlignment(java.util.Set labels, Location loc)` Make a view onto this alignment.
`Symbol` `symbolAt(java.lang.Object label, int column)` Retrieve a symbol by label and column.
`SymbolList` `symbolListForLabel(java.lang.Object label)` Retrieve a single row of the alignment by label.

Methods inherited from interface org.biojava.bio.symbol.SymbolList
`getAlphabet, iterator, length, seqString, subList, subStr, symbolAt, toList`

Method Detail

### getLabels

    public java.util.List getLabels()

  The list of SymbolLists in the alignment.

  The index in the list is the same as the index in the alignment. Each SymbolList object will only be in the alignment once. However, a single underlying SymbolList may have more than one view within an alignment, each represented by a different GappedSymbolList.

  Returns:
    the List of all SymbolLists in the alignment

### symbolAt

    public Symbol symbolAt(java.lang.Object label,
                           int column)
                    throws java.util.NoSuchElementException

  Retrieve a symbol by label and column.
  Parameters:
    `label` - the SymbolList to retrieve from
    `column` - the index of the column to retrieve
  Returns:
    the symbol in the symbol list associated with the label at the given column
  Throws:
    java.util.NoSuchElementException - if there is no row for 'label'

### symbolListForLabel

    public SymbolList symbolListForLabel(java.lang.Object label)
                                  throws java.util.NoSuchElementException

  Retrieve a single row of the alignment by label.
  Parameters:
    `label` - the object from which to retrieve the symbol list
  Returns:
    a SymbolList that contains each token in a row of the alignment
  Throws:
    java.util.NoSuchElementException - if there is no row for 'label'

### subAlignment

    public Alignment subAlignment(java.util.Set labels,
                                  Location loc)
                           throws java.util.NoSuchElementException

  Make a view onto this alignment.

  If labels is null, then each label will be kept. Otherwise, only those in labels will be kept. If loc is null, then the entire length of the alignment will be kept. If loc is not null, then only the columns within the location will be kept.

  Parameters:
    `labels` - the Set of sequences to include by label
    `loc` - the Location to include
  Returns:
    a sub Alignment
  Throws:
    java.util.NoSuchElementException - if labels contains any item that is not a label