1 #ifndef LOCARNA_RNA_ENSEMBLE_IMPL_HH
2 #define LOCARNA_RNA_ENSEMBLE_IMPL_HH
8 #include "rna_ensemble.hh"
9 #include "multiple_alignment.hh"
10 #include "sparse_matrix.hh"
12 #include "mcc_matrices.hh"
35 std::vector<FLT_OR_DBL>
37 std::vector<FLT_OR_DBL>
41 std::unique_ptr<McC_matrices_base>
McCmat_;
Represents a multiple alignment.
Definition: multiple_alignment.hh:65
Parameters for partition folding.
Definition: pfold_params.hh:32
Implementation of RnaEnsemble.
Definition: rna_ensemble_impl.hh:19
bool in_loop_probs_available_
whether "in loop" probabilities are availabe
Definition: rna_ensemble_impl.hh:32
double arc_2_prob_noali(size_type i, size_type j) const
Get joint probability of stacked arcs.
Definition: rna_ensemble.cc:415
double arc_2_prob_ali(size_type i, size_type j) const
Get joint probability of stacked arcs (alifold version)
Definition: rna_ensemble.cc:438
double unpaired_in_loop_prob_noali(size_type k, size_type i, size_type j) const
Unpaired probabilty of base in a specified loop (no alifold)
Definition: rna_ensemble.cc:673
void compute_McCaskill_matrices(const PFoldParams ¶ms, bool inLoopProbs)
Computes the McCaskill matrices and keeps them accessible.
Definition: rna_ensemble.cc:143
void compute_ensemble_probs(const PFoldParams ¶ms, bool inLoopProbs, bool use_alifold)
(re)compute the pair probabilities
Definition: rna_ensemble.cc:118
double min_free_energy_
minimum free energy (if computed anyway)
Definition: rna_ensemble_impl.hh:46
double unpaired_in_loop_prob_ali(size_type k, size_type i, size_type j) const
Unpaired probabilty of base in a specified loop (alifold)
Definition: rna_ensemble.cc:489
void compute_McCaskill_alifold_matrices(const PFoldParams ¶ms, bool inLoopProbs)
Computes the McCaskill matrices and keeps them accessible (alifold)
Definition: rna_ensemble.cc:204
~RnaEnsembleImpl()
Destructor.
Definition: rna_ensemble.cc:114
bool stacking_probs_available_
whether stacking probabilities are available
Definition: rna_ensemble_impl.hh:29
std::vector< FLT_OR_DBL > qm2_
matrix qm2_ (stored VRNA-style in a vector)
Definition: rna_ensemble_impl.hh:36
double arc_in_loop_prob_noali(size_type ip, size_type jp, size_type i, size_type j) const
Probabilty of base pair in a specified loop.
Definition: rna_ensemble.cc:930
std::unique_ptr< McC_matrices_base > McCmat_
DP matrix data structures of VRNA's McCaskill algorithm.
Definition: rna_ensemble_impl.hh:41
RnaEnsembleImpl(const MultipleAlignment &sequence, const PFoldParams &pfparams, bool inLoopProbs, bool use_alifold)
Construct from sequence or multiple alignment.
Definition: rna_ensemble.cc:96
bool pair_probs_available_
whether pair probabilities are availabe
Definition: rna_ensemble_impl.hh:26
void compute_Qm2()
Computes the Qm2 matrix.
Definition: rna_ensemble.cc:271
MultipleAlignment sequence_
Definition: rna_ensemble_impl.hh:23
void compute_Qm2_ali()
Computes the Qm2 matrix (alifold)
Definition: rna_ensemble.cc:331
bool used_alifold_
whether alifold was used to compute the McCaskill matrices
Definition: rna_ensemble_impl.hh:44
double arc_in_loop_prob_ali(size_type ip, size_type jp, size_type i, size_type j) const
Probabilty of base pair in a specified loop (alifold)
Definition: rna_ensemble.cc:799
int ptype_of_admissible_basepair(size_type i, size_type j) const
Pair type of an admissible basepair.
Definition: rna_ensemble.cc:398
std::vector< FLT_OR_DBL > expMLbase_
table for precomputed multi loop terms
Definition: rna_ensemble_impl.hh:38
std::string min_free_energy_structure_
Definition: rna_ensemble_impl.hh:47
Definition: aligner.cc:15
size_t size_type
general size type
Definition: aux.hh:120