SeqAn3  3.0.0
The Modern C++ library for sequence analysis.
Aminoacid

Provides the amino acid alphabets and functionality for translation from nucleotide. More...

+ Collaboration diagram for Aminoacid:

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).
 

Detailed Description

Provides the amino acid alphabets and functionality for translation from nucleotide.

Introduction

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.

Conversions

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.