IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
HelixHandlerNoBulgeMax.h
Go to the documentation of this file.
1
2#ifndef INTARNA_HELIXHANDLERNOBULGEMAX_H_
3#define INTARNA_HELIXHANDLERNOBULGEMAX_H_
4
8
9#include <boost/unordered_map.hpp>
10
11namespace IntaRNA {
12
20
21
22public:
23
25 typedef std::pair<E_type, size_t> HelixData;
26
30 typedef boost::unordered_map< Interaction::BasePair, HelixData, Interaction::BasePair::Hash > HelixHash;
31
32protected:
33
35 typedef HelixHash::key_type BP;
36
37public:
38
46 , SeedHandler * const seedHandler = NULL
47 );
48
53
58 virtual
59 const HelixConstraint&
60 getConstraint() const;
61
66 virtual
69
70
79 virtual
80 size_t
81 fillHelix( const size_t i1, const size_t j1, const size_t i2, const size_t j2 );
82
91 virtual
92 size_t
93 fillHelixSeed( const size_t i1, const size_t j1, const size_t i2, const size_t j2 );
94
105 virtual
106 void
107 traceBackHelix( Interaction & interaction, const size_t i1, const size_t i2);
108
117 virtual
118 void
119 traceBackHelixSeed( Interaction & interaction, const size_t i1, size_t i2);
120
128 virtual
129 E_type getHelixE( const size_t i1, const size_t i2 ) const;
130
137 virtual
138 E_type getHelixSeedE( const size_t i1, const size_t i2 ) const;
139
146 virtual
147 size_t
148 getHelixLength1( const size_t i1, const size_t i2 ) const;
149
156 virtual
157 size_t
158 getHelixLength2( const size_t i1, const size_t i2 ) const;
159
160
167 virtual
168 size_t
169 getHelixSeedLength1( const size_t i1, const size_t i2 ) const;
170
177 virtual
178 size_t
179 getHelixSeedLength2( const size_t i1, const size_t i2 ) const;
180
186
187protected:
188
195 size_t
196 encodeHelixSeedLength( const size_t l1, const size_t l2 ) const;
197
204 size_t
205 decodeHelixSeedLength1( const size_t code ) const;
206
213 size_t
214 decodeHelixSeedLength2( const size_t code ) const;
215
216protected:
217
220
223
226
229
230 // seedHandler used in helixSeed computation
232};
233
237
238inline
240 const InteractionEnergy & energy
241 , const HelixConstraint & helixConstraint
242 , SeedHandler * const seedHandler
243)
244 :
245 energy(energy)
246 , helixConstraint(helixConstraint)
247 , helix()
248 , helixSeed()
249{
250 if (seedHandler != NULL) {
252 }
253}
254
256
257inline
261
263
264inline
268{
269 return energy;
270}
271
273
274inline
275const HelixConstraint&
281
283
284inline
285E_type
287getHelixE(const size_t i1, const size_t i2) const
288{
289 // try to locate helix information
290 HelixHash::const_iterator data = helix.find(BP(i1,i2));
291 // return respective value
292 return (data==helix.end()) ? E_INF : data->second.first;
293}
294
296
297inline
298E_type
300getHelixSeedE(const size_t i1, const size_t i2) const
301{
302 // try to locate helix information
303 HelixHash::const_iterator data = helixSeed.find(BP(i1,i2));
304 // return respective value
305 return (data==helixSeed.end()) ? E_INF : data->second.first;
306}
307
309
310inline
311size_t
313getHelixLength1(const size_t i1, const size_t i2) const
314{
315 // try to locate helix information
316 HelixHash::const_iterator data = helix.find(BP(i1,i2));
317 // return respective value
318 return (data==helix.end()) ? 0 : data->second.second;
319}
320
322
323inline
324size_t
326getHelixLength2(const size_t i1, const size_t i2) const
327{
328 // try to locate helix information
329 HelixHash::const_iterator data = helix.find(BP(i1,i2));
330 // return respective value
331 return (data==helix.end()) ? 0 : data->second.second;
332}
333
335
336inline
337size_t
339getHelixSeedLength1(const size_t i1, const size_t i2) const
340{
341 // try to locate helix information
342 HelixHash::const_iterator data = helixSeed.find(BP(i1,i2));
343 // return respective value
344 return (data==helixSeed.end()) ? 0 : decodeHelixSeedLength1(data->second.second);
345}
346
348
349inline
350size_t
352getHelixSeedLength2(const size_t i1, const size_t i2) const
353{
354 // try to locate helix information
355 HelixHash::const_iterator data = helixSeed.find(BP(i1,i2));
356 // return respective value
357 return (data==helixSeed.end()) ? 0 : decodeHelixSeedLength2(data->second.second);
358}
359
361
362inline
363size_t
365encodeHelixSeedLength( const size_t l1, const size_t l2 ) const
366{
368}
369
371
372inline
373size_t
375decodeHelixSeedLength1( const size_t code ) const
376{
378}
379
381
382inline
383size_t
385decodeHelixSeedLength2( const size_t code ) const
386{
388}
389
391
392inline
393void
395 this->seedHandler = &seedHandler;
396}
397
399
400} // namespace
401#endif /* HELIXHANDLERNOBULGEMAX_H_ */
Definition HelixConstraint.h:19
size_t getMaxLength1() const
Definition HelixConstraint.h:229
Definition HelixHandlerNoBulgeMax.h:19
boost::unordered_map< Interaction::BasePair, HelixData, Interaction::BasePair::Hash > HelixHash
Definition HelixHandlerNoBulgeMax.h:30
virtual E_type getHelixE(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:287
const InteractionEnergy & energy
the used energy function
Definition HelixHandlerNoBulgeMax.h:219
size_t encodeHelixSeedLength(const size_t l1, const size_t l2) const
Definition HelixHandlerNoBulgeMax.h:365
void setSeedHandler(SeedHandler &seedHandler)
Definition HelixHandlerNoBulgeMax.h:394
HelixHandlerNoBulgeMax(const InteractionEnergy &energy, const HelixConstraint &helixConstraint, SeedHandler *const seedHandler=NULL)
Definition HelixHandlerNoBulgeMax.h:239
virtual const InteractionEnergy & getInteractionEnergy() const
Definition HelixHandlerNoBulgeMax.h:267
virtual E_type getHelixSeedE(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:300
size_t decodeHelixSeedLength2(const size_t code) const
Definition HelixHandlerNoBulgeMax.h:385
virtual void traceBackHelix(Interaction &interaction, const size_t i1, const size_t i2)
HelixHash::key_type BP
shortening typedef
Definition HelixHandlerNoBulgeMax.h:35
virtual size_t getHelixLength2(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:326
virtual size_t getHelixLength1(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:313
virtual size_t getHelixSeedLength2(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:352
virtual size_t fillHelixSeed(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
virtual const HelixConstraint & getConstraint() const
Definition HelixHandlerNoBulgeMax.h:277
HelixHash helix
the helix mfe information for helix starting at (i1, i2)
Definition HelixHandlerNoBulgeMax.h:225
std::pair< E_type, size_t > HelixData
type used to store helix information (energy and length)
Definition HelixHandlerNoBulgeMax.h:25
virtual ~HelixHandlerNoBulgeMax()
Definition HelixHandlerNoBulgeMax.h:258
const HelixConstraint & helixConstraint
the helix constraint to be applied
Definition HelixHandlerNoBulgeMax.h:222
size_t decodeHelixSeedLength1(const size_t code) const
Definition HelixHandlerNoBulgeMax.h:375
virtual void traceBackHelixSeed(Interaction &interaction, const size_t i1, size_t i2)
virtual size_t getHelixSeedLength1(const size_t i1, const size_t i2) const
Definition HelixHandlerNoBulgeMax.h:339
virtual size_t fillHelix(const size_t i1, const size_t j1, const size_t i2, const size_t j2)
SeedHandler * seedHandler
Definition HelixHandlerNoBulgeMax.h:231
HelixHash helixSeed
the helix mfe information for helix with seed starting at (i1, i2)
Definition HelixHandlerNoBulgeMax.h:228
Definition HelixHandler.h:16
Definition InteractionEnergy.h:20
Definition Interaction.h:28
size_t getMaxLength1() const
Definition SeedConstraint.h:370
Definition SeedHandler.h:17
virtual const SeedConstraint & getConstraint() const
Definition SeedHandler.h:237
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