BioC++ core-0.7.0
The Modern C++ libraries for Bioinformatics.
 
Loading...
Searching...
No Matches
bio::alphabet Namespace Reference

The alphabet module's namespace. More...

Namespaces

namespace  custom
 A namespace for third party and standard library specialisations of BioC++ customisation points.
 
namespace  literals
 An inline namespace for alphabet literals. It exists to safely allow using namespace.
 

Classes

class  aa10li
 The reduced Li amino acid alphabet.. More...
 
class  aa10murphy
 The reduced Murphy amino acid alphabet.. More...
 
class  aa20
 The canonical amino acid alphabet.. More...
 
class  aa27
 The twenty-seven letter amino acid alphabet.. More...
 
class  aminoacid_base
 A CRTP-base that refines bio::alphabet::base and is used by the amino acids. More...
 
struct  aminoacid_empty_base
 This is an empty base class that can be inherited by types that shall model bio::alphabet::aminoacid. More...
 
class  base
 A CRTP-base that makes defining a custom alphabet easier. More...
 
class  base< derived_type, 1ul, char_t >
 Specialisation of bio::alphabet::base for alphabets of size 1. More...
 
class  cigar
 The cigar semialphabet pairs a counter with a bio::alphabet::cigar_op letter. More...
 
class  cigar_op
 The cigar operation alphabet.. More...
 
class  dna15
 The 15 letter DNA alphabet, containing all IUPAC smybols minus the gap.. More...
 
class  dna16sam
 A 16 letter DNA alphabet, containing all IUPAC symbols minus the gap and plus an equality sign ('=').. More...
 
class  dna4
 The four letter DNA alphabet of A,C,G,T.. More...
 
class  dna5
 The five letter DNA alphabet of A,C,G,T and the unknown character N.. More...
 
class  gap
 The alphabet of a gap character '-'. More...
 
struct  invalid_char_assignment
 An exception typically thrown by bio::alphabet::assign_char_strict. More...
 
class  mask
 Implementation of a masked semialphabet to be used for tuple composites.. More...
 
class  masked
 A template for composite alphabets that differentiate between upper and lower case characters.. More...
 
class  nucleotide_base
 A CRTP-base that refines bio::alphabet::base and is used by the nucleotides. More...
 
class  phred42
 Quality type for traditional Sanger and modern Illumina Phred scores (typical range).. More...
 
class  phred63
 Quality type for traditional Sanger and modern Illumina Phred scores (full range).. More...
 
class  phred68legacy
 Quality type for Solexa and deprecated Illumina formats.. More...
 
class  proxy_base
 A CRTP-base that eases the definition of proxy types returned in place of regular alphabets. More...
 
class  qualified
 Joins an arbitrary alphabet with a quality alphabet. More...
 
class  quality_base
 A CRTP-base that refines bio::alphabet::base and is used by the quality alphabets. More...
 
class  rna15
 The 15 letter RNA alphabet, containing all IUPAC smybols minus the gap.. More...
 
class  rna4
 The four letter RNA alphabet of A,C,G,U.. More...
 
class  rna5
 The five letter RNA alphabet of A,C,G,U and the unknown character N.. More...
 
class  semialphabet_any
 A semi-alphabet that type erases all other semi-alphabets of the same size. More...
 
class  tuple_base
 The CRTP base for a combined alphabet that contains multiple values of different alphabets at the same time.. More...
 
class  variant
 A combined alphabet that can hold values of either of its alternatives.. More...
 

Concepts

concept  aminoacid
 A concept that indicates whether an alphabet represents amino acids.
 
concept  semialphabet
 The basis for bio::alphabet::alphabet, but requires only rank interface (not char).
 
concept  writable_semialphabet
 A refinement of bio::alphabet::semialphabet that adds assignability.
 
concept  alphabet
 The generic alphabet concept that covers most data types used in ranges.
 
concept  writable_alphabet
 Refines bio::alphabet::alphabet and adds assignability.
 
concept  nucleotide
 A concept that indicates whether an alphabet represents nucleotides.
 
concept  quality
 A concept that indicates whether an alphabet represents quality scores.
 
concept  writable_quality
 A concept that indicates whether a writable alphabet represents quality scores.
 

Typedefs

template<typename alphabet_type >
using char_t = decltype(bio::alphabet::to_char(std::declval< alphabet_type const >()))
 The char_type of the alphabet; defined as the return type of bio::alphabet::to_char.
 
using dna15q = qualified< dna15, phred42 >
 An alphabet that stores a bio::alphabet::dna15 letter and an bio::alphabet::qualified letter at each position.
 
using dna4q = qualified< dna4, phred42 >
 An alphabet that stores a bio::alphabet::dna4 letter and an bio::alphabet::phred42 letter at each position.
 
using dna5q = qualified< dna5, phred42 >
 An alphabet that stores a bio::alphabet::dna5 letter and an bio::alphabet::phred42 letter at each position.
 
template<typename alphabet_t >
using gapped = variant< alphabet_t, gap >
 Extends a given alphabet with a gap character.
 
template<typename alphabet_type >
using phred_t = decltype(bio::alphabet::to_phred(std::declval< alphabet_type >()))
 The phred_type of the alphabet; defined as the return type of bio::alphabet::to_phred.
 
template<typename semi_alphabet_type >
using rank_t = decltype(bio::alphabet::to_rank(std::declval< semi_alphabet_type >()))
 The rank_type of the semi-alphabet; defined as the return type of bio::alphabet::to_rank.
 
using rna15q = qualified< rna15, phred42 >
 An alphabet that stores a bio::alphabet::rna15 letter and an bio::alphabet::qualified letter at each position.
 
using rna4q = qualified< rna4, phred42 >
 An alphabet that stores a bio::alphabet::rna4 letter and an bio::alphabet::phred42 letter at each position.
 
using rna5q = qualified< rna5, phred42 >
 An alphabet that stores a bio::alphabet::rna5 letter and an bio::alphabet::phred42 letter at each position.
 

Enumerations

enum struct  genetic_code : uint8_t { CANONICAL = 1 }
 Genetic codes used for translation of nucleotides into amino acids. More...
 
enum class  translation_frames : uint8_t {
  translation_frames::FWD_FRAME_0 = 1 , translation_frames::FWD_FRAME_1 = 1 << 1 , translation_frames::FWD_FRAME_2 = 1 << 2 , translation_frames::REV_FRAME_0 = 1 << 3 ,
  translation_frames::REV_FRAME_1 = 1 << 4 , translation_frames::REV_FRAME_2 = 1 << 5 , translation_frames::FWD_REV_0 = FWD_FRAME_0 | REV_FRAME_0 , translation_frames::FWD_REV_1 = FWD_FRAME_1 | REV_FRAME_1 ,
  translation_frames::FWD_REV_2 = FWD_FRAME_2 | REV_FRAME_2 , translation_frames::FWD = FWD_FRAME_0 | FWD_FRAME_1 | FWD_FRAME_2 , translation_frames::REV = REV_FRAME_0 | REV_FRAME_1 | REV_FRAME_2 , translation_frames::SIX_FRAME = FWD | REV
}
 Specialisation values for single and multiple translation frames. More...
 

Functions

template<genetic_code gc = genetic_code::CANONICAL, nucleotide nucl_type>
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).
 
Binary operators for bio::alphabet::translation_frames.

Perform binary operations like on ints or weak enums.

constexpr translation_frames operator& (translation_frames lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_frames operator| (translation_frames lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_frames operator^ (translation_frames lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_frames operator~ (translation_frames lhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_framesoperator&= (translation_frames &lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_framesoperator|= (translation_frames &lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 
constexpr translation_framesoperator^= (translation_frames &lhs, translation_frames rhs) noexcept
 Binary operators for bio::alphabet::translation_frames.
 

Variables

template<typename alph_t , typename wrap_t = meta::default_initialisable_wrap_t<alph_t>>
constexpr auto size
 A type trait that holds the size of a (semi-)alphabet.
 
Function objects
constexpr auto to_rank
 Return the rank representation of a (semi-)alphabet object.
 
constexpr auto assign_rank_to
 Assign a rank to an alphabet object.
 
constexpr auto to_char
 Return the char representation of an alphabet object.
 
constexpr auto assign_char_to
 Assign a char to an alphabet object.
 
template<typename alph_t >
constexpr auto char_is_valid_for
 Returns whether a character is in the valid set of a bio::alphabet::alphabet (usually implies a bijective mapping to an alphabet value).
 
constexpr auto assign_char_strictly_to
 Assign a character to an alphabet object, throw if the character is not valid.
 
Function objects (Nucleotide)
constexpr auto complement
 Return the complement of a nucleotide object.
 
Function objects (Quality)
constexpr auto to_phred
 The public getter function for the phred representation of a quality score.
 
constexpr auto assign_phred_to
 Assign a phred score to a quality alphabet object.
 

Detailed Description

The alphabet module's namespace.

See also
Customisation