2#ifndef INTARNA_ACCESSIBILITYCONSTRAINT_H_
3#define INTARNA_ACCESSIBILITYCONSTRAINT_H_
8#include <boost/regex.hpp>
49 static const boost::regex
regex;
85 ,
const bool reverseIndices =
false );
101 ,
const std::string& dotBracket
267 ,
const size_t maxBpSpan_
268 ,
const std::string & shapeFile_
269 ,
const std::string & shapeMethod_
270 ,
const std::string & shapeConversion_
274 maxBpSpan( maxBpSpan_==0 ? length : std::min(maxBpSpan_,length) ),
275 shapeFile(shapeFile_),
276 shapeMethod(shapeFile_.empty() ?
"" : shapeMethod_),
277 shapeConversion(shapeFile_.empty() ?
"" : shapeConversion_),
282#if INTARNA_IN_DEBUG_MODE
285 throw std::runtime_error(
"AccessibilityConstraint(shapeMethod="+
shapeMethod+
") does not match its encoding regular expression");
288 throw std::runtime_error(
"AccessibilityConstraint(shapeConversion="+
shapeConversion+
") does not match its encoding regular expression");
299 ,
const bool reverseIndices)
301 length(toCopy.length)
302 , maxBpSpan(toCopy.maxBpSpan)
303 , shapeFile(toCopy.shapeFile)
304 , shapeMethod(toCopy.shapeMethod)
305 , shapeConversion(toCopy.shapeConversion)
306 , blocked(toCopy.blocked)
307 , accessible(toCopy.accessible)
308 , paired(toCopy.paired)
312 if (reverseIndices) {
483 bool alreadyPrinted =
false;
487 alreadyPrinted =
true;
492 alreadyPrinted =
true;
497 alreadyPrinted =
true;
501 out <<(alreadyPrinted?
",":
"") <<
"shapeFile" <<
':' <<c.
shapeFile;
502 alreadyPrinted =
true;
Definition AccessibilityConstraint.h:26
std::string shapeMethod
method for converting SHAPE reactivity data to pseudo energies
Definition AccessibilityConstraint.h:219
static const boost::regex regexShapeConversion
the regular expression to be matched by shapeConversion encodings
Definition AccessibilityConstraint.h:55
bool isMarkedPaired(const size_t i) const
Definition AccessibilityConstraint.h:358
static const std::string regionIndexList
regular expression that encodes a single region encoding as index list
Definition AccessibilityConstraint.h:46
bool isUnconstrained(const size_t i) const
Definition AccessibilityConstraint.h:368
const std::string & getShapeMethod() const
Definition AccessibilityConstraint.h:441
bool isAccessible(const size_t i) const
Definition AccessibilityConstraint.h:379
const std::string & getShapeFile() const
Definition AccessibilityConstraint.h:431
IndexRangeList accessible
sorted list of ranges that are marked as accessible
Definition AccessibilityConstraint.h:228
bool isMarkedAccessible(const size_t i) const
Definition AccessibilityConstraint.h:348
std::string shapeConversion
method for conversion of SHAPE reactivity data to paired probabilities
Definition AccessibilityConstraint.h:222
static void screenDotBracket(const std::string &dotBracket, const char marker, IndexRangeList &storage)
static const char dotBracket_accessible
the marker for accessible positions in dot-bracket notation
Definition AccessibilityConstraint.h:35
std::string shapeFile
filename of SHAPE reactivity data or empty if no SHAPE data to be used
Definition AccessibilityConstraint.h:216
size_t length
the overall sequence length this constraint is about
Definition AccessibilityConstraint.h:210
const std::string & getShapeConversion() const
Definition AccessibilityConstraint.h:451
static const char dotBracket_paired
the marker for paired positions in dot-bracket notation
Definition AccessibilityConstraint.h:37
static const std::string dotBracket_constraints
collection of all allowed encoding of constraints
Definition AccessibilityConstraint.h:40
size_t maxBpSpan
the maximal base pair span to be used for accessibility computation
Definition AccessibilityConstraint.h:213
static const std::string dotBracketAlphabet
the alphabet to encode accessibility constraints in dot-bracket notation
Definition AccessibilityConstraint.h:43
static const char dotBracket_blocked
the marker for blocked positions in dot-bracket notation
Definition AccessibilityConstraint.h:33
AccessibilityConstraint(const size_t length, const size_t maxBpSpan, const std::string &shapeFile, const std::string &shapeMethod, const std::string &shapeConversion)
Definition AccessibilityConstraint.h:266
bool isMarkedBlocked(const size_t i) const
Definition AccessibilityConstraint.h:338
bool isEmpty() const
Definition AccessibilityConstraint.h:390
AccessibilityConstraint & operator=(const AccessibilityConstraint &c)
Definition AccessibilityConstraint.h:461
AccessibilityConstraint(const RnaSequence &seq, const std::string &dotBracket, const size_t maxBpSpan, const std::string &shapeFile, const std::string &shapeMethod, const std::string &shapeConversion)
IndexRangeList blocked
sorted list of ranges that are marked as blocked
Definition AccessibilityConstraint.h:225
char getVrnaDotBracket(const size_t i) const
Definition AccessibilityConstraint.h:401
IndexRangeList paired
sorted list of ranges that are marked as paired (intramolecular)
Definition AccessibilityConstraint.h:231
virtual ~AccessibilityConstraint()
Definition AccessibilityConstraint.h:329
static const char dotBracket_unconstrained
the marker for unconstrained positions in dot-bracket notation
Definition AccessibilityConstraint.h:31
size_t getMaxBpSpan() const
Definition AccessibilityConstraint.h:421
static const boost::regex regex
the regular expression that marks a non-empty valid constraint encoding
Definition AccessibilityConstraint.h:49
static const boost::regex regexShapeMethod
the regular expression to be matched by shapeMethod encodings
Definition AccessibilityConstraint.h:52
friend std::ostream & operator<<(std::ostream &out, const AccessibilityConstraint &c)
Definition AccessibilityConstraint.h:481
Definition IndexRangeList.h:20
IndexRangeList & reverseInplace(const size_t seqLength)
bool covers(const size_t index) const
bool empty() const
Definition IndexRangeList.h:453
size_t size() const
Definition IndexRangeList.h:463
Definition RnaSequence.h:29
Definition Accessibility.h:13
std::ostream & operator<<(std::ostream &out, const AccessibilityConstraint &c)
Definition AccessibilityConstraint.h:481