# Class AlignConfig
Indication of whether begin/end gaps are free for DP alignment algorithms.

Defined in | <seqan/align.h>
Signature | `template <bool TOP, bool LEFT, bool RIGHT, bool BOTTOM, typename TSpec> struct AlignConfig;`

## Template Parameters

`TOP` | Whether or not the begin gaps in the vertical sequence are free.
`LEFT` | Whether or not the begin gaps in the horizontal sequence are free.
`RIGHT` | Whether or not the end gaps in the horizontal sequence are free.
`BOTTOM` | Whether or not the end gap sin the vertical sequence are free.
`TSpec` | Tag for specializing the AlignConfig object (default: `Default`).

## Detailed Description

Used in the DP alignment algorithms to configure the begin/end gap free-nes.

### Specialization List

The following gives an (incomplete) list of useful AlignConfig specializations.

`AlignConfig<false, false, false, false>`
  ordinary global alignment
`AlignConfig<true, false, false, true>`
  semiglobal alignment, free begin and end gaps in second/vertical sequence
`AlignConfig<false, true, true, false>`
  semiglobal alignment, free begin and end gaps in first/horizontal sequence
`AlignConfig<false, true, false, true>`
  overlap alignment with second/vertical sequence overhanging to the left of first/horizontal
`AlignConfig<true, false, true, false>`
  overlap alignment with first/horizontal sequence overhanging to the left of second/vertical
`AlignConfig<false, true, false, false>`
  free begin gaps in second/vertical sequence only
`AlignConfig<false, false, true, false>`
  free end gaps in second/vertical sequence only

## See Also

- globalAlignment

#### Dox Sources

    /*!
     * @class AlignConfig
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Indication of whether begin/end gaps are free for DP alignment
     *        algorithms.
     *
     * @signature template <bool TOP, bool LEFT, bool RIGHT, bool BOTTOM, typename
     *            TSpec> struct AlignConfig;
     *
     * @tparam TOP Whether or not the begin gaps in the vertical sequence are free.
     * @tparam LEFT Whether or not the begin gaps in the horizontal sequence are
     *              free.
     * @tparam RIGHT Whether or not the end gaps in the horizontal sequence are
     *               free.
     * @tparam BOTTOM Whether or not the end gap sin the vertical sequence are free.
     * @tparam TSpec Tag for specializing the AlignConfig object (default:
     *               <tt>Default</tt>).
     *
     * Used in the DP alignment algorithms to configure the begin/end gap free-nes.
     *
     * @section Specialization List
     *
     * The following gives an (incomplete) list of useful AlignConfig
     * specializations.
     *
     * <dl> <dt><tt>AlignConfig&lt;false, false, false, false&gt;</tt></dt>
     * <dd>ordinary global alignment</dd> <dt><tt>AlignConfig&lt;true, false, false,
     * true&gt;</tt></dt> <dd>semiglobal alignment, free begin and end gaps in
     * second/vertical sequence</dd> <dt><tt>AlignConfig&lt;false, true, true,
     * false&gt;</tt></dt> <dd>semiglobal alignment, free begin and end gaps in
     * first/horizontal sequence</dd> <dt><tt>AlignConfig&lt;false, true, false,
     * true&gt;</tt></dt> <dd>overlap alignment with second/vertical sequence
     * overhanging to the left of first/horizontal</dd> <dt><tt>AlignConfig&lt;true,
     * false, true, false&gt;</tt></dt> <dd>overlap alignment with first/horizontal
     * sequence overhanging to the left of second/vertical</dd>
     * <dt><tt>AlignConfig&lt;false, true, false, false&gt;</tt></dt> <dd>free begin
     * gaps in second/vertical sequence only</dd> <dt><tt>AlignConfig&lt;false,
     * false, true, false&gt;</tt></dt> <dd>free end gaps in second/vertical
     * sequence only</dd> </dl>
     *
     * @see globalAlignment
     */