1 #ifndef LOCARNA_BASEPAIRS_HH
2 #define LOCARNA_BASEPAIRS_HH
14 #include "sparse_matrix.hh"
168 typedef std::pair<size_type, size_type>
bpair_t;
207 auto & xs = left_adjlists_[i];
208 assert(xs[xs.size() - 1].right() == len_+1 );
219 auto & xs = right_adjlists_[i];
220 assert(xs[xs.size() - 1].left() == 0 );
227 return arc_vec_[arcs_(i, j)];
236 assert(idx < arc_vec_.size());
237 return arc_vec_[idx];
243 return -1 != arcs_(i, j);
249 return arc_vec_.size();
275 std::vector<LeftAdjList> left_adjlists_;
276 std::vector<RightAdjList> right_adjlists_;
294 generateBPLists(
const RnaData &rna_data);
302 add_adj_list_sentinels();
Entry in a left adjacency list.
Definition: basepairs.hh:125
LeftAdjEntry(const Arc &a)
Definition: basepairs.hh:132
Entry in a right adjacency list.
Definition: basepairs.hh:139
RightAdjEntry(const Arc &a)
Definition: basepairs.hh:146
Represents a base pair.
Definition: basepairs.hh:39
size_t right() const
Definition: basepairs.hh:77
size_t idx() const
Definition: basepairs.hh:87
size_t left() const
Definition: basepairs.hh:67
BasePairs__Arc(size_t idx, size_t left, size_t right)
Definition: basepairs.hh:53
Describes sequence and structure ensemble of an RNA.
Definition: basepairs.hh:108
size_type seqlen() const
returns length of sequence
Definition: basepairs.cc:208
double prob_min() const
return minimal probability
Definition: basepairs.cc:105
void register_arc(int i, int j)
registers an arc (i,j)
Definition: basepairs.cc:126
const RightAdjList & right_adjlist_s(size_type i) const
Get right adjacency list with sentinel.
Definition: basepairs.hh:218
const Arc & arc(size_type idx) const
Definition: basepairs.hh:235
std::pair< size_type, size_type > bpair_t
type for pair of positions (base pairs)
Definition: basepairs.hh:168
std::vector< Arc > arc_vec_t
Vector of arcs.
Definition: basepairs.hh:150
BasePairs(const RnaData *rna_data, double min_prob)
Definition: basepairs.cc:68
std::set< bpair_t > bpair_set_t
type for set of position pairs
Definition: basepairs.hh:171
size_t size_type
size
Definition: basepairs.hh:110
bool exists_arc(int i, int j) const
returns whether basepair (i,j) exists
Definition: basepairs.hh:242
const Arc & arc(int i, int j) const
accesses basepair by (i,j)
Definition: basepairs.hh:226
std::vector< LeftAdjEntry > LeftAdjList
type of left adjacency list
Definition: basepairs.hh:159
const LeftAdjList & left_adjlist_s(size_type i) const
Get left adjacency list with sentinel.
Definition: basepairs.hh:206
size_type num_bps() const
returns number of basepairs in the object
Definition: basepairs.hh:248
SparseMatrix< int > arc_matrix_t
type for matrix of arcs (actually arc indices)
Definition: basepairs.hh:165
BasePairs__Arc Arc
arc
Definition: basepairs.hh:112
std::vector< RightAdjEntry > RightAdjList
type of right adjacency list
Definition: basepairs.hh:162
represent sparsified data of RNA ensemble
Definition: rna_data.hh:44
Definition: aligner.cc:15
std::ostream & operator<<(std::ostream &out, const AlignerRestriction &r)
Definition: aligner_restriction.hh:135
size_t size_type
general size type
Definition: aux.hh:120