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.