LocARNA-2.0.0
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 RnaEnsemble;
15  class PFoldParams;
16  // template<class T> class SparseVector<T>;
17 
21  class RnaDataImpl {
22  public:
25 
27 
30 
32  double p_bpcut_;
33  size_t max_bp_span_;
34 
41 
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, double p_bpcut, size_t max_bp_span);
78 
79  // ----------------------------------------
80  // METHODS
81 
92  void
93  init_from_fixed_structure(const RnaStructure &structure,
94  const PFoldParams &pfoldparams);
95 
103  void
104  init_from_rna_ensemble(const RnaEnsemble &rna_ensemble,
105  const PFoldParams &pfoldparams);
106 
116  std::istream &
117  read_pp_sequence(std::istream &in);
118 
127  std::istream &
128  read_pp_arc_probabilities(std::istream &in);
129 
137  std::ostream &
138  write_pp_sequence(std::ostream &out) const;
139 
154  std::ostream &
155  write_pp_arc_probabilities(std::ostream &out,
156  double p_outbpcut,
157  bool stacking) const;
158 
170  void
172  const RnaData &rna_dataA,
173  const RnaData &rna_dataB,
174  double p_expA,
175  double p_expB,
176  double f_penalty,
177  bool stacking);
178 
208  double
209  consensus_probability(double pA,
210  double pB,
211  size_t sizeA,
212  size_t sizeB,
213  double p_expA,
214  double p_expB,
215  double p_penalty) const;
216 
217  template <class KEY>
218  class keyvec {
219  public:
220  typedef std::pair<KEY, arc_prob_matrix_t::value_type> kvpair_t;
221 
222  typedef std::vector<kvpair_t> vec_t;
223 
224  // compare for min heap
225  static bool
226  comp(const kvpair_t &x, const kvpair_t &y) {
227  return x.second > y.second;
228  }
229  };
230 
236  void
237  drop_worst_bps(size_t keep);
238 
239  }; // end class RnaDataImpl
240 
241 } // end namespace LocARNA
242 
243 #endif // LOCARNA_RNA_DATA_IMPL_HH
Definition: alignment.hh:73
Represents a multiple alignment.
Definition: multiple_alignment.hh:65
Parameters for partition folding.
Definition: pfold_params.hh:32
Definition: rna_data_impl.hh:218
Implementation of RnaData.
Definition: rna_data_impl.hh:21
std::istream & read_pp_sequence(std::istream &in)
read sequence section of pp-format
Definition: rna_data.cc:1008
double p_bpcut_
cutoff probabilitiy for base pair
Definition: rna_data_impl.hh:32
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:1313
arc_prob_matrix_t arc_probs_
Definition: rna_data_impl.hh:40
double consensus_probability(double pA, double pB, size_t sizeA, size_t sizeB, double p_expA, double p_expB, double p_penalty) const
Consensus probability.
Definition: rna_data.cc:1544
MultipleAlignment sequence_
the sequence
Definition: rna_data_impl.hh:29
bool has_stacking_
whether stacking probabilities are available
Definition: rna_data_impl.hh:52
RnaData * self_
Definition: rna_data_impl.hh:26
void drop_worst_bps(size_t keep)
Drop base pairs with lowest probability.
Definition: rna_data.cc:1580
void init_from_rna_ensemble(const RnaEnsemble &rna_ensemble, const PFoldParams &pfoldparams)
initialize from rna ensemble
Definition: rna_data.cc:509
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:105
std::istream & read_pp_arc_probabilities(std::istream &in)
read section of base pair probabilities of pp-format
Definition: rna_data.cc:1032
void init_from_fixed_structure(const RnaStructure &structure, const PFoldParams &pfoldparams)
initialize from fixed structure
Definition: rna_data.cc:392
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, double f_penalty, bool stacking)
Initialize as consensus of two aligned RNAs.
Definition: rna_data.cc:1475
RnaData::arc_prob_matrix_t arc_prob_matrix_t
type for matrix of arc probabilities
Definition: rna_data_impl.hh:24
std::ostream & write_pp_sequence(std::ostream &out) const
write section of base pair probabilities of pp-format
Definition: rna_data.cc:1267
arc_prob_matrix_t arc_2_probs_
Definition: rna_data_impl.hh:49
represent sparsified data of RNA ensemble
Definition: rna_data.hh:44
Represents the raw structure ensemble data for an RNA.
Definition: rna_ensemble.hh:41
An RNA secondary structure.
Definition: rna_structure.hh:32
Definition: aligner.cc:15