1 #ifndef LOCARNA_RNA_STRUCTURE_HH
2 #define LOCARNA_RNA_STRUCTURE_HH
15 namespace BasePairFilter {
35 typedef std::pair<size_t, size_t>
bp_t;
38 typedef std::set<bp_t, std::less<bp_t> >
bps_t;
73 return this->length_ == s.length_ && this->bps_ == s.bps_;
85 return bps_.find(x) != bps_.end();
284 static const char unpaired_symbol_ =
'.';
285 static const std::string open_symbols_;
286 static const std::string close_symbols_;
289 parse(
const std::string &s,
bps_t &bps,
char op,
char cl);
292 parse(
const std::string &s,
294 const std::string &op_syms,
295 const std::string &cl_syms);
298 assert_valid_bp(
const bp_t &bp) {
299 assert(1 <= bp.first);
300 assert(bp.first < bp.second);
301 assert(bp.second <= length_);
310 operator<<(std::ostream &out,
const RnaStructure &structure);
basic class for base pair filters (no filtering)
Definition: base_pair_filter.hh:17
An RNA secondary structure.
Definition: rna_structure.hh:32
std::string to_string() const
convert to dot-bracket string
Definition: rna_structure.cc:69
size_t length() const
sequence length
Definition: rna_structure.hh:91
bool crossing() const
Check for crossing structure / class CROSSING.
Definition: rna_structure.hh:259
bool operator==(const RnaStructure &s) const
Equality operator.
Definition: rna_structure.hh:72
void insert(const bp_t &bp)
insert base pair
Definition: rna_structure.hh:106
std::set< bp_t, std::less< bp_t > > bps_t
base pair set type
Definition: rna_structure.hh:38
bool nested() const
Check for nested structure / class NESTED.
Definition: rna_structure.hh:232
RnaStructure(size_t length=0)
construct empty
Definition: rna_structure.hh:43
bool contains(const bp_t &x) const
Base pair for membership test.
Definition: rna_structure.hh:84
size_t size() const
number of base pairs
Definition: rna_structure.hh:98
bps_t::const_iterator const_iterator
constant iterator over base pairs
Definition: rna_structure.hh:151
const_iterator end() const
end of base pair set
Definition: rna_structure.hh:169
std::pair< size_t, size_t > bp_t
base pair type
Definition: rna_structure.hh:35
const_iterator begin() const
begin of base pair set
Definition: rna_structure.hh:159
bool empty() const
Check for empty structure / class PLAIN.
Definition: rna_structure.hh:206
void clear()
clear structure set structure to empty
Definition: rna_structure.hh:124
void apply_bpfilter(const BasePairFilter::Filter &filter)
apply base pair filter
Definition: rna_structure.cc:175
void remove_lonely_pairs()
remove lonely base pairs
Definition: rna_structure.cc:162
void remove(const bp_t &bp)
remove base pair
Definition: rna_structure.hh:115
Definition: aligner.cc:15
std::ostream & operator<<(std::ostream &out, const AlignerRestriction &r)
Definition: aligner_restriction.hh:135