IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
Accessibility.h
Go to the documentation of this file.
1
2#ifndef INTARNA_ACCESSIBILITY_H_
3#define INTARNA_ACCESSIBILITY_H_
4
5
6#include "IntaRNA/general.h"
10
11#include <stdexcept>
12
13namespace IntaRNA {
14
15template<class T> class UpperBandedMatrix;
16
26
27public:
28
30 const static E_type ED_UPPER_BOUND;
31
32public:
33
42 Accessibility( const RnaSequence& sequence
43 , const size_t maxLength
44 , const AccessibilityConstraint * const accConstr
45 );
46
50 virtual ~Accessibility();
51
63 virtual
64 E_type
65 getED( const size_t from, const size_t to ) const = 0;
66
71 virtual
72 const RnaSequence &
73 getSequence() const;
74
79 virtual
80 size_t
81 getMaxLength() const;
82
90 virtual
92 getAccConstraint() const;
93
102 void
103 writeRNAplfold_Pu_text( std::ostream& out, const Z_type RT ) const;
104
110 void
111 writeRNAplfold_ED_text( std::ostream& out ) const;
112
120 virtual void writeBinary( std::ostream & out ) const;
121
128 friend std::ostream& operator<<(std::ostream& out, const Accessibility& acc);
129
149 decomposeByMaxED( const size_t maxRangeLength
150 , const size_t winSize
151 , const size_t minRangeLength ) const;
152
153
164 void
165 decomposeByMaxED( IndexRangeList & ranges, const E_type maxED, const size_t minRangeLength ) const;
166
167protected:
168
176 void writeBinary( std::ostream & out, const UpperBandedMatrix<E_type> * matrix ) const;
177
180
182 const size_t maxLength;
183
186
195 virtual
196 void
197 checkIndices( const size_t from, const size_t to ) const;
198
208 void
209 writeRNAplfold_text( std::ostream& out, const Z_type RT, const bool writeProbs ) const;
210
211};
212
213
214
216
217inline
219 , const size_t maxLength
220 , const AccessibilityConstraint * const accConstraint_ )
221 :
222 seq(seq)
223 // set maxLength to appropriate value
224 , maxLength( maxLength==0 ? seq.size() : std::min(maxLength,seq.size()) )
225 , accConstraint( seq.size(), 0, "", "", "" )
226{
227 // set constraint if needed
228 if (accConstraint_ != NULL) {
229 accConstraint = *accConstraint_;
230 }
231}
232
234
235inline
239
241
242inline
243void
245checkIndices( const size_t from, const size_t to ) const
246{
247#if INTARNA_IN_DEBUG_MODE
248 if (from > to || to >= getSequence().size()) {
249 throw std::runtime_error("Accessibility::checkIndices : region ["+toString(from)+","+toString(to)+"] does not fulfill 0 <= from <= to < seq.length");
250 }
251#endif
252}
253
255
256inline
257const RnaSequence &
259getSequence() const
260{
261 return seq;
262}
263
265
266inline
267size_t
269getMaxLength() const
270{
271 return maxLength;
272}
273
275
276inline
279getAccConstraint() const
280{
281 return accConstraint;
282}
283
285
286inline
287void
289writeRNAplfold_ED_text( std::ostream& out ) const
290{
291 writeRNAplfold_text( out, 1.0, false );
292}
293
295
296inline
297void
299writeRNAplfold_Pu_text( std::ostream& out, const Z_type RT ) const
300{
301 writeRNAplfold_text( out, RT, true );
302}
303
305
306}
307
308#endif /* ACCESSIBILITY_H_ */
Definition AccessibilityConstraint.h:26
Definition Accessibility.h:25
void writeBinary(std::ostream &out, const UpperBandedMatrix< E_type > *matrix) const
static const E_type ED_UPPER_BOUND
upper bound for all ED return values
Definition Accessibility.h:30
AccessibilityConstraint accConstraint
accessibility constraint
Definition Accessibility.h:185
virtual const AccessibilityConstraint & getAccConstraint() const
Definition Accessibility.h:279
IndexRangeList decomposeByMaxED(const size_t maxRangeLength, const size_t winSize, const size_t minRangeLength) const
void writeRNAplfold_ED_text(std::ostream &out) const
Definition Accessibility.h:289
virtual ~Accessibility()
Definition Accessibility.h:236
virtual size_t getMaxLength() const
Definition Accessibility.h:269
virtual void writeBinary(std::ostream &out) const
friend std::ostream & operator<<(std::ostream &out, const Accessibility &acc)
void writeRNAplfold_Pu_text(std::ostream &out, const Z_type RT) const
Definition Accessibility.h:299
virtual const RnaSequence & getSequence() const
Definition Accessibility.h:259
const RnaSequence & seq
the RNA sequence the accessibilities correspond to
Definition Accessibility.h:179
virtual E_type getED(const size_t from, const size_t to) const =0
virtual void checkIndices(const size_t from, const size_t to) const
Definition Accessibility.h:245
Accessibility(const RnaSequence &sequence, const size_t maxLength, const AccessibilityConstraint *const accConstr)
Definition Accessibility.h:218
const size_t maxLength
the maximal length of an unpaired regions to be considered
Definition Accessibility.h:182
void writeRNAplfold_text(std::ostream &out, const Z_type RT, const bool writeProbs) const
void decomposeByMaxED(IndexRangeList &ranges, const E_type maxED, const size_t minRangeLength) const
Definition IndexRangeList.h:20
Definition RnaSequence.h:29
Definition Matrix.h:433
#define toString(x)
Definition general.h:60
Definition Accessibility.h:13
int E_type
type for energy values (energy + accessibility [ED]) (internally)
Definition general.h:78
double Z_type
type for probabilities, RT and Boltzmann values
Definition general.h:88