# Spec AminoAcid
IUPAC code for amino acids.

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

## 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 `AminoAcid` is 27.

The amino acid symbols are as follows, i.e. they are sorted alphabetically up until the last two symbols:

'A' = 0, 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'Z', 'X'. '*'

Of these 'B' is a wildcard for (Aspartic Acid, Asparagine), 'J' for (Leucine, Isoleucine), 'Z' for (Glutamic Acid, Glutamine) and 'X' for "any amino acid".

'O' refers to the rare Pyrrolysine, 'U' refers to the rare Selenocysteine and '*' to the terminator tRNA.

Objects of type `AminoAcid` can be converted to `char` and vice versa. Unknown values are converted to `'X'`.

## See Also

- Peptide
- PeptideIterator
- ValueSize

#### Dox Sources

    /*!
     * @class AminoAcid
     *
     * @extends SimpleType
     *
     * @headerfile <seqan/basic.h>
     *
     * @brief IUPAC code for amino acids.
     *
     * @signature typedef SingleType<unsigned char, AminoAcid_> AminoAcid;
     *
     * The ValueSize of <tt>AminoAcid</tt> is 27.
     *
     * The amino acid symbols are as follows, i.e. they are sorted alphabetically up
     * until the last two symbols:
     *
     * 'A' = 0, 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
     * 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'Z', 'X'. '*'
     *
     * Of these 'B' is a wildcard for (Aspartic Acid, Asparagine), 'J' for (Leucine,
     * Isoleucine), 'Z' for (Glutamic Acid, Glutamine) and 'X' for "any amino acid".
     *
     * 'O' refers to the rare Pyrrolysine, 'U' refers to the rare Selenocysteine and
     * '*' to the terminator tRNA.
     *
     * Objects of type <tt>AminoAcid</tt> can be converted to <tt>char</tt> and vice
     * versa. Unknown values are converted to <tt>'X'</tt>.
     *
     * @see FiniteOrderedAlphabetConcept#ValueSize
     * @see PeptideIterator
     * @see Peptide
     */