2#ifndef INTARNA_SEEDHANDLERNOBULGE_H_
3#define INTARNA_SEEDHANDLERNOBULGE_H_
9#include <boost/unordered_map.hpp>
29 typedef boost::unordered_map< Interaction::BasePair, E_type, Interaction::BasePair::Hash >
SeedHash;
62 fillSeed(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2);
87 getSeedE(
const size_t i1,
const size_t i2 )
const;
99 isSeedBound(
const size_t i1,
const size_t i2 )
const;
182#if INTARNA_IN_DEBUG_MODE
184 LOG(WARNING) <<
"explicit seeds definitions not supported by noBulge-seed handler (and thus ignored)";
209#if INTARNA_IN_DEBUG_MODE
210 if ( !(
isSeedBound(i1,i2) ) )
throw std::runtime_error(
"SeedHandlerNoBulge::traceBackSeed(i1="+
toString(i1)+
",i2="+
toString(i2)+
") no seed known");
218 for (
size_t k=1; (k+1)<seedBps; k++) {
229getSeedE(
const size_t i1,
const size_t i2 )
const
232 SeedHash::const_iterator seedData =
seedForLeftEnd.find( SeedHash::key_type(i1,i2) );
242isSeedBound(
const size_t i1,
const size_t i2 )
const
255#if INTARNA_IN_DEBUG_MODE
256 if ( !(
isSeedBound(i1,i2) ) )
throw std::runtime_error(
"SeedHandlerNoBulge::getSeedLength1(i1="+
toString(i1)+
",i2="+
toString(i2)+
") no seed known");
269#if INTARNA_IN_DEBUG_MODE
270 if ( !(
isSeedBound(i1,i2) ) )
throw std::runtime_error(
"SeedHandlerNoBulge::getSeedLength2(i1="+
toString(i1)+
",i2="+
toString(i2)+
") no seed known");
298 for(
auto e=bpE.begin(); e!=bpE.end(); e++) { seedEhybrid += *e; }
308 seedForLeftEnd[ SeedHash::key_type(j1+1-seedBP,j2+1-seedBP) ] = seedEhybrid ;
Definition InteractionEnergy.h:20
virtual E_type getE_init() const =0
virtual E_type getE(const size_t i1, const size_t j1, const size_t i2, const size_t j2, const E_type hybridE) const
Definition InteractionEnergy.h:957
virtual E_type getED1(const size_t i1, const size_t j1) const
Definition InteractionEnergy.h:838
virtual Interaction::BasePair getBasePair(const size_t i1, const size_t i2) const
Definition InteractionEnergy.h:808
virtual bool isGU(const size_t i1, const size_t i2) const
Definition InteractionEnergy.h:699
virtual E_type getED2(const size_t i2, const size_t j2) const
Definition InteractionEnergy.h:848
Definition Interaction.h:28
PairingVec basePairs
interacting indices
Definition Interaction.h:229
static const size_t lastPos
Definition RnaSequence.h:57
Definition SeedConstraint.h:20
E_type getMaxEhybrid() const
Definition SeedConstraint.h:334
size_t getMaxUnpaired2() const
Definition SeedConstraint.h:352
E_type getMaxE() const
Definition SeedConstraint.h:316
const std::string & getExplicitSeeds() const
Definition SeedConstraint.h:424
bool isGUendAllowed() const
Definition SeedConstraint.h:451
size_t getBasePairs() const
Definition SeedConstraint.h:307
E_type getMaxED() const
Definition SeedConstraint.h:325
size_t getMaxUnpaired1() const
Definition SeedConstraint.h:343
Definition SeedHandlerNoBulge.h:21
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const
Definition SeedHandlerNoBulge.h:253
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 ~SeedHandlerNoBulge()
Definition SeedHandlerNoBulge.h:194
std::vector< E_type > StackingEnergyList
container to store stacking energies of seed base pairs
Definition SeedHandlerNoBulge.h:26
SeedHandlerNoBulge(const InteractionEnergy &energy, const SeedConstraint &seedConstraint)
Definition SeedHandlerNoBulge.h:174
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const
Definition SeedHandlerNoBulge.h:267
boost::unordered_map< Interaction::BasePair, E_type, Interaction::BasePair::Hash > SeedHash
container type for sparse seed information
Definition SeedHandlerNoBulge.h:29
void storeSeed(const size_t j1, const size_t j2, const StackingEnergyList &bpE)
Definition SeedHandlerNoBulge.h:281
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
virtual bool isSeedBound(const size_t i1, const size_t i2) const
Definition SeedHandlerNoBulge.h:242
SeedHash seedForLeftEnd
container to store seeds' hybridization energies
Definition SeedHandlerNoBulge.h:32
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const
Definition SeedHandlerNoBulge.h:204
virtual E_type getSeedE(const size_t i1, const size_t i2) const
Definition SeedHandlerNoBulge.h:229
Definition SeedHandler.h:17
const SeedConstraint & seedConstraint
the seed constraint to be applied
Definition SeedHandler.h:202
const InteractionEnergy & energy
the used energy function
Definition SeedHandler.h:199
virtual const SeedConstraint & getConstraint() const
Definition SeedHandler.h:237
#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
const E_type E_INF
Definition general.h:79