53 template <Nucleot
ideAlphabet sequence_alphabet_t, RnaStructureAlphabet structure_alphabet_t>
55 requires WritableAlphabet<sequence_alphabet_t> && WritableAlphabet<structure_alphabet_t>
59 sequence_alphabet_t, structure_alphabet_t>
64 sequence_alphabet_t, structure_alphabet_t>;
87 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna(component_type const alph) noexcept {} ))
89 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna(indirect_component_type
const alph) noexcept {} ))
91 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna & operator=(component_type const alph) noexcept {} ))
93 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna &
operator=(indirect_component_type
const alph) noexcept {} ))
97 using base_type::operator=;
98 using base_type::operator==;
99 using base_type::operator!=;
100 using base_type::operator>=;
101 using base_type::operator<=;
102 using base_type::operator<;
103 using base_type::operator>;
150 return char_is_valid_for<sequence_alphabet_type>(c);
161 return get<1>(*this).is_pair_open();
169 return get<1>(*this).is_pair_close();
177 return get<1>(*this).is_unpaired();
189 return get<1>(*this).pseudoknot_id();
196 template <
typename sequence_alphabet_type,
typename structure_alphabet_type>
197 structured_rna(sequence_alphabet_type &&, structure_alphabet_type &&)
constexpr bool is_pair_close() const noexcept
Check whether the character represents a leftward interaction in an RNA structure.
Definition: structured_rna.hpp:167
constexpr auto to_char
Return the char representation of an alphabet object.
Definition: concept.hpp:285
constexpr auto assign_char_strictly_to
Assign a character to an alphabet object, throw if the character is not valid.
Definition: concept.hpp:577
sequence_alphabet_t sequence_alphabet_type
First template parameter as member type.
Definition: structured_rna.hpp:67
constexpr bool is_unpaired() const noexcept
Check whether the character represents an unpaired position in an RNA structure.
Definition: structured_rna.hpp:175
The main SeqAn3 namespace.
constexpr char_type to_char() const noexcept
Return a character. This reads the internal sequence letter.
Definition: structured_rna.hpp:126
static constexpr bool char_is_valid(char_type const c) noexcept
Validate whether a character is valid in the sequence alphabet.
Definition: structured_rna.hpp:148
constexpr structured_rna complement() const noexcept
Return a structured_rna where the sequence letter is converted to its complement. ...
Definition: structured_rna.hpp:141
The CRTP base for a combined alphabet that contains multiple values of different alphabets at the sam...
Definition: alphabet_tuple_base.hpp:188
Provides seqan3::NucleotideAlphabet.
alphabet_char_t< sequence_alphabet_type > char_type
Equals the char_type of sequence_alphabet_type.
Definition: structured_rna.hpp:72
decltype(seqan3::to_char(std::declval< alphabet_type const >())) alphabet_char_t
The char_type of the alphabet; defined as the return type of seqan3::to_char.
Definition: concept.hpp:294
constexpr bool is_pair_open() const noexcept
Check whether the character represents a rightward interaction in an RNA structure.
Definition: structured_rna.hpp:159
Provides seqan3::RnaStructureAlphabet.
structured_rna & assign_char_strictly(char_type const c)
Strict assign from a nucleotide character. This modifies the internal sequence letter.
Definition: structured_rna.hpp:115
A seqan3::alphabet_tuple_base that joins a nucleotide alphabet with an RNA structure alphabet...
Definition: structured_rna.hpp:57
static constexpr uint8_t max_pseudoknot_depth
The ability of this alphabet to represent pseudoknots, i.e. crossing interactions.
Definition: structured_rna.hpp:181
constexpr auto max_pseudoknot_depth
A type trait that holds the ability of the structure alphabet to represent pseudoknots, i.e. crossing interactions, up to a certain depth.
Definition: concept.hpp:370
constexpr structured_rna(indirect_component_type const alph) noexcept
Construction via a value of a subtype that is assignable to one of the components.
Definition: structured_rna.hpp:89
constexpr std::optional< uint8_t > pseudoknot_id() const noexcept
Get an identifier for a pseudoknotted interaction.
Definition: structured_rna.hpp:187
constexpr structured_rna() noexcept=default
Defaulted.
Provides seqan3::alphabet_tuple_base.
constexpr auto assign_char_to
Assign a character to an alphabet object.
Definition: concept.hpp:395
structure_alphabet_t structure_alphabet_type
Second template parameter as member type.
Definition: structured_rna.hpp:69