IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
AccessibilityVrna.h
Go to the documentation of this file.
1
2#ifndef INTARNA_ACCESSIBILITYVIENNA_H_
3#define INTARNA_ACCESSIBILITYVIENNA_H_
4
7
8#include "IntaRNA/Matrix.h"
9
10#include <iostream>
11
12
13extern "C" {
14 #include <ViennaRNA/fold_vars.h>
15 #include <ViennaRNA/params.h>
16}
17
18
19namespace IntaRNA {
20
29
30public:
31
32
46 , const size_t maxLength
48 , const VrnaHandler & vrnaHandler
49 , const size_t plFoldW = 0
50 , const double pfScale = VrnaHandler::getPfScaleDefault()
51 );
52
57
69 virtual
70 E_type
71 getED( const size_t from, const size_t to ) const;
72
73
80 static
81 void
82 addConstraints( vrna_fold_compound_t & fold_compound
83 , const Accessibility & acc );
84
85
92 void writeBinary( std::ostream & out ) const override;
93
94protected:
95
98
101
102
112 void
113 fillByRNAplfold( const VrnaHandler &vrnaHandler
114 , const size_t plFoldW
115 , const size_t plFoldL
116 , const double pfScale);
117
136 static
137 void
138 callbackForStorage( FLT_OR_DBL *pr,
139 int pr_size,
140 int j,
141 int max,
142 unsigned int type,
143 void *storageRT);
144
145};
146
147
151
152inline
153void
154AccessibilityVrna::writeBinary( std::ostream & out ) const
155{
157}
158
159inline
160E_type
162getED( const size_t from, const size_t to ) const
163{
164 // input range check
165 checkIndices(from,to);
166
167 if ((to-from+1) <= getMaxLength() +1 ) { // "getMaxLength()+1" to allow for dangling-end probability computation
168 // check for constrained end positions
169 if (!getAccConstraint().isAccessible(from) || !getAccConstraint().isAccessible(to)) {
170 // end position blocked --> omit accessibility
171 return ED_UPPER_BOUND;
172 }
173 // return according ED value from the precomputed matrix
174 return edValues (from,to);
175 } else {
176 // region length exceeds maximally allowed length -> no value
177 return ED_UPPER_BOUND;
178 }
179}
180
182
183} // namespace
184
185#endif /* ACCESSIBILITYVIENNA_H_ */
Definition AccessibilityConstraint.h:26
Definition AccessibilityVrna.h:28
static void addConstraints(vrna_fold_compound_t &fold_compound, const Accessibility &acc)
void writeBinary(std::ostream &out) const override
Definition AccessibilityVrna.h:154
EdMatrix edValues
the ED values for the given sequence
Definition AccessibilityVrna.h:100
UpperBandedMatrix< E_type > EdMatrix
type for the ED value matrix (upper triangular matrix banded by maxLength)
Definition AccessibilityVrna.h:97
void fillByRNAplfold(const VrnaHandler &vrnaHandler, const size_t plFoldW, const size_t plFoldL, const double pfScale)
static void callbackForStorage(FLT_OR_DBL *pr, int pr_size, int j, int max, unsigned int type, void *storageRT)
AccessibilityVrna(const RnaSequence &sequence, const size_t maxLength, const AccessibilityConstraint *const accConstraint, const VrnaHandler &vrnaHandler, const size_t plFoldW=0, const double pfScale=VrnaHandler::getPfScaleDefault())
virtual E_type getED(const size_t from, const size_t to) const
Definition AccessibilityVrna.h:162
Definition Accessibility.h:25
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
virtual size_t getMaxLength() const
Definition Accessibility.h:269
virtual void writeBinary(std::ostream &out) const
virtual void checkIndices(const size_t from, const size_t to) const
Definition Accessibility.h:245
const size_t maxLength
the maximal length of an unpaired regions to be considered
Definition Accessibility.h:182
Definition RnaSequence.h:29
Definition Matrix.h:433
Definition VrnaHandler.h:20
static double getPfScaleDefault()
Definition Accessibility.h:13
int E_type
type for energy values (energy + accessibility [ED]) (internally)
Definition general.h:78