LocARNA-1.8.11
rna_data.hh
1 #ifndef LOCARNA_RNA_DATA_HH
2 #define LOCARNA_RNA_DATA_HH
3 
4 #ifdef HAVE_CONFIG_H
5 # include <config.h>
6 #endif
7 
8 #include <iosfwd>
9 #include "aux.hh"
10 #include "sparse_matrix.hh"
11 
12 extern "C" {
13 # include <ViennaRNA/data_structures.h>
14 }
15 
16 namespace LocARNA {
17 
18  class MultipleAlignment;
19  class Sequence;
20  class Alignment;
21  class RnaEnsemble;
22  class RnaDataImpl;
23  class PFoldParams;
24  class SequenceAnnotation;
25 
42  class RnaData {
43  protected:
44  friend class RnaDataImpl;
45  friend class ExtRnaDataImpl;
47 
48  public:
49 
52 
53  typedef size_t size_type;
54 
67  RnaData(const RnaEnsemble &rna_ensemble,
68  double p_bpcut,
69  double max_bps_length_ratio,
70  const PFoldParams &pfoldparams);
71 
91  RnaData(const std::string &filename,
92  double p_bpcut,
93  double max_bps_length_ratio,
94  const PFoldParams &pfoldparams
95  );
96 
116  RnaData(const RnaData &rna_dataA,
117  const RnaData &rna_dataB,
118  const Alignment &alignment,
119  double p_expA,
120  double p_expB,
121  bool only_local=false
122  );
123 
124  protected:
130  explicit
131  RnaData(double p_bpcut);
132 
133  private:
137  RnaData(const RnaData &);
138  public:
139 
143  virtual
144  ~RnaData();
145 
146  private:
150  RnaData &
151  operator =(const RnaData &);
152 
153  public:
154 
159  const Sequence &
160  sequence() const;
161 
166  const MultipleAlignment &
167  multiple_alignment() const;
168 
173  size_type
174  length() const;
175 
180  double
181  arc_cutoff_prob() const;
182 
191  double
192  arc_prob(pos_type i, pos_type j) const;
193 
206  std::string
207  mea_structure(double gamma=1.) const;
208 
216  vrna_plist_t *
217  plist() const;
218 
219  protected:
222 
228  arc_probs_const_iterator
229  arc_probs_begin() const;
230 
236  arc_probs_const_iterator
237  arc_probs_end() const;
238  public:
239 
240 
249  double
250  joint_arc_prob(pos_type i, pos_type j) const;
251 
262  double
263  stacked_arc_prob(pos_type i, pos_type j) const;
264 
265  // some computed probabilities (for convenience)
274  double
276 
285  double
287 
294  double
295  prob_unpaired(pos_type i) const;
296 
297  // IO
309  std::ostream &
310  write_pp(std::ostream &out, double p_outbpcut=0) const;
311 
319  std::ostream &
320  write_size_info(std::ostream &out) const;
321 
327  bool
328  has_stacking() const;
329 
335  void
336  set_anchors(const SequenceAnnotation &anchors);
337 
338  protected:
339 
349  virtual
350  void
352  bool stacking);
353 
363  virtual
364  void
365  init_from_rna_ensemble(const RnaEnsemble &rna_ensemble,
366  const PFoldParams &pfoldparams);
367 
368 
380  bool
381  read_autodetect(const std::string &filename,
382  bool stacking);
383 
392  virtual
393  bool
394  inloopprobs_ok() const {return true;}
395 
396 
420  virtual
421  void
422  read_pp(const std::string &filename);
423 
431  virtual
432  std::istream &
433  read_pp(std::istream &in);
434 
456  void
457  read_old_pp(const std::string &filename);
458 
479  void
480  read_ps(const std::string &filename);
481 
482  }; // end class RnaData
483 
484 }
485 
486 
487 #endif // LOCARNA_RNA_DATA_HH
represent sparsified data of RNA ensemble
Definition: rna_data.hh:42
arc_probs_const_iterator arc_probs_begin() const
begin of arcs with probability above cutoff Supports iteration over arcs
Definition: rna_data.cc:740
SparseMatrix< double > arc_prob_matrix_t
arc probability matrix
Definition: rna_data.hh:51
double joint_arc_prob(pos_type i, pos_type j) const
Get arc probability.
Definition: rna_data.cc:751
double prob_paired_downstream(pos_type i) const
Probability that a position is paired downstream.
Definition: rna_data.cc:777
RnaDataImpl * pimpl_
Definition: rna_data.hh:46
std::ostream & write_pp(std::ostream &out, double p_outbpcut=0) const
Definition: rna_data.cc:1253
arc_prob_matrix_t::const_iterator arc_probs_const_iterator
type of constant iterator over arcs with probability above cutoff
Definition: rna_data.hh:221
size_type pos_type
type of a sequence position
Definition: aux.hh:97
double prob_paired_upstream(pos_type i) const
Probability that a position is paired upstream.
Definition: rna_data.cc:766
double arc_prob(pos_type i, pos_type j) const
Get arc probability.
Definition: rna_data.cc:735
void read_ps(const std::string &filename)
Definition: rna_data.cc:829
double stacked_arc_prob(pos_type i, pos_type j) const
Get arc probability.
Definition: rna_data.cc:756
std::ostream & write_size_info(std::ostream &out) const
Write object size information.
Definition: rna_data.cc:1466
virtual void init_from_rna_ensemble(const RnaEnsemble &rna_ensemble, const PFoldParams &pfoldparams)
initialize from rna ensemble
Definition: rna_data.cc:515
Definition: aligner.cc:17
Implementation of ExtRnaData.
Definition: ext_rna_data_impl.hh:22
Implementation of RnaData.
Definition: rna_data_impl.hh:22
bool read_autodetect(const std::string &filename, bool stacking)
read and initialize from file, autodetect format
Definition: rna_data.cc:226
const Sequence & sequence() const
Get the multiple alignment as sequence.
Definition: rna_data.cc:715
Parameters for partition folding.
Definition: pfold_params.hh:19
size_type length() const
Get the sequence length.
Definition: rna_data.cc:725
bool has_stacking() const
Availability of stacking terms.
Definition: rna_data.cc:98
std::string mea_structure(double gamma=1.) const
maximum expected accuracy structure
Definition: rna_data.cc:1791
virtual bool inloopprobs_ok() const
check in loop probabilities
Definition: rna_data.hh:394
virtual ~RnaData()
destructor
Definition: rna_data.cc:93
void read_old_pp(const std::string &filename)
Definition: rna_data.cc:918
double arc_cutoff_prob() const
Get base pair cutoff probability.
Definition: rna_data.cc:730
arc_probs_const_iterator arc_probs_end() const
begin of arcs with probability above cutoff Supports iteration over arcs
Definition: rna_data.cc:745
virtual void read_pp(const std::string &filename)
Definition: rna_data.cc:1009
map_t::const_iterator const_iterator
Stl-compatible constant iterator over matrix elements.
Definition: sparse_matrix.hh:49
double prob_unpaired(pos_type i) const
Unpaired probability.
Definition: rna_data.cc:788
void set_anchors(const SequenceAnnotation &anchors)
Write access to alignment anchors.
Definition: rna_data.cc:103
virtual void init_from_fixed_structure(const SequenceAnnotation &structure, bool stacking)
initialize from fixed structure
Definition: rna_data.cc:389
const MultipleAlignment & multiple_alignment() const
Get the multiple alignment.
Definition: rna_data.cc:720
Represents the raw structure ensemble data for an RNA.
Definition: rna_ensemble.hh:40
Represents a structure-annotated sequence alignment.
Definition: alignment.hh:87
Annotation of a sequence.
Definition: sequence_annotation.hh:24
RnaData(const RnaEnsemble &rna_ensemble, double p_bpcut, double max_bps_length_ratio, const PFoldParams &pfoldparams)
Construct from RnaEnsemble with cutoff probability.
Definition: rna_data.cc:29
Represents a multiple alignment.
Definition: multiple_alignment.hh:65
"Sequence View" of multiple alignment as array of column vectors
Definition: sequence.hh:29
vrna_plist_t * plist() const
Construct plist (pair list of Vienna RNA)
Definition: rna_data.cc:1760
size_t size_type
usual size type
Definition: rna_data.hh:53