SeqAn3 3.4.0-rc.4
The Modern C++ library for sequence analysis.
|
The WUSS structure alphabet of the characters .<>:,-_~;()[]{}AaBbCcDd
...
More...
#include <seqan3/alphabet/structure/wuss.hpp>
Public Member Functions | |
constexpr char_type | to_char () const noexcept |
Return the letter as a character of char_type. | |
constexpr rank_type | to_rank () const noexcept |
Return the letter's numeric value (rank in the alphabet). | |
Constructors, destructor and assignment | |
constexpr | wuss () noexcept=default |
Defaulted. | |
constexpr | wuss (wuss const &) noexcept=default |
Defaulted. | |
constexpr | wuss (wuss &&) noexcept=default |
Defaulted. | |
constexpr wuss & | operator= (wuss const &) noexcept=default |
Defaulted. | |
constexpr wuss & | operator= (wuss &&) noexcept=default |
Defaulted. | |
~wuss () noexcept=default | |
Defaulted. | |
![]() | |
constexpr | alphabet_base () noexcept=default |
Defaulted. | |
constexpr | alphabet_base (alphabet_base const &) noexcept=default |
Defaulted. | |
constexpr | alphabet_base (alphabet_base &&) noexcept=default |
Defaulted. | |
constexpr alphabet_base & | operator= (alphabet_base const &) noexcept=default |
Defaulted. | |
constexpr alphabet_base & | operator= (alphabet_base &&) noexcept=default |
Defaulted. | |
~alphabet_base () noexcept=default | |
Defaulted. | |
constexpr char_type | to_char () const noexcept |
Return the letter as a character of char_type. | |
constexpr rank_type | to_rank () const noexcept |
Return the letter's numeric value (rank in the alphabet). | |
constexpr derived_type & | assign_char (char_type const chr) noexcept |
Assign from a character, implicitly converts invalid characters. | |
constexpr derived_type & | assign_rank (rank_type const c) noexcept |
Assign from a numeric value. | |
Static Public Attributes | |
static constexpr detail::min_viable_uint_t< size > | alphabet_size |
The size of the alphabet, i.e. the number of different values it can take. | |
![]() | |
static constexpr detail::min_viable_uint_t< size > | alphabet_size = size |
The size of the alphabet, i.e. the number of different values it can take. | |
Protected Types | |
using | char_type = std::conditional_t< std::same_as< char_t, void >, char, char_t > |
The char representation; conditional needed to make semi alphabet definitions legal. | |
using | rank_type = detail::min_viable_uint_t< size - 1 > |
The type of the alphabet when represented as a number (e.g. via to_rank()). | |
![]() | |
using | char_type = std::conditional_t< std::same_as< char_t, void >, char, char_t > |
The char representation; conditional needed to make semi alphabet definitions legal. | |
using | rank_type = detail::min_viable_uint_t< size - 1 > |
The type of the alphabet when represented as a number (e.g. via to_rank()). | |
Private Types | |
using | base_t = alphabet_base< wuss< SIZE >, SIZE > |
The base class. | |
Static Private Member Functions | |
static constexpr rank_type | char_to_rank (char_type const chr) |
Returns the rank representation of character. | |
static constexpr char_type | rank_to_char (rank_type const rank) |
Returns the character representation of rank. | |
Private Attributes | |
friend | base_t |
Befriend seqan3::alphabet_base. | |
Static Private Attributes | |
static constexpr std::array< rank_type, 256 > | char_to_rank_table |
The lookup table used in char_to_rank. | |
static constexpr std::array< int8_t, SIZE > | interaction_tab |
Lookup table for interactions: unpaired (0), pair-open (< 0), pair-close (> 0). Paired brackets have the same absolute value. | |
static constexpr std::array< char_type, alphabet_size > | rank_to_char_table |
The lookup table used in rank_to_char. | |
Related Symbols | |
(Note that these are not member symbols.) | |
using | wuss51 = wuss< 51 > |
Alias for the default type wuss51. | |
Structure literals | |
constexpr wuss51 | operator""_wuss51 (char const ch) noexcept |
The seqan3::wuss51 char literal. | |
constexpr std::vector< wuss51 > | operator""_wuss51 (char const *str, std::size_t len) |
The seqan3::wuss51 string literal. | |
![]() | |
template<cereal_output_archive archive_t, semialphabet alphabet_t> | |
alphabet_rank_t< alphabet_t > | save_minimal (archive_t const &, alphabet_t const &l) |
Save an alphabet letter to stream. | |
template<cereal_input_archive archive_t, typename wrapped_alphabet_t > | |
void | load_minimal (archive_t const &, wrapped_alphabet_t &&l, alphabet_rank_t< detail::strip_cereal_wrapper_t< wrapped_alphabet_t > > const &r) |
Restore an alphabet letter from a saved rank. | |
RNA structure properties | |
static constexpr uint8_t | max_pseudoknot_depth {static_cast<uint8_t>((alphabet_size - 7) / 2)} |
The ability of this alphabet to represent pseudoknots, i.e. crossing interactions, up to a certain depth. It is the number of distinct pairs of interaction symbols the format supports: 4..30 (depends on size) | |
constexpr bool | is_pair_open () const noexcept |
Check whether the character represents a rightward interaction in an RNA structure. | |
constexpr bool | is_pair_close () const noexcept |
Check whether the character represents a leftward interaction in an RNA structure. | |
constexpr bool | is_unpaired () const noexcept |
Check whether the character represents an unpaired position in an RNA structure. | |
constexpr std::optional< uint8_t > | pseudoknot_id () const noexcept |
Get an identifier for a pseudoknotted interaction, where opening and closing brackets of the same type have the same id. | |
The WUSS structure alphabet of the characters .<>:,-_~;()[]{}AaBbCcDd
...
SIZE | The alphabet size defaults to 51 and must be an odd number in range 15..67. It determines the allowed pseudoknot depth by adding characters AaBb..Zz to the alphabet. |
The symbols .:,-_~;
denote unpaired characters, brackets <>()[]{}
represent base pair interactions and AaBbCcDd
... form pseudoknots in the structure. The default alphabet has size 51 (letters until Rr
). The size can be varied with the optional template parameter between 15 (no letters for pseudoknots) and 67 (all Aa
-Zz
for pseudoknots).
|
stable-apiprotected |
The char representation; conditional needed to make semi alphabet definitions legal.
We need a return type for seqan3::alphabet_base::to_char and seqan3::alphabet_base::assign_char other than void to make these in-class definitions valid when char_t
is void.
|
stable-apiprotected |
The type of the alphabet when represented as a number (e.g. via to_rank()).
|
no-apiinlinestaticconstexprprivate |
Returns the rank representation of character.
This function is required by seqan3::alphabet_base.
|
experimental-apiinlineconstexprnoexcept |
Check whether the character represents a leftward interaction in an RNA structure.
|
experimental-apiinlineconstexprnoexcept |
Check whether the character represents a rightward interaction in an RNA structure.
|
experimental-apiinlineconstexprnoexcept |
Check whether the character represents an unpaired position in an RNA structure.
|
experimental-apiinlineconstexprnoexcept |
Get an identifier for a pseudoknotted interaction, where opening and closing brackets of the same type have the same id.
It is guaranteed to be smaller than seqan3::max_pseudoknot_depth.
|
no-apiinlinestaticconstexprprivate |
Returns the character representation of rank.
This function is required by seqan3::alphabet_base.
|
stable-apiinlineconstexprnoexcept |
Return the letter as a character of char_type.
Provides an implementation for seqan3::to_char, required to model seqan3::alphabet.
Constant.
Guaranteed not to throw.
|
stable-apiinlineconstexprnoexcept |
Return the letter's numeric value (rank in the alphabet).
Provides an implementation for seqan3::to_rank, required to model seqan3::semialphabet.
Constant.
Guaranteed not to throw.
|
experimental-apirelated |
The seqan3::wuss51 string literal.
[in] | str | A pointer to the character string to assign. |
[in] | len | The size of the character string to assign. |
You can use this string literal to easily assign to std::vector<seqan3::wuss51>:
|
experimental-apirelated |
The seqan3::wuss51 char literal.
[in] | ch | The character to represent as wuss. |
You can use this char literal to assign a seqan3::wuss51 character:
|
stable-apistaticconstexpr |
The size of the alphabet, i.e. the number of different values it can take.
|
no-apistaticconstexprprivate |
The lookup table used in char_to_rank.
We would have defined these lookup tables directly within their respective constexpr functions, but at the time of writing this, gcc did not (clang >= 4 did!) auto-generate lookup tables.
|
no-apistaticconstexprprivate |
Lookup table for interactions: unpaired (0), pair-open (< 0), pair-close (> 0). Paired brackets have the same absolute value.
|
experimental-apistaticconstexpr |
The ability of this alphabet to represent pseudoknots, i.e. crossing interactions, up to a certain depth. It is the number of distinct pairs of interaction symbols the format supports: 4..30 (depends on size)
|
no-apistaticconstexprprivate |
The lookup table used in rank_to_char.
We would have defined these lookup tables directly within their respective constexpr functions, but at the time of writing this, gcc did not (clang >= 4 did!) auto-generate lookup tables.