2#ifndef INTARNA_SEEDHANDLERIDXOFFSET_H_
3#define INTARNA_SEEDHANDLERIDXOFFSET_H_
8#include <boost/multi_array.hpp>
100 fillSeed(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2);
130 getSeedE(
const size_t i1,
const size_t i2 )
const;
142 isSeedBound(
const size_t i1,
const size_t i2 )
const;
236 ,
const size_t k1,
const size_t k2 )
const;
251 ,
const bool atEndOfSeed =
false )
const;
287 SeedHandler(seedHandlerInstance->getInteractionEnergy(), seedHandlerInstance->getConstraint() )
288 , seedHandlerOriginal( seedHandlerInstance )
289 , deleteOnDestruction( deleteOnDestruction )
290 , seedConstraintOffset( seedHandlerOriginal->getConstraint() )
293 , energyIdxOffset(seedHandlerInstance->getInteractionEnergy(),idxOffset1,idxOffset2)
333fillSeed(
const size_t i1min,
const size_t i1max,
const size_t i2min,
const size_t i2max)
356getSeedE(
const size_t i1,
const size_t i2 )
const
366isSeedBound(
const size_t i1,
const size_t i2 )
const
418#if INTARNA_IN_DEBUG_MODE
420 throw std::runtime_error(
"SeedHandlerIdxOffset.setOffset1("+
toString(offset)
438#if INTARNA_IN_DEBUG_MODE
440 throw std::runtime_error(
"SeedHandlerIdxOffset.setOffset2("+
toString(offset)
467 ,
const size_t i1min,
const size_t i1max
468 ,
const size_t i2min,
const size_t i2max
500 ,
const size_t k1,
const size_t k2 )
const
512 ,
const bool atEndOfSeed )
const
IndexRangeList shift(const int indexShift, const size_t indexMax) const
Definition InteractionEnergyIdxOffset.h:18
void setOffset1(size_t offset1)
Definition InteractionEnergyIdxOffset.h:552
void setOffset2(size_t offset2)
Definition InteractionEnergyIdxOffset.h:578
Definition InteractionEnergy.h:20
virtual size_t size1() const
Definition InteractionEnergy.h:709
virtual size_t size2() const
Definition InteractionEnergy.h:719
Definition Interaction.h:28
static const size_t lastPos
Definition RnaSequence.h:57
Definition SeedConstraint.h:20
const IndexRangeList & getRanges2() const
Definition SeedConstraint.h:397
const IndexRangeList & getRanges1() const
Definition SeedConstraint.h:388
Definition SeedHandlerIdxOffset.h:23
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const
Definition SeedHandlerIdxOffset.h:386
virtual void addSeeds(Interaction &i) const
Definition SeedHandlerIdxOffset.h:489
size_t getOffset1() const
Definition SeedHandlerIdxOffset.h:396
SeedConstraint seedConstraintOffset
the index shifted seed constraint
Definition SeedHandlerIdxOffset.h:262
virtual const InteractionEnergy & getInteractionEnergy() const
Definition SeedHandlerIdxOffset.h:323
virtual bool areLoopOverlapping(const size_t i1, const size_t i2, const size_t k1, const size_t k2) const
Definition SeedHandlerIdxOffset.h:499
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
Definition SeedHandlerIdxOffset.h:333
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const
Definition SeedHandlerIdxOffset.h:343
virtual bool updateToNextSeed(size_t &i1, size_t &i2, const size_t i1min=0, const size_t i1max=RnaSequence::lastPos, const size_t i2min=0, const size_t i2max=RnaSequence::lastPos) const
Definition SeedHandlerIdxOffset.h:466
size_t idxOffset1
offset for indices in seq1
Definition SeedHandlerIdxOffset.h:265
virtual SeedHandler & getOriginalSeedHandler()
Definition SeedHandlerIdxOffset.h:456
virtual const SeedConstraint & getConstraint() const
Definition SeedHandlerIdxOffset.h:313
SeedHandler * seedHandlerOriginal
the index shifted seed handler
Definition SeedHandlerIdxOffset.h:256
void setOffset2(size_t offset2)
Definition SeedHandlerIdxOffset.h:436
InteractionEnergyIdxOffset energyIdxOffset
dedicated energy object to avoid
Definition SeedHandlerIdxOffset.h:271
void setOffset1(size_t offset1)
Definition SeedHandlerIdxOffset.h:416
virtual E_type getSeedE(const size_t i1, const size_t i2) const
Definition SeedHandlerIdxOffset.h:356
SeedHandlerIdxOffset(SeedHandler *seedHandler, const bool deleteOnDestruction=true)
Definition SeedHandlerIdxOffset.h:285
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const
Definition SeedHandlerIdxOffset.h:376
size_t idxOffset2
offset for indices in seq2
Definition SeedHandlerIdxOffset.h:268
size_t getOffset2() const
Definition SeedHandlerIdxOffset.h:406
virtual ~SeedHandlerIdxOffset()
Definition SeedHandlerIdxOffset.h:300
virtual bool isSeedBound(const size_t i1, const size_t i2) const
Definition SeedHandlerIdxOffset.h:366
virtual bool isFeasibleSeedBasePair(const size_t i1, const size_t i2, const bool atEndOfSeed=false) const
Definition SeedHandlerIdxOffset.h:510
const bool deleteOnDestruction
whether or not the original seed handler is to be destroyed
Definition SeedHandlerIdxOffset.h:259
Definition SeedHandler.h:17
virtual bool updateToNextSeed(size_t &i1, size_t &i2, const size_t i1min=0, const size_t i1max=RnaSequence::lastPos, const size_t i2min=0, const size_t i2max=RnaSequence::lastPos) const
virtual E_type getSeedE(const size_t i1, const size_t i2) const =0
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const =0
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const =0
virtual bool isSeedBound(const size_t i1, const size_t i2) const =0
virtual bool areLoopOverlapping(const size_t i1, const size_t i2, const size_t k1, const size_t k2) const
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)=0
const InteractionEnergy & energy
the used energy function
Definition SeedHandler.h:199
virtual void addSeeds(Interaction &i) const
virtual bool isFeasibleSeedBasePair(const size_t i1, const size_t i2, const bool atEndOfSeed=false) const
virtual const SeedConstraint & getConstraint() const
Definition SeedHandler.h:237
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const =0
virtual const InteractionEnergy & getInteractionEnergy() const
Definition SeedHandler.h:247
#define toString(x)
Definition general.h:60
Definition Accessibility.h:13
int E_type
type for energy values (energy + accessibility [ED]) (internally)
Definition general.h:78