52 template <genetic_code gc = genetic_code::CANONICAL, nucleot
ide_alphabet nucl_type>
55 if constexpr (std::same_as<nucl_type, dna4> || std::same_as<nucl_type, dna5> || std::same_as<nucl_type, dna15>)
58 return seqan3::detail::translation_table<nucl_type, gc>::VALUE[
to_rank(n1)][
to_rank(n2)][
to_rank(n3)];
60 else if constexpr (std::same_as<nucl_type, rna4> || std::same_as<nucl_type, rna5> || std::same_as<nucl_type, rna15>)
67 return seqan3::detail::translation_table<rna2dna_t, gc>::VALUE[
to_rank(n1)][
to_rank(n2)][
to_rank(n3)];
73 return seqan3::detail::translation_table<dna15, gc>::VALUE[
to_rank(
static_cast<dna15>(n1))]
98 template <genetic_code gc = genetic_code::CANONICAL,
typename tuple_type>
100 requires (std::tuple_size<tuple_type>::value == 3) &&
107 return translate_triplet(std::get<0>(input_tuple), std::get<1>(input_tuple), std::get<2>(input_tuple));
129 template <genetic_code gc = genetic_code::CANONICAL, std::ranges::input_range range_type>
135 auto n1 = std::ranges::begin(input_range);
139 assert(n1 != std::ranges::end(input_range));
140 assert(n2 != std::ranges::end(input_range));
141 assert(n3 != std::ranges::end(input_range));
165 template <genetic_code gc = genetic_code::CANONICAL, std::ranges::random_access_range rng_t>
171 assert(std::ranges::begin(input_range) != std::ranges::end(input_range));
172 assert(std::ranges::begin(input_range) + 1 != std::ranges::end(input_range));
173 assert(std::ranges::begin(input_range) + 2 != std::ranges::end(input_range));
Provides seqan3::aa27, container aliases and string literals.
The twenty-seven letter amino acid alphabet.
Definition: aa27.hpp:44
The 15 letter DNA alphabet, containing all IUPAC smybols minus the gap.
Definition: dna15.hpp:49
The four letter DNA alphabet of A,C,G,T.
Definition: dna4.hpp:51
The five letter DNA alphabet of A,C,G,T and the unknown character N.
Definition: dna5.hpp:49
constexpr auto to_rank
Return the rank representation of a (semi-)alphabet object.
Definition: concept.hpp:143
constexpr aa27 translate_triplet(nucl_type const &n1, nucl_type const &n2, nucl_type const &n3) noexcept
Translate one nucleotide triplet into single amino acid (single nucleotide interface).
Definition: translation.hpp:53
A concept that indicates whether an alphabet represents nucleotides.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides various transformation traits used by the range module.
Provides translation details for nucleotide to aminoacid translation.
Genetic codes used for translating a triplet of nucleotides into an amino acid.