IntaRNA 3.4.1
RNA-RNA interaction prediction | C++ API
Loading...
Searching...
No Matches
PredictorMfe.h
Go to the documentation of this file.
1
2#ifndef INTARNA_PREDICTORMFE_H_
3#define INTARNA_PREDICTORMFE_H_
4
5
6#include "IntaRNA/Predictor.h"
7
11
12#include <functional>
13#include <list>
14#include <memory>
15#include <utility>
16
17#include <boost/unordered_map.hpp>
18
19namespace IntaRNA {
20
28class PredictorMfe : public Predictor {
29
30protected:
43 virtual bool predictPerSeed(const IndexRange & r1, const IndexRange & r2,
45 const std::function<Predictor *(OutputHandler &, PredictionTracker *, SeedHandler *)> & factory);
46
52 std::unique_ptr<OutputHandlerSeedCandidates> ownedSeedCandidates;
54 bool perSeedPass = false;
55
60 template < class ValueType >
62 public:
63
70 BestInteraction( const ValueType val=(std::numeric_limits<ValueType>::has_infinity ? std::numeric_limits<ValueType>::infinity() : std::numeric_limits<ValueType>::max())
71 , const size_t j1=RnaSequence::lastPos, const size_t j2=RnaSequence::lastPos )
72 : val(val), j1(j1), j2(j2)
73 {}
74
75 public:
77 ValueType val;
79 size_t j1;
81 size_t j2;
82 };
83
88
89
90
91public:
92
105
106 virtual ~PredictorMfe() override;
107
108protected:
109
110
112 using Predictor::energy;
113
115 using Predictor::output;
116
119
121 typedef std::list<Interaction> InteractionList;
122
125
127 typedef boost::unordered_map< Interaction::BasePair, BestInteractionE, Interaction::BasePair::Hash > HashIdx2E;
128
132
136 std::pair< IndexRangeList, IndexRangeList > reportedInteractions;
137
141 virtual
142 void
143 initOptima() override;
144
154 bool
155 isValidOutputSite( const size_t i1, const size_t j1,
156 const size_t i2, const size_t j2 ) const;
157
170 virtual
171 void
172 updateOptima( const size_t i1, const size_t j1
173 , const size_t i2, const size_t j2
174 , const E_type energy
175 , const bool isHybridE
176 , const bool incrementZall ) override;
177
178
185 virtual
186 void
187 traceBack( Interaction & interaction ) = 0;
188
189
200 virtual
201 void
203
204
216 virtual
217 void
218 updateMfe4leftEnd(const size_t i1, const size_t j1
219 , const size_t i2, const size_t j2
220 , const Interaction & curInteraction );
221
228 virtual
229 void
230 reportOptima() override;
231
232};
233
234} // namespace
235
236#endif /* INTARNA_PREDICTORMFE_H_ */
Definition IndexRange.h:20
Definition InteractionEnergy.h:20
Definition Interaction.h:28
Definition OutputHandlerSeedCandidates.h:16
Definition OutputHandler.h:22
Definition PredictionTracker.h:15
Definition PredictorMfe.h:61
size_t j1
right end of the interaction in seq1
Definition PredictorMfe.h:79
BestInteraction(const ValueType val=(std::numeric_limits< ValueType >::has_infinity ? std::numeric_limits< ValueType >::infinity() :std::numeric_limits< ValueType >::max()), const size_t j1=RnaSequence::lastPos, const size_t j2=RnaSequence::lastPos)
Definition PredictorMfe.h:70
ValueType val
value to be stored for the interaction, e.g. energy
Definition PredictorMfe.h:77
size_t j2
right end of the interaction in seq2
Definition PredictorMfe.h:81
Definition PredictorMfe.h:28
virtual void traceBack(Interaction &interaction)=0
std::pair< IndexRangeList, IndexRangeList > reportedInteractions
Definition PredictorMfe.h:136
PredictorMfe(const InteractionEnergy &energy, OutputHandler &output, PredictionTracker *predTracker)
PredictionTracker * predTracker
access to the prediction tracker of the super class
Definition Predictor.h:91
OutputHandlerSeedCandidates * seedCandidates
Active collector; null on the unchanged default path.
Definition PredictorMfe.h:50
virtual void getNextBest(Interaction &curBest)
std::list< Interaction > InteractionList
list of interactions
Definition PredictorMfe.h:121
InteractionList mfeInteractions
mfe interaction boundaries
Definition PredictorMfe.h:124
virtual void updateOptima(const size_t i1, const size_t j1, const size_t i2, const size_t j2, const E_type energy, const bool isHybridE, const bool incrementZall) override
InteractionEnergyIdxOffset energy
access to the interaction energy handler of the super class
Definition Predictor.h:85
BestInteraction< E_type > BestInteractionE
BestInteraction that stores an energy value.
Definition PredictorMfe.h:85
virtual void reportOptima() override
std::unique_ptr< OutputHandlerSeedCandidates > ownedSeedCandidates
Local collector for API callers that do not provide a regional collector.
Definition PredictorMfe.h:52
OutputHandler & output
access to the output handler of the super class
Definition Predictor.h:88
virtual bool predictPerSeed(const IndexRange &r1, const IndexRange &r2, SeedHandlerIdxOffset &seeds, const std::function< Predictor *(OutputHandler &, PredictionTracker *, SeedHandler *)> &factory)
HashIdx2E mfe4leftEnd
Definition PredictorMfe.h:131
virtual void initOptima() override
boost::unordered_map< Interaction::BasePair, BestInteractionE, Interaction::BasePair::Hash > HashIdx2E
hash to map index pairs to BestInteractionE entries
Definition PredictorMfe.h:127
bool isValidOutputSite(const size_t i1, const size_t j1, const size_t i2, const size_t j2) const
virtual ~PredictorMfe() override
virtual void updateMfe4leftEnd(const size_t i1, const size_t j1, const size_t i2, const size_t j2, const Interaction &curInteraction)
bool perSeedPass
Enforce complete-site spans before ranking a seed-constrained child pass.
Definition PredictorMfe.h:54
BestInteraction< Z_type > BestInteractionZ
BestInteraction that stores a partition function value.
Definition PredictorMfe.h:87
Definition Predictor.h:21
void incrementZall(const Z_type partZ)
Definition Predictor.h:220
PredictionTracker * predTracker
prediction tracker to be used
Definition Predictor.h:91
InteractionEnergyIdxOffset energy
energy computation handler
Definition Predictor.h:85
OutputHandler & output
interaction output handler
Definition Predictor.h:88
Definition RnaSequence.h:29
Definition SeedHandlerIdxOffset.h:23
Definition SeedHandler.h:17
Definition Accessibility.h:13
int E_type
type for energy values (energy + accessibility [ED]) (internally)
Definition general.h:78