# Class LocalAlignmentEnumerator
Enumeration of local alignments.

All Subcl's | BandedLocalAlignmentEnumerator, UnbandedLocalAlignmentEnumerator
Defined in | <seqan/align.h>
Signature | `template <typename TScore, typename TSpec> class LocalAlignmentEnumerator;`

## Template Parameters

`TScore` | The type of the Score to use for the local alignment.
`TSpec` | The tag to use for specializing the enumerator.

## Interface Function Overview

- `TScoreVal getScore(enumerator);`
  Get current alignment score.
- `bool nextLocalAlignment(align, enumerator);, bool nextLocalAlignment(gapsH, gapsV, enumerator);`
  Compute next suboptimal local alignment.

## Detailed Description

This is an abstract class that will only be instantiated through its subclasses. See the documentation of the specializations for examples.

### References

- Waterman MS, Eggert M: A new algorithm for best subsequence alignments with application to tRNA-rRNA comparisons. J Mol Biol 1987, 197(4):723-728.

## Interface Functions Detail

### `TScoreVal getScore(enumerator);`

Get current alignment score.

#### Parameters

`enumerator` | The LocalAlignmentEnumerator to query.

#### Returns

`TScoreVal` | The current alignment score (Value of `TScore`).

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `bool nextLocalAlignment(align, enumerator); bool nextLocalAlignment(gapsH, gapsV, enumerator);`

Compute next suboptimal local alignment.

#### Parameters

`align` | Align object to use for the alignment representation.
`gapsH` | Gaps object to use for the first/horizontal sequence in the alignment matrix.
`gapsV` | Gaps object to use for the second/vertical sequence in the alignment matrix.
`enumerator` | The LocalAlignmentEnumerator to advance.

#### Returns

`bool` | `true` if another suboptimal alignment above the given threshold was found and `false otherwise.`

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### Dox Sources

    /*!
     * @class LocalAlignmentEnumerator
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Enumeration of local alignments.
     *
     * @signature template <typename TScore, typename TSpec> class
     *            LocalAlignmentEnumerator;
     *
     * @tparam TScore The type of the @link Score @endlink to use for the local
     *                alignment.
     * @tparam TSpec The tag to use for specializing the enumerator.
     *
     * This is an abstract class that will only be instantiated through its
     * subclasses. See the documentation of the specializations for examples.
     *
     * @section References
     *
     * <ul> <li>Waterman MS, Eggert M: A new algorithm for best subsequence
     * alignments with application to tRNA-rRNA comparisons. J Mol Biol 1987,
     * 197(4):723-728.</li> </ul>
     *
     * @fn LocalAlignmentEnumerator#getScore
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Get current alignment score.
     *
     * @signature TScoreVal getScore(enumerator);
     *
     * @param[in] enumerator The LocalAlignmentEnumerator to query.
     *
     * @return TScoreVal The current alignment score (@link Score#Value @endlink of
     *                   <tt>TScore</tt>).
     *
     * @fn LocalAlignmentEnumerator#nextLocalAlignment
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Compute next suboptimal local alignment.
     *
     * @signature bool nextLocalAlignment(align, enumerator);
     * @signature bool nextLocalAlignment(gapsH, gapsV, enumerator);
     *
     * @param[in] align @link Align @endlink object to use for the alignment
     *                  representation.
     * @param[in] gapsH @link Gaps @endlink object to use for the first/horizontal
     *                  sequence in the alignment matrix.
     * @param[in] gapsV @link Gaps @endlink object to use for the second/vertical
     *                  sequence in the alignment matrix.
     * @param[in] enumerator The LocalAlignmentEnumerator to advance.
     *
     * @return bool <tt>true</tt> if another suboptimal alignment above the given
     *              threshold was found and <tt> false otherwise.
     */