2#ifndef INTARNA_INTERACTIONENERGYVIENNA_H_
3#define INTARNA_INTERACTIONENERGYVIENNA_H_
9 #include <ViennaRNA/utils.h>
10 #include <ViennaRNA/fold_vars.h>
11 #include <ViennaRNA/model.h>
12 #include <ViennaRNA/params.h>
13 #include <ViennaRNA/loop_energies.h>
15#ifndef VIENNA_RNA_PAIR_MAT_H
16#define VIENNA_RNA_PAIR_MAT_H
18 #include <ViennaRNA/pair_mat.h>
24#define Evrna_2_E( e ) ( static_cast<E_type>(e) )
72 ,
const bool initES =
false
96 getES1(
const size_t i1,
const size_t j1 )
const;
113 getES2(
const size_t i2,
const size_t j2 )
const;
183 getE_interLeft(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2 )
const;
310 isGC(
const size_t i1,
const size_t i2 )
const;
381getE_interLeft(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2 )
const
385 assert( i1!=j1 && i2!=j2 );
441getES1(
const size_t i1,
const size_t j1 )
const
443#if INTARNA_IN_DEBUG_MODE
445 if (i1>j1)
throw std::runtime_error(
"InteractionEnergy::getES1(i1="+
toString(i1)+
" > j1="+
toString(j1));
447 if (
esValues1 == NULL)
throw std::runtime_error(
"InteractionEnergy::getES1() : ES values not initialized");
459getES2(
const size_t i2,
const size_t j2 )
const
461#if INTARNA_IN_DEBUG_MODE
463 if (i2>j2)
throw std::runtime_error(
"InteractionEnergy::getES2(i2="+
toString(i2)+
" > j2="+
toString(j2));
465 if (
esValues2 == NULL)
throw std::runtime_error(
"InteractionEnergy::getES2() : ES values not initialized");
477isGC(
const size_t i1,
const size_t i2 )
const
480 return (bpType==
bpCG || bpType==
bpGC);
#define Evrna_2_E(e)
Definition InteractionEnergyVrna.h:24
Definition Accessibility.h:25
virtual const RnaSequence & getSequence() const
Definition Accessibility.h:259
Definition InteractionEnergyVrna.h:36
virtual E_type getEall2() const
Definition InteractionEnergyVrna.h:535
vrna_md_t foldModel
Vienna RNA package : folding model to be used for the energy computation.
Definition InteractionEnergyVrna.h:273
virtual E_type getE_multiHelix(const size_t j1, const size_t j2) const
Definition InteractionEnergyVrna.h:498
E_type Eall1
ensemble energy of intra-molecular structures of seq1
Definition InteractionEnergyVrna.h:298
void computeES(const Accessibility &acc, EsMatrix &esToFill)
virtual E_type getE_endRight(const size_t j1, const size_t j2) const
Definition InteractionEnergyVrna.h:360
E_type Eall2
ensemble energy of intra-molecular structures of seq2
Definition InteractionEnergyVrna.h:301
UpperTriangularMatrix< E_type > EsMatrix
matrix to store ES values (upper triangular matrix)
Definition InteractionEnergyVrna.h:289
const int bpCG
base pair code for (C,G)
Definition InteractionEnergyVrna.h:283
virtual E_type getES2(const size_t i2, const size_t j2) const
Definition InteractionEnergyVrna.h:459
EsMatrix * esValues2
the ES values for seq2 if computed (otherwise NULL)
Definition InteractionEnergyVrna.h:295
virtual E_type getE_danglingRight(const size_t j1, const size_t j2) const
Definition InteractionEnergyVrna.h:424
virtual E_type getE_danglingLeft(const size_t i1, const size_t i2) const
Definition InteractionEnergyVrna.h:407
virtual E_type getE_multiUnpaired(const size_t numUnpaired) const
Definition InteractionEnergyVrna.h:488
virtual Z_type getRT() const
Definition InteractionEnergyVrna.h:371
const int bpGC
base pair code for (G,C)
Definition InteractionEnergyVrna.h:286
virtual E_type getE_multiClosing() const
Definition InteractionEnergyVrna.h:511
virtual E_type getES1(const size_t i1, const size_t j1) const
Definition InteractionEnergyVrna.h:441
virtual E_type getE_endLeft(const size_t i1, const size_t i2) const
Definition InteractionEnergyVrna.h:349
Z_type RT
the RT constant to be used for Boltzmann weight computations
Definition InteractionEnergyVrna.h:280
virtual E_type getE_interLeft(const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
Definition InteractionEnergyVrna.h:381
E_type computeIntraEall(const Accessibility &acc) const
virtual E_type getE_init() const
Definition InteractionEnergyVrna.h:338
virtual E_type getEall1() const
Definition InteractionEnergyVrna.h:521
bool isGC(const size_t i1, const size_t i2) const
Definition InteractionEnergyVrna.h:477
EsMatrix * esValues1
the ES values for seq1 if computed (otherwise NULL)
Definition InteractionEnergyVrna.h:292
vrna_param_t * foldParams
Definition InteractionEnergyVrna.h:277
virtual ~InteractionEnergyVrna()
InteractionEnergyVrna(const Accessibility &accS1, const ReverseAccessibility &accS2, VrnaHandler &vrnaHandler, const size_t maxInternalLoopSize1=16, const size_t maxInternalLoopSize2=16, const bool initES=false, const E_type energyAdd=Ekcal_2_E(0.0), const bool energyWithDangles=true, const bool internalLoopGU=true)
Definition InteractionEnergy.h:20
const ReverseAccessibility & accS2
accessibility values for sequence S2 (reversed index order)
Definition InteractionEnergy.h:591
const E_type energyAdd
user defined shift of the energy spectrum
Definition InteractionEnergy.h:602
const size_t maxInternalLoopSize1
Definition InteractionEnergy.h:595
const Accessibility & accS1
accessibility values for sequence S1
Definition InteractionEnergy.h:588
const bool energyWithDangles
whether or not dangling end energy contributions are to be added
Definition InteractionEnergy.h:605
const bool internalLoopGU
whether or not GU base pairs allowed in internal loops
Definition InteractionEnergy.h:608
virtual bool isValidInternalLoop(const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
Definition InteractionEnergy.h:729
virtual size_t size1() const
Definition InteractionEnergy.h:709
const size_t maxInternalLoopSize2
Definition InteractionEnergy.h:599
virtual size_t size2() const
Definition InteractionEnergy.h:719
Definition ReverseAccessibility.h:13
virtual const RnaSequence & getSequence() const
Definition ReverseAccessibility.h:147
virtual const Accessibility & getAccessibilityOrigin() const
Definition ReverseAccessibility.h:185
const CodeSeq_type & asCodes() const
Definition RnaSequence.h:454
size_t size() const
Definition RnaSequence.h:366
Definition VrnaHandler.h:20
#define toString(x)
Definition general.h:60
#define E_isINF(e)
check if a given energy is set to E_INF
Definition general.h:143
#define Ekcal_2_E(e)
convert energy in kcal/mol units to internal energy type
Definition general.h:113
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
const E_type E_INF
Definition general.h:79