76 template <
typename sequence_alphabet_t,
typename structure_alphabet_t>
78 requires nucleotide_concept<sequence_alphabet_t> && rna_structure_concept<structure_alphabet_t>
82 sequence_alphabet_t, structure_alphabet_t>
87 sequence_alphabet_t, structure_alphabet_t>;
107 using base_type::base_type;
112 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna(indirect_component_type const alph) {} ))
114 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna &
operator=(component_type
const alph) {} ))
116 SEQAN3_DOXYGEN_ONLY(( constexpr
structured_rna & operator=(indirect_component_type const alph) {} ))
120 using base_type::operator=;
121 using base_type::operator==;
122 using base_type::operator!=;
123 using base_type::operator>=;
124 using base_type::operator<=;
125 using base_type::operator<;
126 using base_type::operator>;
171 return get<1>(*this).is_pair_open();
179 return get<1>(*this).is_pair_close();
187 return get<1>(*this).is_unpaired();
199 if constexpr (structure_alphabet_type::max_pseudoknot_depth > 1)
201 return get<1>(*this).pseudoknot_id();
213 template <
typename sequence_alphabet_type,
typename structure_alphabet_type>
char_t char_type
The type of the alphabet when converted to char (e.g. via to_char()).
Definition: alphabet_base.hpp:87
The CRTP base for a combined alphabet that contains multiple values of different alphabets at the sam...
Definition: cartesian_composition.hpp:209
Provides seqan3::rna_structure_concept.
constexpr bool is_pair_close() const noexcept
Check whether the character represents a leftward interaction in an RNA structure.
Definition: structured_rna.hpp:177
constexpr structured_rna(component_type const alph)
Construction via a value of one of the components.
Definition: structured_rna.hpp:110
sequence_alphabet_t sequence_alphabet_type
First template parameter as member type.
Definition: structured_rna.hpp:90
constexpr bool is_unpaired() const noexcept
Check whether the character represents an unpaired position in an RNA structure.
Definition: structured_rna.hpp:185
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
constexpr char_type to_char() const noexcept
Return a character. This reads the internal sequence letter.
Definition: structured_rna.hpp:142
constexpr structured_rna complement() const noexcept
Return a structured_rna where the sequence letter is converted to its complement. ...
Definition: structured_rna.hpp:157
Provides seqan3::nucleotide_concept.
Provides seqan3::cartesian_composition.
constexpr bool is_pair_open() const noexcept
Check whether the character represents a rightward interaction in an RNA structure.
Definition: structured_rna.hpp:169
Metafunction that indicates to what extent an alphabet can handle pseudoknots. [value metafunction ba...
Definition: concept_pre.hpp:228
A seqan3::cartesian_composition that joins a nucleotide alphabet with an RNA structure alphabet...
Definition: structured_rna.hpp:80
constexpr std::optional< uint8_t > pseudoknot_id() const noexcept
Get an identifier for a pseudoknotted interaction.
Definition: structured_rna.hpp:197
constexpr alphabet_type & assign_char(alphabet_type &alph, underlying_char_t< alphabet_type > const chr) requires requires(alphabet_type alph)
Implementation of seqan3::alphabet_concept::assign_char() that delegates to a member function...
Definition: member_exposure.hpp:178
typename underlying_char< alphabet_type >::type underlying_char_t
The char_type of the alphabet. [type metafunction shortcut].
Definition: concept_pre.hpp:172
constexpr underlying_char_t< alphabet_type > to_char(alphabet_type const alph) requires requires(alphabet_type alph)
Implementation of seqan3::alphabet_concept::to_char() that delegates to a member function.
Definition: member_exposure.hpp:165
structure_alphabet_t structure_alphabet_type
Second template parameter as member type.
Definition: structured_rna.hpp:92