2#ifndef INTARNA_SEEDHANDLERMFE_H_
3#define INTARNA_SEEDHANDLERMFE_H_
9#include <boost/multi_array.hpp>
35 typedef boost::array<SeedRecMatrix::index, 5>
SeedIndex;
70 fillSeed(
const size_t i1,
const size_t j1,
const size_t i2,
const size_t j2);
95 getSeedE(
const size_t i1,
const size_t i2 )
const;
107 isSeedBound(
const size_t i1,
const size_t i2 )
const;
161 getSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2 )
const;
180 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 );
223 ,
const size_t i1,
const size_t i2,
const size_t bp
224 ,
const size_t u1,
const size_t u2 )
const;
246#if INTARNA_IN_DEBUG_MODE
247 if ( ! seedConstraint.getExplicitSeeds().empty()) {
248 LOG(WARNING) <<
"explicit seeds definitions not supported by mfe-seed handler (and thus ignored)";
270#if INTARNA_IN_DEBUG_MODE
275 if ( !(
isSeedBound(i1,i2) ) )
throw std::runtime_error(
"SeedHandlerMfe::traceBackSeed(i1="+
toString(i1)+
",i2="+
toString(i2)+
") no seed known (E_INF)");
295getSeedE(
const size_t i1,
const size_t i2 )
const
305isSeedBound(
const size_t i1,
const size_t i2 )
const
335getSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2 )
const
337#if INTARNA_IN_DEBUG_MODE
345 (SeedRecMatrix::index) (i1-
offset1)
346 , (SeedRecMatrix::index) (i2-
offset2)
347 , (SeedRecMatrix::index) bpInbetween
348 , (SeedRecMatrix::index) u1
349 , (SeedRecMatrix::index) u2 }}) );
357setSeedE(
const size_t i1,
const size_t i2,
const size_t bpInbetween,
const size_t u1,
const size_t u2,
const E_type E )
359#if INTARNA_IN_DEBUG_MODE
367 (SeedRecMatrix::index) (i1-
offset1)
368 , (SeedRecMatrix::index) (i2-
offset2)
369 , (SeedRecMatrix::index) bpInbetween
370 , (SeedRecMatrix::index) u1
371 , (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 getBasePairs() const
Definition SeedConstraint.h:307
size_t getMaxLength1() const
Definition SeedConstraint.h:370
Definition SeedHandlerMfe.h:21
boost::array< SeedRecMatrix::index, 5 > SeedIndex
Definition SeedHandlerMfe.h:35
virtual bool isSeedBound(const size_t i1, const size_t i2) const
Definition SeedHandlerMfe.h:305
size_t decodeSeedLength1(const size_t code) const
Definition SeedHandlerMfe.h:389
size_t offset2
offset for seq2 indices for the current (restricted) matrices
Definition SeedHandlerMfe.h:146
virtual size_t getSeedLength1(const size_t i1, const size_t i2) const
Definition SeedHandlerMfe.h:315
SeedHandlerMfe(const InteractionEnergy &energy, const SeedConstraint &seedConstraint)
Definition SeedHandlerMfe.h:235
virtual ~SeedHandlerMfe()
Definition SeedHandlerMfe.h:256
size_t decodeSeedLength2(const size_t code) const
Definition SeedHandlerMfe.h:399
virtual void traceBackSeed(Interaction &interaction, const size_t i1, const size_t i2) const
Definition SeedHandlerMfe.h:265
virtual size_t fillSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
Matrix< std::pair< E_type, size_t > > SeedMatrix
Definition SeedHandlerMfe.h:40
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:357
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:31
size_t offset1
offset for seq1 indices for the current (restricted) matrices
Definition SeedHandlerMfe.h:143
SeedRecMatrix seedE_rec
Definition SeedHandlerMfe.h:136
size_t encodeSeedLength(const size_t l1, const size_t l2) const
Definition SeedHandlerMfe.h:379
virtual E_type getSeedE(const size_t i1, const size_t i2) const
Definition SeedHandlerMfe.h:295
SeedMatrix seed
Definition SeedHandlerMfe.h:140
virtual size_t getSeedLength2(const size_t i1, const size_t i2) const
Definition SeedHandlerMfe.h:325
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 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