The WUSS structure alphabet of the characters .<>:,-_~;()[]{}AaBbCcDd
...
More...
#include <seqan3/alphabet/structure/wuss.hpp>
Public Types | |
using | char_type = char_t |
The type of the alphabet when converted to char (e.g. via to_char()). | |
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()). | |
Public Member Functions | |
Constructors, destructor and assignment | |
constexpr | wuss () |
constexpr | wuss (wuss const &)=default |
constexpr | wuss (wuss &&)=default |
constexpr wuss & | operator= (wuss const &)=default |
constexpr wuss & | operator= (wuss &&)=default |
~wuss ()=default | |
Read functions | |
constexpr char_type | to_char () const noexcept |
Return the letter as a character of char_type. More... | |
constexpr rank_type | to_rank () const noexcept |
Return the letter's numeric value (rank in the alphabet). More... | |
Write functions | |
constexpr wuss< SIZE > & | assign_char (std::conditional_t< std::Same< char_type, void >, char, char_type > const c) noexcept |
Assign from a character. More... | |
constexpr wuss< SIZE > & | assign_rank (rank_type const c) noexcept |
Assign from a numeric value. More... | |
Static Public Attributes | |
static detail::min_viable_uint_t< size > constexpr | value_size |
The size of the alphabet, i.e. the number of different values it can take. | |
Letter values | |
Static member "letters" that can be assigned to the alphabet or used in aggregate initialization. Similar to an Enum interface. Don't worry about the | |
static this_type_deferred constexpr | UNPAIRED = this_type_deferred{}.assign_char('.') |
. not paired (insertion to known structure) | |
static this_type_deferred constexpr | UNPAIRED1 = this_type_deferred{}.assign_char(':') |
: not paired (external residue outside structure) | |
static this_type_deferred constexpr | UNPAIRED2 = this_type_deferred{}.assign_char(',') |
, not paired (multifurcation loop) | |
static this_type_deferred constexpr | UNPAIRED3 = this_type_deferred{}.assign_char('-') |
- not paired (bulge, interior loop) | |
static this_type_deferred constexpr | UNPAIRED4 = this_type_deferred{}.assign_char('_') |
_ not paired (hairpin loop) | |
static this_type_deferred constexpr | UNPAIRED5 = this_type_deferred{}.assign_char('~') |
~ not paired (due to local alignment) | |
static this_type_deferred constexpr | UNPAIRED6 = this_type_deferred{}.assign_char(';') |
; not paired | |
static this_type_deferred constexpr | PAIR_OPEN = this_type_deferred{}.assign_char('<') |
< bracket left (simple terminal stem) | |
static this_type_deferred constexpr | PAIR_OPEN1 = this_type_deferred{}.assign_char('(') |
( bracket left (internal helix enclosing <> ) | |
static this_type_deferred constexpr | PAIR_OPEN2 = this_type_deferred{}.assign_char('[') |
[ bracket left (internal helix enclosing () ) | |
static this_type_deferred constexpr | PAIR_OPEN3 = this_type_deferred{}.assign_char('{') |
{ bracket left (internal helix enclosing [] ) | |
static this_type_deferred constexpr | PAIR_CLOSE = this_type_deferred{}.assign_char('>') |
> bracket right (simple terminal stem) | |
static this_type_deferred constexpr | PAIR_CLOSE1 = this_type_deferred{}.assign_char(')') |
) bracket right (internal helix enclosing <> ) | |
static this_type_deferred constexpr | PAIR_CLOSE2 = this_type_deferred{}.assign_char(']') |
] bracket right (internal helix enclosing () ) | |
static this_type_deferred constexpr | PAIR_CLOSE3 = this_type_deferred{}.assign_char('}') |
} bracket right (internal helix enclosing [] ) | |
Related Functions | |
(Note that these are not member functions.) | |
std::vector< wuss51 > | operator""_wuss51 (const char *str, std::size_t len) |
wuss literal More... | |
std::optional< uint8_t > | pseudoknot_id (structure_type const alph) |
Get an identifier for a pseudoknotted interaction. More... | |
Requirements for seqan3::rna_structure_concept | |
You can expect these functions on all types that implement seqan3::rna_structure_concept. | |
template<typename alphabet_type > | |
constexpr uint8_t | max_pseudoknot_depth_v = max_pseudoknot_depth<alphabet_type>::value |
The pseudoknot ability of the alphabet. [value metafunction shortcut]. More... | |
Helpers for seqan3::rna_structure_concept | |
These functions and metafunctions expose member variables and types so that they satisfy seqan3::rna_structure_concept. | |
template<typename structure_type > | |
constexpr bool | is_pair_open (structure_type const alph) requires requires(structure_type alph) |
Implementation of seqan3::rna_structure_concept::is_pair_open() that delegates to a member function. More... | |
template<typename structure_type > | |
constexpr bool | is_pair_close (structure_type const alph) requires requires(structure_type alph) |
Implementation of seqan3::rna_structure_concept::is_pair_close() that delegates to a member function. More... | |
template<typename structure_type > | |
constexpr bool | is_unpaired (structure_type const alph) requires requires(structure_type alph) |
Implementation of seqan3::rna_structure_concept::is_unpaired() that delegates to a member function. More... | |
template<typename alphabet_type_with_pseudoknot_attribute > | |
constexpr std::optional< uint8_t > | pseudoknot_id (alphabet_type_with_pseudoknot_attribute const alph) |
Implementation of seqan3::rna_structure_concept::pseudoknot_id() that delegates to a member function. More... | |
Requirements for seqan3::alphabet_concept | |
You can expect these functions on all types that implement seqan3::alphabet_concept. | |
template<typename alphabet_type > | |
using | underlying_char_t = typename underlying_char< alphabet_type >::type |
The char_type of the alphabet. [type metafunction shortcut]. More... | |
char_type | to_char (alphabet_concept const alph) |
Returns the alphabet letter's value in character representation. More... | |
alphabet_concept && | assign_char (alphabet_concept &&alph, char_type const chr) |
Returns the alphabet letter's value in character representation. More... | |
Requirements for seqan3::semi_alphabet_concept | |
You can expect these functions on all types that implement seqan3::semi_alphabet_concept. | |
template<typename semi_alphabet_type > | |
using | underlying_rank_t = typename underlying_rank< semi_alphabet_type >::type |
The rank_type of the semi_alphabet. [type metafunction shortcut]. More... | |
template<typename alphabet_type > | |
constexpr auto | alphabet_size_v = alphabet_size<alphabet_type>::value |
The size of the alphabet. [value metafunction shortcut]. More... | |
rank_type | to_rank (semi_alphabet_concept const alph) |
Returns the alphabet letter's value in rank representation. More... | |
semi_alphabet_concept && | assign_rank (semi_alphabet_concept &&alph, rank_type const rank) |
Returns the alphabet letter's value in rank representation. More... | |
Requirements for std::Swappable | |
You can expect these functions on all types that implement std::Swappable. | |
void | swap (t &lhs, t &rhs) |
Swaps the contents of two objects. More... | |
Requirements for std::EqualityComparable | |
You can expect these functions on all types that implement std::Equality_comparable. | |
bool | operator== (type const &lhs, type const &rhs) |
(In-)Equality comparison. More... | |
bool | operator!= (type const &lhs, type const &rhs) |
(In-)Equality comparison. More... | |
Requirements for std::StrictTotallyOrdered | |
You can expect these functions on all types that implement std::StrictTotallyOrdered. | |
bool | operator< (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator<= (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator> (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator>= (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
RNA structure properties | |
static constexpr uint8_t | max_pseudoknot_depth {(value_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. More... | |
constexpr bool | is_pair_close () const noexcept |
Check whether the character represents a leftward interaction in an RNA structure. More... | |
constexpr bool | is_unpaired () const noexcept |
Check whether the character represents an unpaired position in an RNA structure. More... | |
constexpr std::optional< uint8_t > | pseudoknot_id () const noexcept |
Get an identifier for a pseudoknotted interaction. Opening and closing brackets of the same type have the same id. More... | |
The WUSS structure alphabet of the characters .<>:,-_~;()[]{}AaBbCcDd
...
SIZE | The alphabet size defaults to 50 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).
|
inlinenoexceptinherited |
Assign from a character.
Satisfies the seqan3::alphabet_concept::assign_char() requirement via the seqan3::assign_char() wrapper.
Constant.
Guaranteed not to throw.
|
inlinenoexceptinherited |
Assign from a numeric value.
Satisfies the seqan3::semi_alphabet_concept::assign_rank() requirement via the seqan3::assign_rank() wrapper.
Constant.
Guaranteed not to throw.
|
inlinenoexcept |
Check whether the character represents a leftward interaction in an RNA structure.
|
inlinenoexcept |
Check whether the character represents a rightward interaction in an RNA structure.
|
inlinenoexcept |
Check whether the character represents an unpaired position in an RNA structure.
|
inlinenoexcept |
Get an identifier for a pseudoknotted interaction. Opening and closing brackets of the same type have the same id.
|
inlinenoexceptinherited |
Return the letter as a character of char_type.
Satisfies the seqan3::alphabet_concept::to_char() requirement via the seqan3::to_char() wrapper.
Constant.
Guaranteed not to throw.
|
inlinenoexceptinherited |
Return the letter's numeric value (rank in the alphabet).
Satisfies the seqan3::semi_alphabet_concept::to_rank() requirement via the to_rank() wrapper.
Constant.
Guaranteed not to throw.
|
related |
Implementation of seqan3::rna_structure_concept::is_pair_close() that delegates to a member function.
structure_type | Must provide a .is_pair_close() member function. |
alph | The alphabet letter which is checked for the pairing property. |
|
related |
Implementation of seqan3::rna_structure_concept::is_pair_open() that delegates to a member function.
structure_type | Must provide a .is_pair_open() member function. |
alph | The alphabet letter which is checked for the pairing property. |
|
related |
Implementation of seqan3::rna_structure_concept::is_unpaired() that delegates to a member function.
structure_type | Must provide a .is_unpaired() member function. |
alph | The alphabet letter which is checked for the pairing property. |
|
related |
wuss literal
You can use this string literal to easily assign to a vector of wuss characters:
|
related |
Get an identifier for a pseudoknotted interaction.
alph | The alphabet letter which is checked for the pseudoknot id. |
|
related |
Implementation of seqan3::rna_structure_concept::pseudoknot_id() that delegates to a member function.
alphabet_type_with_pseudoknot_attribute | If it supports pseudoknots, it must provide a .pseudoknot_id() member function, otherwise it can be omitted. |
alph | The alphabet letter which is checked for the pseudoknot id. |