# Spec Dna
Alphabet for DNA.

Extends | SimpleType
All Extended | SimpleType
All Impl'd | AlphabetConcept, AssignableConcept, ComparableConcept, CopyConstructibleConcept, DefaultConstructibleConcept, EqualityComparableConcept, FiniteOrderedAlphabetConcept, LessThanComparableConcept, OrderedAlphabetConcept
Defined in | <seqan/basic.h>
Signature | `typedef SimpleType<unsigned char, Dna_> Dna;`

## Member Function Overview

### Member Functions Inherited From SimpleType

- `SimpleType`

### Member Functions Inherited From AssignableConcept

- `operator=`

### Member Functions Inherited From ComparableConcept

- `operator>`

### Member Functions Inherited From EqualityComparableConcept

- `operator!=`
- `operator==`

### Member Functions Inherited From LessThanComparableConcept

- `operator<`

### Member Functions Inherited From OrderedAlphabetConcept

- `operator<`

## Interface Function Overview

### Interface Functions Inherited From AssignableConcept

- `assign`
- `set`
- `move`

### Interface Functions Inherited From ComparableConcept

- `operator<=`
- `operator>=`

### Interface Functions Inherited From FiniteOrderedAlphabetConcept

- `ordValue`
- `valueSize`

### Interface Functions Inherited From OrderedAlphabetConcept

- `supremumValueImpl`
- `maxValue`
- `infimumValueImpl`
- `minValue`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From AlphabetConcept

- `BitsPerValue`

### Interface Metafunctions Inherited From FiniteOrderedAlphabetConcept

- `ValueSize`

### Interface Metafunctions Inherited From OrderedAlphabetConcept

- `MaxValue`
- `MinValue`

## Member Variable Overview

### Member Variables Inherited From SimpleType

- `value`

## Detailed Description

The ValueSize of `Dna` is 4. The nucleotides are enumerated this way: `'A' = 0, 'C' = 1, 'G' = 2, 'T' = 3`.

Objects of type `Dna` can be converted to various other types and vice versa. An object that has a value not in `{'A', 'C', 'G', 'T'}` is converted to `'A'`.

## See Also

- Dna5
- DnaIterator
- DnaString

#### Dox Sources

    /*!
     * @class Dna
     *
     * @extends SimpleType
     *
     * @headerfile <seqan/basic.h>
     *
     * @brief Alphabet for DNA.
     *
     * @signature typedef SimpleType<unsigned char, Dna_> Dna;
     *
     * The ValueSize of <tt>Dna</tt> is 4. The nucleotides are enumerated this way:
     * <tt>'A' = 0, 'C' = 1, 'G' = 2, 'T' = 3</tt>.
     *
     * Objects of type <tt>Dna</tt> can be converted to various other types and vice
     * versa. An object that has a value not in <tt>{'A', 'C', 'G', 'T'}</tt> is
     * converted to <tt>'A'</tt>.
     *
     * @see Dna5
     * @see DnaString
     * @see DnaIterator
     */