IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
HelixHandlerIdxOffset.h
Go to the documentation of this file.
1
2#ifndef INTARNA_HELIXHANDLERIDXOFFSET_H_
3#define INTARNA_HELIXHANDLERIDXOFFSET_H_
4
7
8#include <boost/multi_array.hpp>
9
10
11namespace IntaRNA {
12
21{
22
23public:
24
29 HelixHandlerIdxOffset( HelixHandler * helixHandler );
30
34 virtual ~HelixHandlerIdxOffset();
35
40 virtual
43
48 size_t getOffset1() const;
49
54 void setOffset1(size_t offset1);
55
60 size_t getOffset2() const;
61
66 void setOffset2(size_t offset2);
67
69
74 virtual
75 const HelixConstraint&
76 getConstraint() const;
77
90 virtual
91 size_t
92 fillHelix(const size_t i1, const size_t j1, const size_t i2, const size_t j2);
93
105 virtual
106 size_t
107 fillHelixSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2);
108
121 virtual
122 void
123 traceBackHelix( Interaction & interaction, const size_t i1, const size_t i2);
124
135 virtual
136 void
137 traceBackHelixSeed( Interaction & interaction, const size_t i1, const size_t i2);
138
148 virtual
149 E_type
150 getHelixE( const size_t i1, const size_t i2 ) const;
151
161 virtual
162 E_type
163 getHelixSeedE( const size_t i1, const size_t i2 ) const;
164
174 virtual
175 size_t
176 getHelixLength1( const size_t i1, const size_t i2 ) const;
177
178
188 virtual
189 size_t
190 getHelixLength2( const size_t i1, const size_t i2 ) const;
191
201 virtual
202 size_t
203 getHelixSeedLength1( const size_t i1, const size_t i2 ) const;
204
214 virtual
215 size_t
216 getHelixSeedLength2( const size_t i1, const size_t i2 ) const;
217
224 virtual
225 void
226 setSeedHandler( SeedHandler & seedHandler);
227
228protected:
229
232
235
239
242
245
246};
247
248
252
253
254inline
256HelixHandlerIdxOffset( HelixHandler * helixHandlerInstance )
257 :
258 helixHandlerOriginal( helixHandlerInstance )
259 , helixConstraintOffset( helixHandlerOriginal->getConstraint() )
260 , idxOffset1(0)
261 , idxOffset2(0)
262 , seedHandlerIdxOffset(NULL)
263{
264
265}
266
268
269inline
277
279
280inline
287
289
290inline
291const HelixConstraint&
297
299
300inline
301size_t
303fillHelix(const size_t i1min, const size_t i1max, const size_t i2min, const size_t i2max)
304{
305 return helixHandlerOriginal->fillHelix( i1min+idxOffset1, i1max+idxOffset1, i2min+idxOffset2, i2max+idxOffset2 );
306}
307
309
310inline
311size_t
313fillHelixSeed(const size_t i1min, const size_t i1max, const size_t i2min, const size_t i2max)
314{
315 return helixHandlerOriginal->fillHelixSeed( i1min+idxOffset1, i1max+idxOffset1, i2min+idxOffset2, i2max+idxOffset2 );
316}
317
319
320inline
321void
323traceBackHelix(Interaction &interaction
324 , const size_t i1
325 , const size_t i2
326 )
327{
329}
330
332
333inline
334void
337 , const size_t i1
338 , const size_t i2
339)
340{
342}
343
345
346inline
347E_type
349getHelixE(const size_t i1, const size_t i2) const
350{
352}
353
355
356inline
357E_type
359getHelixSeedE(const size_t i1, const size_t i2) const
360{
362}
363
365
366inline
367size_t
369getHelixLength1(const size_t i1, const size_t i2) const
370{
372}
373
375
376inline
377size_t
379getHelixLength2(const size_t i1, const size_t i2) const
380{
382}
383
385
386inline
387size_t
389getHelixSeedLength1(const size_t i1, const size_t i2) const
390{
392}
393
395
396inline
397size_t
399getHelixSeedLength2(const size_t i1, const size_t i2) const
400{
402}
403
405
406inline
407size_t
409getOffset1() const
410{
411 return idxOffset1;
412}
413
415
416inline
417size_t
419getOffset2() const
420{
421 return idxOffset2;
422}
423
425
426inline
427void
429setOffset1( const size_t offset )
430{
431#if INTARNA_IN_DEBUG_MODE
433 throw std::runtime_error("HelixHandlerIdxOffset.setOffset1("+toString(offset)
434 +") offset > seq1.length "+toString(helixHandlerOriginal->getInteractionEnergy().size1()));
435 }
436#endif
437 // set idx offset
438 this->idxOffset1 = offset;
439}
440
442
443inline
444void
446setOffset2( const size_t offset )
447{
448#if INTARNA_IN_DEBUG_MODE
450 throw std::runtime_error("HelixHandlerIdxOffset.setOffset1("+toString(offset)
451 +") offset > seq1.length "+toString(helixHandlerOriginal->getInteractionEnergy().size2()));
452 }
453#endif
454 // set idx offset
455 this->idxOffset2 = offset;
456}
457
459
460inline
461void
463setSeedHandler(SeedHandler & seedHandler)
464{
465 // cast input
466 SeedHandlerIdxOffset * shOffset = dynamic_cast<SeedHandlerIdxOffset*>(&seedHandler);
467
468#if INTARNA_IN_DEBUG_MODE
469 // sanity check
470 if (shOffset == NULL) {
471 throw std::runtime_error("HelixHandlerIdxOffset.setSeedHandler(). Given seedHandler is not of type SeedHandlerIdxOffset.");
472 }
473#endif
474
475 // store locally (might be useful later)
476 seedHandlerIdxOffset = shOffset;
477
478 // forward seedHandler to helixHandler
480}
481
482} // namespace
483#endif /* HELIXHANDLERIDXOFFSET_H_ */
Definition HelixConstraint.h:19
Definition HelixHandlerIdxOffset.h:21
virtual void traceBackHelixSeed(Interaction &interaction, const size_t i1, const size_t i2)
Definition HelixHandlerIdxOffset.h:336
virtual void setSeedHandler(SeedHandler &seedHandler)
Definition HelixHandlerIdxOffset.h:463
virtual const InteractionEnergy & getInteractionEnergy() const
Definition HelixHandlerIdxOffset.h:283
size_t getOffset2() const
Definition HelixHandlerIdxOffset.h:419
size_t getOffset1() const
Definition HelixHandlerIdxOffset.h:409
virtual ~HelixHandlerIdxOffset()
Definition HelixHandlerIdxOffset.h:270
void setOffset2(size_t offset2)
Definition HelixHandlerIdxOffset.h:446
virtual const HelixConstraint & getConstraint() const
Definition HelixHandlerIdxOffset.h:293
virtual size_t getHelixLength1(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:369
virtual size_t fillHelix(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
Definition HelixHandlerIdxOffset.h:303
virtual size_t getHelixSeedLength2(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:399
SeedHandlerIdxOffset * seedHandlerIdxOffset
Definition HelixHandlerIdxOffset.h:238
virtual size_t getHelixSeedLength1(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:389
HelixHandler * helixHandlerOriginal
the index shifted helixHandler
Definition HelixHandlerIdxOffset.h:231
size_t idxOffset2
offset for indices in seq2
Definition HelixHandlerIdxOffset.h:244
virtual size_t fillHelixSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
Definition HelixHandlerIdxOffset.h:313
void setOffset1(size_t offset1)
Definition HelixHandlerIdxOffset.h:429
virtual E_type getHelixSeedE(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:359
HelixHandlerIdxOffset(HelixHandler *helixHandler)
Definition HelixHandlerIdxOffset.h:256
virtual void traceBackHelix(Interaction &interaction, const size_t i1, const size_t i2)
Definition HelixHandlerIdxOffset.h:323
HelixConstraint helixConstraintOffset
the index shifted helix constraint
Definition HelixHandlerIdxOffset.h:234
virtual E_type getHelixE(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:349
virtual size_t getHelixLength2(const size_t i1, const size_t i2) const
Definition HelixHandlerIdxOffset.h:379
size_t idxOffset1
offset for indices in seq1
Definition HelixHandlerIdxOffset.h:241
Definition HelixHandler.h:16
virtual size_t fillHelixSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)=0
virtual void traceBackHelix(Interaction &interaction, const size_t i1, const size_t i2)=0
virtual size_t fillHelix(const size_t i1, const size_t j1, const size_t i2, const size_t j2)=0
virtual const InteractionEnergy & getInteractionEnergy() const =0
virtual E_type getHelixSeedE(const size_t i1, const size_t i2) const =0
virtual size_t getHelixSeedLength1(const size_t i1, const size_t i2) const =0
virtual void setSeedHandler(SeedHandler &seedHandler)=0
virtual E_type getHelixE(const size_t i1, const size_t i2) const =0
virtual size_t getHelixSeedLength2(const size_t i1, const size_t i2) const =0
virtual void traceBackHelixSeed(Interaction &interaction, const size_t i1, const size_t i2)=0
virtual size_t getHelixLength1(const size_t i1, const size_t i2) const =0
virtual size_t getHelixLength2(const size_t i1, const size_t i2) const =0
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
Definition SeedHandlerIdxOffset.h:23
virtual SeedHandler & getOriginalSeedHandler()
Definition SeedHandlerIdxOffset.h:456
Definition SeedHandler.h:17
#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