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
33
34public:
35
36
50 , const size_t maxLength
52 , const VrnaHandler & vrnaHandler
53 , const size_t plFoldW = 0
54 , const double pfScale = VrnaHandler::getPfScaleDefault()
55 );
56
60 virtual ~AccessibilityVrna() override;
61
73 virtual
74 E_type
75 getED( const size_t from, const size_t to ) const override;
76
77
86 static
87 void
88 addConstraints( vrna_fold_compound_t & fold_compound
89 , const Accessibility & acc );
90
91
98 void writeBinary( std::ostream & out ) const override;
99
100protected:
101
104
107
108
118 void
119 fillByRNAplfold( const VrnaHandler &vrnaHandler
120 , const size_t plFoldW
121 , const size_t plFoldL
122 , const double pfScale);
123
142 static
143 void
144 callbackForStorage( FLT_OR_DBL *pr,
145 int pr_size,
146 int j,
147 int max,
148 unsigned int type,
149 void *storageRT);
150
151};
152
153
157
158inline
159void
160AccessibilityVrna::writeBinary( std::ostream & out ) const
161{
163}
164
165inline
166E_type
168getED( const size_t from, const size_t to ) const
169{
170 // input range check
171 checkIndices(from,to);
172
173 if ((to-from+1) <= getMaxLength() +1 ) { // "getMaxLength()+1" to allow for dangling-end probability computation
174 // check for constrained end positions
175 if (!getAccConstraint().isAccessible(from) || !getAccConstraint().isAccessible(to)) {
176 // end position blocked --> omit accessibility
177 return ED_UPPER_BOUND;
178 }
179 // return according ED value from the precomputed matrix
180 return edValues (from,to);
181 } else {
182 // region length exceeds maximally allowed length -> no value
183 return ED_UPPER_BOUND;
184 }
185}
186
188
189} // namespace
190
191#endif /* ACCESSIBILITYVIENNA_H_ */
Definition AccessibilityConstraint.h:26
Definition AccessibilityVrna.h:32
static void addConstraints(vrna_fold_compound_t &fold_compound, const Accessibility &acc)
void writeBinary(std::ostream &out) const override
Definition AccessibilityVrna.h:160
EdMatrix edValues
the ED values for the given sequence
Definition AccessibilityVrna.h:106
virtual ~AccessibilityVrna() override
UpperBandedMatrix< E_type > EdMatrix
type for the ED value matrix (upper triangular matrix banded by maxLength)
Definition AccessibilityVrna.h:103
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)
virtual E_type getED(const size_t from, const size_t to) const override
Definition AccessibilityVrna.h:168
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())
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:21
static double getPfScaleDefault()
Definition Accessibility.h:13
int E_type
type for energy values (energy + accessibility [ED]) (internally)
Definition general.h:78