2#ifndef INTARNA_SEEDHANDLERIDXOFFSET_H_
3#define INTARNA_SEEDHANDLERIDXOFFSET_H_
8#include <boost/multi_array.hpp>
107 fillSeed(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2)
override;
137 getSeedE(
const size_t i1,
const size_t i2 )
const override;
149 isSeedBound(
const size_t i1,
const size_t i2 )
const override;
162 getSeedLength1(
const size_t i1,
const size_t i2 )
const override;
175 getSeedLength2(
const size_t i1,
const size_t i2 )
const override;
243 ,
const size_t k1,
const size_t k2 )
const override;
258 ,
const bool atEndOfSeed =
false )
const override;
294 SeedHandler(seedHandlerInstance->getInteractionEnergy(), seedHandlerInstance->getConstraint() )
295 , seedHandlerOriginal( seedHandlerInstance )
296 , deleteOnDestruction( deleteOnDestruction )
297 , seedConstraintOffset( seedHandlerOriginal->getConstraint() )
300 , energyIdxOffset(seedHandlerInstance->getInteractionEnergy(),idxOffset1,idxOffset2)
340fillSeed(
const size_t i1min,
const size_t i1max,
const size_t i2min,
const size_t i2max)
363getSeedE(
const size_t i1,
const size_t i2 )
const
373isSeedBound(
const size_t i1,
const size_t i2 )
const
425#if INTARNA_IN_DEBUG_MODE
427 throw std::runtime_error(
"SeedHandlerIdxOffset.setOffset1("+
toString(offset)
445#if INTARNA_IN_DEBUG_MODE
447 throw std::runtime_error(
"SeedHandlerIdxOffset.setOffset2("+
toString(offset)
474 ,
const size_t i1min,
const size_t i1max
475 ,
const size_t i2min,
const size_t i2max
507 ,
const size_t k1,
const size_t k2 )
const
519 ,
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
size_t getOffset1() const
Definition SeedHandlerIdxOffset.h:403
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2) override
Definition SeedHandlerIdxOffset.h:340
SeedConstraint seedConstraintOffset
the index shifted seed constraint
Definition SeedHandlerIdxOffset.h:269
virtual bool areLoopOverlapping(const size_t i1, const size_t i2, const size_t k1, const size_t k2) const override
Definition SeedHandlerIdxOffset.h:506
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 override
Definition SeedHandlerIdxOffset.h:473
virtual ~SeedHandlerIdxOffset() override
Definition SeedHandlerIdxOffset.h:307
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const override
Definition SeedHandlerIdxOffset.h:393
virtual const InteractionEnergy & getInteractionEnergy() const override
Definition SeedHandlerIdxOffset.h:330
size_t idxOffset1
offset for indices in seq1
Definition SeedHandlerIdxOffset.h:272
virtual SeedHandler & getOriginalSeedHandler()
Definition SeedHandlerIdxOffset.h:463
SeedHandler * seedHandlerOriginal
the index shifted seed handler
Definition SeedHandlerIdxOffset.h:263
void setOffset2(size_t offset2)
Definition SeedHandlerIdxOffset.h:443
virtual const SeedConstraint & getConstraint() const override
Definition SeedHandlerIdxOffset.h:320
InteractionEnergyIdxOffset energyIdxOffset
dedicated energy object to avoid
Definition SeedHandlerIdxOffset.h:278
void setOffset1(size_t offset1)
Definition SeedHandlerIdxOffset.h:423
virtual E_type getSeedE(const size_t i1, const size_t i2) const override
Definition SeedHandlerIdxOffset.h:363
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const override
Definition SeedHandlerIdxOffset.h:383
virtual void addSeeds(Interaction &i) const override
Definition SeedHandlerIdxOffset.h:496
SeedHandlerIdxOffset(SeedHandler *seedHandler, const bool deleteOnDestruction=true)
Definition SeedHandlerIdxOffset.h:292
virtual bool isFeasibleSeedBasePair(const size_t i1, const size_t i2, const bool atEndOfSeed=false) const override
Definition SeedHandlerIdxOffset.h:517
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const override
Definition SeedHandlerIdxOffset.h:350
size_t idxOffset2
offset for indices in seq2
Definition SeedHandlerIdxOffset.h:275
size_t getOffset2() const
Definition SeedHandlerIdxOffset.h:413
virtual bool isSeedBound(const size_t i1, const size_t i2) const override
Definition SeedHandlerIdxOffset.h:373
virtual bool guaranteesStackOnlySeeds() const override
Definition SeedHandlerIdxOffset.h:527
const bool deleteOnDestruction
whether or not the original seed handler is to be destroyed
Definition SeedHandlerIdxOffset.h:266
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 guaranteesStackOnlySeeds() const
Definition SeedHandler.h:262
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:206
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:244
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const =0
virtual const InteractionEnergy & getInteractionEnergy() const
Definition SeedHandler.h:254
#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