1 #ifndef LOCARNA_RNA_STRUCTURE_HH 2 #define LOCARNA_RNA_STRUCTURE_HH 29 typedef std::pair<size_t,size_t>
bp_t;
32 typedef std::set<bp_t,std::less<bp_t> >
bps_t;
38 static const char unpaired_symbol_=
'.';
39 static const std::string open_symbols_;
40 static const std::string close_symbols_;
43 parse(
const std::string &s,
49 parse(
const std::string &s,
51 const std::string &op_syms,
52 const std::string &cl_syms);
55 assert_valid_bp(
const bp_t &bp) {
56 assert(1 <= bp.first);
57 assert(bp.first<bp.second);
58 assert(bp.second<=length_);
98 this->length_ == s.length_
100 this->bps_ == s.bps_;
112 return bps_.find(x) != bps_.end();
123 size()
const {
return bps_.size();}
138 remove(
const bp_t &bp) {
181 const_iterator
begin()
const {
return bps_.begin();}
188 const_iterator
end()
const {
return bps_.end();}
222 empty(
const bps_t &bps);
const_iterator begin() const
begin of base pair set
Definition: rna_structure.hh:181
size_t length() const
sequence length
Definition: rna_structure.hh:118
bool empty() const
Check for empty structure / class PLAIN.
Definition: rna_structure.hh:230
void insert(const bp_t &bp)
insert base pair
Definition: rna_structure.hh:129
std::string to_string() const
convert to dot-bracket string
Definition: rna_structure.cc:66
std::set< bp_t, std::less< bp_t > > bps_t
base pair set type
Definition: rna_structure.hh:32
bool contains(const bp_t &x) const
Base pair for membership test.
Definition: rna_structure.hh:111
void clear()
clear structure set structure to empty
Definition: rna_structure.hh:147
Definition: aligner.cc:17
std::pair< size_t, size_t > bp_t
base pair type
Definition: rna_structure.hh:29
RnaStructure()
construct empty
Definition: rna_structure.hh:65
bool nested() const
Check for nested structure / class NESTED.
Definition: rna_structure.hh:255
const_iterator end() const
end of base pair set
Definition: rna_structure.hh:188
size_t size() const
number of base pairs
Definition: rna_structure.hh:123
An RNA secondary structure.
Definition: rna_structure.hh:26
bool crossing() const
Check for crossing structure / class CROSSING.
Definition: rna_structure.hh:281
bps_t::const_iterator const_iterator
Check whether a loop contains a position.
Definition: rna_structure.hh:174
bool operator==(const RnaStructure &s) const
Equality operator.
Definition: rna_structure.hh:96