Alphabet

Meta-header for the alphabet module.

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>

Core alphabet concept and free function/metafunction wrappers.

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>

Defines

SEQAN3_ALPHABET_CONCEPT_INCLUDED
namespace seqan3

The main SeqAn3 namespace.

Helpers for seqan3::semi_alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.

Helpers for seqan3::alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.

Helpers for seqan3::nucleotide_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.

Alphabet aliases

Other names (typedefs) for seqan3::nucl16

Range concepts

Adapted from the Ranges TS.

Container concepts

Container concepts as defined by the standard library (or very close).

Container-of-container concepts

Shortcuts for multi-dimensional container concepts.

seqan3::alphabet_concept metafunction base classes.

Note that you need to strictly follow this include order:

#include <alphabet/concept_pre.hpp>

// your custom alphabet

#include <alphabet/concept.hpp>
Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de> Include this file, if you implement an alphabet type with free/global function and metafunction interfaces.
Attention

If you include concept.hpp before your definitions, than your type will not be resolved as satisfying seqan3::alphabet_concept.

This is not true for custom alphabets implementing the interfaces as member functions/variables/types.

namespace seqan3

The main SeqAn3 namespace.

Helpers for seqan3::semi_alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.

Helpers for seqan3::alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.

Helpers for seqan3::nucleotide_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.

Alphabet aliases

Other names (typedefs) for seqan3::nucl16

Range concepts

Adapted from the Ranges TS.

Container concepts

Container concepts as defined by the standard library (or very close).

Container-of-container concepts

Shortcuts for multi-dimensional container concepts.

template <typename alphabet_type>
struct alphabet_size
#include <alphabet/concept_pre.hpp>

The size of the alphabet. [value metafunction base template].

Instead of calling seqan3::alphabet_size<alphabet_type>::value, you may use seqan3::alphabet_size_v<alphabet_type>.

Template Parameters
  • alphabet_type: Must satisfy seqan3::semi_alphabet_concept.

This is the expression to retrieve the value:

auto i = seqan3::alphabet_size<alphabet_type>::value;
// or
auto i = seqan3::alphabet_size_v<alphabet_type>;
The type of the variable is seqan3::underlying_rank_t<alphabet_type>.

Attention
This is the base template, it needss to be specialised.

template <typename alphabet_type>
struct underlying_char
#include <alphabet/concept_pre.hpp>

The char_type of the alphabet. [type metafunction base template].

Instead of calling typename seqan3::underlying_char<alphabet_type>::type it is recommended to just the shortcut: seqan3::underlying_char_t

Template Parameters
  • alphabet_type: Must satisfy seqan3::alphabet_concept.

Attention
This is the base template, it needss to be specialised.

template <typename semi_alphabet_type>
struct underlying_rank
#include <alphabet/concept_pre.hpp>

The rank_type of the semi_alphabet. [type metafunction base template].

Instead of calling typename seqan3::underlying_rank<semi_alphabet_type>::type it is recommended to just the shortcut: seqan3::underlying_rank_t<>

Template Parameters
  • semi_alphabet_type: Must satisfy seqan3::semi_alphabet_concept.

Attention
This is the base template, it needss to be specialised.

namespace detail

The internal SeqAn3 namespace.

The contents of this namespace are not visible to consumers of the library and the documentation is only generated for developers.

See
https://github.com/seqan/seqan3/wiki/Documentation

Variables

constexpr bool is_char_adaptation_v = is_char_adaptation<type>::value

Shortcut for seqan3::detail::is_char_adaptation.

constexpr bool is_uint_adaptation_v = is_uint_adaptation<type>::value

Shortcut for seqan3::detail::is_uint_adaptation.

template <typename type>
struct is_char_adaptation
#include <alphabet/concept_pre.hpp>

Metafunction that indicates whether a type is a char alphabet adaptation.

Inherits from false_type

template <typename type>
struct is_uint_adaptation
#include <alphabet/concept_pre.hpp>

Metafunction that indicates whether a type is a uint alphabet adaptation.

Inherits from false_type