2#ifndef INTARNA_INTERACTIONENERGYBASEPAIR_H_
3#define INTARNA_INTERACTIONENERGYBASEPAIR_H_
55 ,
const bool initES =
false
58 ,
const size_t minLoopLength = 3
82 getES1(
const size_t i1,
const size_t j1 )
const;
99 getES2(
const size_t i2,
const size_t j2 )
const;
168 getE_interLeft(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2 )
const;
267 const E_type basePairEnergy;
271 const Z_type basePairWeight;
273 const size_t minLoopLength;
312 ,
const size_t maxInternalLoopSize1
313 ,
const size_t maxInternalLoopSize2
317 ,
const size_t minLoopLen
319 ,
const bool energyWithDangles
320 ,
const bool internalLoopGU
324 , maxInternalLoopSize1, maxInternalLoopSize2
325 , energyAdd, energyWithDangles,internalLoopGU ),
327 basePairEnergy(bpEnergy),
328 minLoopLength(minLoopLen),
329 basePairWeight(
Z_exp(
E_2_Z(-bpEnergy) / _RT)),
353getES1(
const size_t i1,
const size_t j1 )
const
355#if INTARNA_IN_DEBUG_MODE
357 if (i1>j1)
throw std::runtime_error(
"InteractionEnergy::getES1(i1="+
toString(i1)+
" > j1="+
toString(j1));
359 if (logQ1.
size1() !=
size1())
throw std::runtime_error(
"InteractionEnergy::getES1() : ES wasn't computed yet.");
361 return logQ1(i1, j1);
369getES2(
const size_t i2,
const size_t j2 )
const
371#if INTARNA_IN_DEBUG_MODE
373 if (i2>j2)
throw std::runtime_error(
"InteractionEnergy::getES2(i2="+
toString(i2)+
" > j2="+
toString(j2));
375 if (logQ2.
size1() !=
size2())
throw std::runtime_error(
"InteractionEnergy::getES2() : ES wasn't computed yet.");
377 return logQ2(i2, j2);
417 return basePairEnergy;
425getE_interLeft(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2 )
const
430 return basePairEnergy;
482 return basePairEnergy;
Definition Accessibility.h:25
virtual const RnaSequence & getSequence() const
Definition Accessibility.h:259
Definition InteractionEnergyBasePair.h:20
virtual E_type getES2(const size_t i2, const size_t j2) const
Definition InteractionEnergyBasePair.h:369
virtual E_type getEall2() const
virtual E_type getE_init() const
Definition InteractionEnergyBasePair.h:415
virtual E_type getE_danglingLeft(const size_t i1, const size_t i2) const
Definition InteractionEnergyBasePair.h:441
InteractionEnergyBasePair(const Accessibility &accS1, const ReverseAccessibility &accS2, const size_t maxInternalLoopSize1=16, const size_t maxInternalLoopSize2=16, const bool initES=false, const Z_type RT=Z_type(1.0), const E_type bpEnergy=Ekcal_2_E(-1.0), const size_t minLoopLength=3, const E_type energyAdd=Ekcal_2_E(0.0), const bool energyWithDangles=true, const bool internalLoopGU=true)
Definition InteractionEnergyBasePair.h:309
virtual E_type getES1(const size_t i1, const size_t j1) const
Definition InteractionEnergyBasePair.h:353
virtual E_type getEall1() const
virtual E_type getE_multiClosing() const
Definition InteractionEnergyBasePair.h:405
virtual E_type getE_multiUnpaired(const size_t numUnpaired) const
Definition InteractionEnergyBasePair.h:385
virtual E_type getE_multiHelix(const size_t j1, const size_t j2) const
Definition InteractionEnergyBasePair.h:395
virtual E_type getE_endLeft(const size_t i1, const size_t i2) const
Definition InteractionEnergyBasePair.h:463
virtual Z_type getRT() const
Definition InteractionEnergyBasePair.h:490
virtual E_type getE_interLeft(const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
Definition InteractionEnergyBasePair.h:425
virtual E_type getE_danglingRight(const size_t j1, const size_t j2) const
Definition InteractionEnergyBasePair.h:452
virtual ~InteractionEnergyBasePair()
Definition InteractionEnergyBasePair.h:344
virtual E_type getE_endRight(const size_t j1, const size_t j2) const
Definition InteractionEnergyBasePair.h:472
E_type getE_basePair() const
Definition InteractionEnergyBasePair.h:481
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
Definition RnaSequence.h:29
std::size_t size1() const noexcept
Definition Matrix.h:365
#define E_2_Z(e)
convert E_type to Z_type
Definition general.h:119
#define toString(x)
Definition general.h:60
#define Ekcal_2_E(e)
convert energy in kcal/mol units to internal energy type
Definition general.h:113
#define Z_exp
Definition general.h:90
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