Provides the amino acid alphabets and functionality for translation from nucleotide. More...
Classes | |
class | seqan3::aa10li |
The reduced Li amino acid alphabet. More... | |
class | seqan3::aa10murphy |
The reduced Murphy amino acid alphabet. More... | |
class | seqan3::aa20 |
The canonical amino acid alphabet. More... | |
class | seqan3::aa27 |
The twenty-seven letter amino acid alphabet. More... | |
class | seqan3::aminoacid_base< derived_type, size > |
A CRTP-base that refines seqan3::alphabet_base and is used by the amino acids. More... | |
interface | seqan3::AminoacidAlphabet |
A concept that indicates whether an alphabet represents amino acids.Since an amino acid alphabet has no specific characteristics (like the complement function for nucleotide alphabets), we distinguish an amino acid alphabet by the seqan3::is_aminoacid type trait. More... | |
struct | seqan3::is_aminoacid< type > |
Identifies amino acid alphabets. More... | |
struct | seqan3::is_aminoacid< aa10li > |
Identifies aa10li as an amino acid alphabet (UnaryTypeTrait specialisation). More... | |
struct | seqan3::is_aminoacid< aa10murphy > |
Identifies aa10murphy as an amino acid alphabet (UnaryTypeTrait specialisation). More... | |
struct | seqan3::is_aminoacid< aa20 > |
Identifies aa20 as an amino acid alphabet (UnaryTypeTrait specialisation). More... | |
struct | seqan3::is_aminoacid< aa27 > |
Identifies aa27 as an amino acid alphabet (UnaryTypeTrait specialisation). More... | |
Variables | |
template<typename type > | |
constexpr bool | is_aminoacid_v = is_aminoacid<type>::value |
Helper variable that delegates to seqan3::is_aminoacid<type>::value (UnaryTypeTrait shortcut). | |
Provides the amino acid alphabets and functionality for translation from nucleotide.
Amino acid sequences are an important part of bioinformatic data processing and used by many applications and while it is possible to represent them in a regular std::string, it makes sense to have specialised data structures in most cases. This sub-module offers the 27 letter aminoacid alphabet as well as three reduced versions that can be used with regular container and ranges. The 27 letter amino acid alphabet contains the 20 canonical amino acids, 2 additional proteinogenic amino acids (Pyrrolysine and Selenocysteine) and a termination letter (*). Additionally 4 wildcard letters are offered which allow a more generic usage for example in case of ambiguous amino acids (e.g. J which means either Isoleucine or Leucine). See also https://en.wikipedia.org/wiki/Amino_acid for more information about the amino acid alphabet.
Amino acid name | Three letter code | One letter code | Remapped in seqan3::aa20 | Remapped in seqan3::aa10murphy | Remapped in seqan3::aa10li |
---|---|---|---|---|---|
Alanine | Ala | A | A | A | A |
Arginine | Arg | R | R | K | K |
Asparagine | Asn | N | N | B | H |
Aspartic acid | Asp | D | D | B | B |
Cysteine | Cys | C | C | C | C |
Tyrosine | Tyr | Y | Y | F | F |
Glutamic acid | Glu | E | E | B | B |
Glutamine | Gln | Q | Q | B | B |
Glycine | Gly | G | G | G | G |
Histidine | His | H | H | H | H |
Isoleucine | Ile | I | I | I | I |
Leucine | leu | L | L | I | J |
Lysine | Lys | K | K | K | K |
Methionine | Met | M | M | I | J |
Phenylalanine | Phe | F | F | F | F |
Proline | Pro | P | P | P | P |
Serine | Ser | S | S | S | A |
Threonine | Thr | T | T | S | A |
Tryptophan | Trp | W | W | F | F |
Valine | Val | V | V | I | I |
Selenocysteine | Sec | U | C | C | C |
Pyrrolysine | Pyl | O | K | K | K |
Asparagine or aspartic acid | Asx | B | D | B | B |
Glutamine or glutamic acid | Glx | Z | E | B | B |
Leucine or Isoleucine | Xle | J | L | I | J |
Unknown | Xaa | X | S | S | A |
Stop Codon | N/A | * | W | F | F |
All amino acid alphabets provide static value members (like an enum) for all amino acids in the form of the one-letter representation. As shown above, alphabets smaller than 27 internally represent multiple amino acids as one.
For most cases it is highly recommended to use seqan3::aa27 as seqan3::aa20 provides no benefits in regard to space consumption (both need 5bits). Use it only when you know you need to interface with other software of formats that only support the canonical set.