LocARNA-1.8.11
rna_data_impl.hh
1 #ifndef LOCARNA_RNA_DATA_IMPL_HH
2 #define LOCARNA_RNA_DATA_IMPL_HH
3 
4 #ifdef HAVE_CONFIG_H
5 # include <config.h>
6 #endif
7 
8 #include <iosfwd>
9 #include "rna_data.hh"
10 #include "sequence.hh"
11 
12 namespace LocARNA {
13 
14  class MultipleAlignment;
15  class RnaEnsemble;
16  class PFoldParams;
17  // template<class T> class SparseVector<T>;
18 
22  class RnaDataImpl {
23  public:
26 
28 
31 
33  double p_bpcut_;
34 
40  arc_prob_matrix_t arc_probs_;
41 
49  arc_prob_matrix_t arc_2_probs_;
50 
53 
64  RnaDataImpl(RnaData *self,
65  const RnaData &rna_dataA,
66  const RnaData &rna_dataB,
67  const Alignment::edges_t &alignment,
68  double p_expA,
69  double p_expB);
70 
77  RnaDataImpl(RnaData *self,
78  double p_bpcut);
79 
80  // ----------------------------------------
81  // METHODS
82 
83 
90  void
92  bool stacking);
93 
101  void
102  init_from_rna_ensemble(const RnaEnsemble &rna_ensemble,
103  const PFoldParams &pfoldparams);
104 
114  std::istream &
115  read_pp_sequence(std::istream &in);
116 
125  std::istream &
126  read_pp_arc_probabilities(std::istream &in);
127 
135  std::ostream &
136  write_pp_sequence(std::ostream &out) const;
137 
152  std::ostream &
153  write_pp_arc_probabilities(std::ostream &out,
154  double p_outbpcut,
155  bool stacking) const;
156 
157 
168  void
170  const RnaData &rna_dataA,
171  const RnaData &rna_dataB,
172  double p_expA,
173  double p_expB,
174  bool stacking
175  );
176 
195  double
196  consensus_probability(double pA,
197  double pB,
198  size_t sizeA,
199  size_t sizeB,
200  double p_expA,
201  double p_expB) const;
202 
203 
204  template<class KEY>
205  class keyvec {
206  public:
207  typedef std::pair<KEY,arc_prob_matrix_t::value_t> kvpair_t;
208 
209  typedef std::vector<kvpair_t> vec_t;
210 
211  // compare for min heap
212  static
213  bool comp(const kvpair_t &x, const kvpair_t &y) {
214  return x.second>y.second;
215  }
216  };
217 
223  void
224  drop_worst_bps(size_t keep);
225 
226  }; // end class RnaDataImpl
227 
228 
229 } //end namespace LocARNA
230 
231 
232 #endif // LOCARNA_RNA_DATA_IMPL_HH
represent sparsified data of RNA ensemble
Definition: rna_data.hh:42
MultipleAlignment sequence_
the sequence
Definition: rna_data_impl.hh:30
void init_as_consensus_dot_plot(const Alignment::edges_t &edges, const RnaData &rna_dataA, const RnaData &rna_dataB, double p_expA, double p_expB, bool stacking)
Initialize as consensus of two aligned RNAs.
Definition: rna_data.cc:1498
pair of vector of alignment edges
Definition: alignment.hh:63
void drop_worst_bps(size_t keep)
Drop base pairs with lowest probability.
Definition: rna_data.cc:1587
RnaData::arc_prob_matrix_t arc_prob_matrix_t
type for matrix of arc probabilities
Definition: rna_data_impl.hh:25
double p_bpcut_
cutoff probabilitiy for base pair
Definition: rna_data_impl.hh:33
RnaDataImpl(RnaData *self, const RnaData &rna_dataA, const RnaData &rna_dataB, const Alignment::edges_t &alignment, double p_expA, double p_expB)
Construct as consensus of two aligned RNAs.
Definition: rna_data.cc:108
Definition: aligner.cc:17
std::istream & read_pp_sequence(std::istream &in)
read sequence section of pp-format
Definition: rna_data.cc:1039
Implementation of RnaData.
Definition: rna_data_impl.hh:22
std::ostream & write_pp_arc_probabilities(std::ostream &out, double p_outbpcut, bool stacking) const
write section of base pair probabilities of pp-format
Definition: rna_data.cc:1331
Parameters for partition folding.
Definition: pfold_params.hh:19
std::ostream & write_pp_sequence(std::ostream &out) const
write section of base pair probabilities of pp-format
Definition: rna_data.cc:1286
void init_from_rna_ensemble(const RnaEnsemble &rna_ensemble, const PFoldParams &pfoldparams)
initialize from rna ensemble
Definition: rna_data.cc:528
std::istream & read_pp_arc_probabilities(std::istream &in)
read section of base pair probabilities of pp-format
Definition: rna_data.cc:1065
arc_prob_matrix_t arc_2_probs_
Definition: rna_data_impl.hh:49
RnaData * self_
Definition: rna_data_impl.hh:27
Represents the raw structure ensemble data for an RNA.
Definition: rna_ensemble.hh:40
void init_from_fixed_structure(const SequenceAnnotation &structure, bool stacking)
initialize from fixed structure
Definition: rna_data.cc:395
double consensus_probability(double pA, double pB, size_t sizeA, size_t sizeB, double p_expA, double p_expB) const
Consensus probability.
Definition: rna_data.cc:1564
Annotation of a sequence.
Definition: sequence_annotation.hh:24
arc_prob_matrix_t arc_probs_
Definition: rna_data_impl.hh:40
Definition: rna_data_impl.hh:205
Represents a multiple alignment.
Definition: multiple_alignment.hh:65
bool has_stacking_
whether stacking probabilities are available
Definition: rna_data_impl.hh:52