2#ifndef INTARNA_SEEDHANDLERMFE_H_
3#define INTARNA_SEEDHANDLERMFE_H_
9#include <boost/multi_array.hpp>
42 typedef boost::array<SeedRecMatrix::index, 5>
SeedIndex;
77 fillSeed(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2)
override;
102 getSeedE(
const size_t i1,
const size_t i2 )
const override;
114 isSeedBound(
const size_t i1,
const size_t i2 )
const override;
124 getSeedLength1(
const size_t i1,
const size_t i2 )
const override;
134 getSeedLength2(
const size_t i1,
const size_t i2 )
const override;
168 getSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2 )
const;
187 setSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2,
const E_type E );
230 ,
const size_t i1,
const size_t i2,
const size_t bp
231 ,
const size_t u1,
const size_t u2 )
const;
253#if INTARNA_IN_DEBUG_MODE
254 if ( ! seedConstraint.getExplicitSeeds().empty()) {
255 LOG(WARNING) <<
"explicit seeds definitions not supported by mfe-seed handler (and thus ignored)";
277#if INTARNA_IN_DEBUG_MODE
282 if ( !(
isSeedBound(i1,i2) ) )
throw std::runtime_error(
"SeedHandlerMfe::traceBackSeed(i1="+
toString(i1)+
",i2="+
toString(i2)+
") no seed known (E_INF)");
302getSeedE(
const size_t i1,
const size_t i2 )
const
312isSeedBound(
const size_t i1,
const size_t i2 )
const
342getSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2 )
const
344#if INTARNA_IN_DEBUG_MODE
352 (SeedRecMatrix::index) (i1-
offset1)
353 , (SeedRecMatrix::index) (i2-
offset2)
354 , (SeedRecMatrix::index) bpInbetween
355 , (SeedRecMatrix::index) u1
356 , (SeedRecMatrix::index) u2 }}) );
364setSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2,
const E_type E )
366#if INTARNA_IN_DEBUG_MODE
374 (SeedRecMatrix::index) (i1-
offset1)
375 , (SeedRecMatrix::index) (i2-
offset2)
376 , (SeedRecMatrix::index) bpInbetween
377 , (SeedRecMatrix::index) u1
378 , (SeedRecMatrix::index) u2 }}) ) = E;
Definition InteractionEnergy.h:20
Definition Interaction.h:28
std::size_t size2() const noexcept
Definition Matrix.h:164
std::size_t size1() const noexcept
Definition Matrix.h:159
Definition SeedConstraint.h:20
size_t getMaxUnpaired2() const
Definition SeedConstraint.h:352
size_t getBasePairs() const
Definition SeedConstraint.h:307
size_t getMaxLength1() const
Definition SeedConstraint.h:370
size_t getMaxUnpaired1() const
Definition SeedConstraint.h:343
Definition SeedHandlerMfe.h:21
virtual bool isSeedBound(const size_t i1, const size_t i2) const override
Definition SeedHandlerMfe.h:312
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const override
Definition SeedHandlerMfe.h:332
boost::array< SeedRecMatrix::index, 5 > SeedIndex
Definition SeedHandlerMfe.h:42
virtual bool guaranteesStackOnlySeeds() const override
Definition SeedHandlerMfe.h:414
size_t decodeSeedLength1(const size_t code) const
Definition SeedHandlerMfe.h:396
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2) override
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const override
Definition SeedHandlerMfe.h:272
size_t offset2
offset for seq2 indices for the current (restricted) matrices
Definition SeedHandlerMfe.h:153
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const override
Definition SeedHandlerMfe.h:322
SeedHandlerMfe(const InteractionEnergy &energy, const SeedConstraint &seedConstraint)
Definition SeedHandlerMfe.h:242
virtual E_type getSeedE(const size_t i1, const size_t i2) const override
Definition SeedHandlerMfe.h:302
size_t decodeSeedLength2(const size_t code) const
Definition SeedHandlerMfe.h:406
virtual ~SeedHandlerMfe() override
Definition SeedHandlerMfe.h:263
Matrix< std::pair< E_type, size_t > > SeedMatrix
Definition SeedHandlerMfe.h:47
void setSeedE(const size_t i1, const size_t i2, const size_t bpInbetween, const size_t u1, const size_t u2, const E_type E)
Definition SeedHandlerMfe.h:364
void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2, const size_t bp, const size_t u1, const size_t u2) const
boost::multi_array< E_type, 5 > SeedRecMatrix
Definition SeedHandlerMfe.h:38
size_t offset1
offset for seq1 indices for the current (restricted) matrices
Definition SeedHandlerMfe.h:150
SeedRecMatrix seedE_rec
Definition SeedHandlerMfe.h:143
size_t encodeSeedLength(const size_t l1, const size_t l2) const
Definition SeedHandlerMfe.h:386
SeedMatrix seed
Definition SeedHandlerMfe.h:147
Definition SeedHandler.h:17
const SeedConstraint & seedConstraint
the seed constraint to be applied
Definition SeedHandler.h:209
const InteractionEnergy & energy
the used energy function
Definition SeedHandler.h:206
virtual const SeedConstraint & getConstraint() const
Definition SeedHandler.h:244
#define E_isNotINF(e)
check if a given energy is NOT set to E_INF
Definition general.h:137
#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