RNAlib-2.4.14
basic.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_PARAMS_H
2 #define VIENNA_RNA_PACKAGE_PARAMS_H
3 
4 #ifdef VRNA_WARN_DEPRECATED
5 # if defined(__clang__)
6 # define DEPRECATED(func, msg) func __attribute__ ((deprecated("", msg)))
7 # elif defined(__GNUC__)
8 # define DEPRECATED(func, msg) func __attribute__ ((deprecated(msg)))
9 # else
10 # define DEPRECATED(func, msg) func
11 # endif
12 #else
13 # define DEPRECATED(func, msg) func
14 #endif
15 
36 typedef struct vrna_param_s vrna_param_t;
39 
43 #include <ViennaRNA/model.h>
44 
45 #define VRNA_GQUAD_MAX_STACK_SIZE 7
46 #define VRNA_GQUAD_MIN_STACK_SIZE 2
47 #define VRNA_GQUAD_MAX_LINKER_LENGTH 15
48 #define VRNA_GQUAD_MIN_LINKER_LENGTH 1
49 #define VRNA_GQUAD_MIN_BOX_SIZE ((4 * VRNA_GQUAD_MIN_STACK_SIZE) + \
50  (3 * VRNA_GQUAD_MIN_LINKER_LENGTH))
51 #define VRNA_GQUAD_MAX_BOX_SIZE ((4 * VRNA_GQUAD_MAX_STACK_SIZE) + \
52  (3 * VRNA_GQUAD_MAX_LINKER_LENGTH))
53 
57 struct vrna_param_s {
58  int id;
59  int stack[NBPAIRS + 1][NBPAIRS + 1];
60  int hairpin[31];
61  int bulge[MAXLOOP + 1];
62  int internal_loop[MAXLOOP + 1];
63  int mismatchExt[NBPAIRS + 1][5][5];
64  int mismatchI[NBPAIRS + 1][5][5];
65  int mismatch1nI[NBPAIRS + 1][5][5];
66  int mismatch23I[NBPAIRS + 1][5][5];
67  int mismatchH[NBPAIRS + 1][5][5];
68  int mismatchM[NBPAIRS + 1][5][5];
69  int dangle5[NBPAIRS + 1][5];
70  int dangle3[NBPAIRS + 1][5];
71  int int11[NBPAIRS + 1][NBPAIRS + 1][5][5];
72  int int21[NBPAIRS + 1][NBPAIRS + 1][5][5][5];
73  int int22[NBPAIRS + 1][NBPAIRS + 1][5][5][5][5];
74  int ninio[5];
75  double lxc;
76  int MLbase;
77  int MLintern[NBPAIRS + 1];
78  int MLclosing;
79  int TerminalAU;
80  int DuplexInit;
81  int Tetraloop_E[200];
82  char Tetraloops[1401];
83  int Triloop_E[40];
84  char Triloops[241];
85  int Hexaloop_E[40];
86  char Hexaloops[1801];
87  int TripleC;
88  int MultipleCA;
89  int MultipleCB;
90  int gquad[VRNA_GQUAD_MAX_STACK_SIZE + 1][3 * VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
91  int gquadLayerMismatch;
92  int gquadLayerMismatchMax;
93 
94  double temperature;
97  char param_file[256];
98 };
99 
104  int id;
107  double expstack[NBPAIRS + 1][NBPAIRS + 1];
108  double exphairpin[31];
109  double expbulge[MAXLOOP + 1];
110  double expinternal[MAXLOOP + 1];
111  double expmismatchExt[NBPAIRS + 1][5][5];
112  double expmismatchI[NBPAIRS + 1][5][5];
113  double expmismatch23I[NBPAIRS + 1][5][5];
114  double expmismatch1nI[NBPAIRS + 1][5][5];
115  double expmismatchH[NBPAIRS + 1][5][5];
116  double expmismatchM[NBPAIRS + 1][5][5];
117  double expdangle5[NBPAIRS + 1][5];
118  double expdangle3[NBPAIRS + 1][5];
119  double expint11[NBPAIRS + 1][NBPAIRS + 1][5][5];
120  double expint21[NBPAIRS + 1][NBPAIRS + 1][5][5][5];
121  double expint22[NBPAIRS + 1][NBPAIRS + 1][5][5][5][5];
122  double expninio[5][MAXLOOP + 1];
123  double lxc;
124  double expMLbase;
125  double expMLintern[NBPAIRS + 1];
126  double expMLclosing;
127  double expTermAU;
128  double expDuplexInit;
129  double exptetra[40];
130  double exptri[40];
131  double exphex[40];
132  char Tetraloops[1401];
133  double expTriloop[40];
134  char Triloops[241];
135  char Hexaloops[1801];
136  double expTripleC;
137  double expMultipleCA;
138  double expMultipleCB;
139  double expgquad[VRNA_GQUAD_MAX_STACK_SIZE + 1][3 * VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
140  double expgquadLayerMismatch;
141  int gquadLayerMismatchMax;
142 
143  double kT;
144  double pf_scale;
146  double temperature;
147  double alpha;
155  char param_file[256];
156 };
157 
158 
170 vrna_param_t *
172 
173 
185 vrna_param_t *
187 
188 
213 
214 
229 vrna_exp_params_comparative(unsigned int n_seq,
230  vrna_md_t *md);
231 
232 
246 
247 
260 void
262  vrna_param_t *par);
263 
264 
282 void
284  vrna_exp_param_t *params);
285 
286 
324 void
326  double *mfe);
327 
328 
342 void
344  vrna_md_t *md_p);
345 
346 
361 void
363  vrna_md_t *md_p);
364 
365 
366 void
367 vrna_params_prepare(vrna_fold_compound_t *vc,
368  unsigned int options);
369 
370 
371 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
372 
377 typedef struct vrna_param_s paramT;
378 
384 
385 DEPRECATED(vrna_param_t *get_parameter_copy(vrna_param_t *par),
386  "Use vrna_params_copy() instead");
387 
398  "Use vrna_params() instead");
399 
426  double betaScale,
427  vrna_md_t md,
428  double pf_scale),
429  "Use vrna_exp_params() instead");
430 
442  "Use vrna_exp_params_copy() instead");
443 
451 DEPRECATED(vrna_exp_param_t *get_scaled_alipf_parameters(unsigned int n_seq),
452  "Use vrna_exp_params_comparative() instead");
453 
462 DEPRECATED(vrna_exp_param_t *get_boltzmann_factors_ali(unsigned int n_seq,
463  double temperature,
464  double betaScale,
465  vrna_md_t md,
466  double pf_scale),
467  "Use vrna_exp_params_comparative() instead");
468 
480 DEPRECATED(vrna_param_t *scale_parameters(void),
481  "Use vrna_params() instead");
482 
500  vrna_md_t md),
501  "Usee vrna_params() instead");
502 
503 DEPRECATED(vrna_param_t *copy_parameters(void), "Use vrna_params_copy() instead");
504 DEPRECATED(vrna_param_t *set_parameters(vrna_param_t *dest), "Use vrna_params_copy() instead");
505 DEPRECATED(vrna_exp_param_t *scale_pf_parameters(void), "Use vrna_exp_params() instead");
506 DEPRECATED(vrna_exp_param_t *copy_pf_param(void), "Use vrna_exp_params_copy() instead");
507 DEPRECATED(vrna_exp_param_t *set_pf_param(vrna_param_t *dest),
508  "Use vrna_exp_params_copy() instead");
509 
510 #endif
511 
517 #endif
vrna_param_t * vrna_params(vrna_md_t *md)
Get a data structure containing prescaled free energy parameters.
vrna_param_t * get_scaled_parameters(double temperature, vrna_md_t md)
Get precomputed energy contributions for all the known loop types.
vrna_md_t model_details
Model details to be used in the recursions.
Definition: basic.h:96
#define NBPAIRS
Definition: constants.h:25
double pf_scale
Scaling factor to avoid over-/underflows.
Definition: basic.h:144
Energy parameter constants.
vrna_md_t model_details
Model details to be used in the recursions.
Definition: basic.h:154
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:132
double temperature
Temperature used for loop contribution scaling.
Definition: basic.h:146
vrna_exp_param_t * get_scaled_alipf_parameters(unsigned int n_seq)
Get precomputed Boltzmann factors of the loop type dependent energy contributions (alifold variant) ...
The model details data structure and its corresponding modifiers.
The datastructure that contains temperature scaled energy parameters.
Definition: basic.h:57
vrna_exp_param_t * vrna_exp_params_copy(vrna_exp_param_t *par)
Get a copy of the provided free energy parameters (provided as Boltzmann factors) ...
void vrna_exp_params_subst(vrna_fold_compound_t *vc, vrna_exp_param_t *params)
Update the energy parameters for subsequent partition function computations.
#define MAXLOOP
Definition: constants.h:29
char param_file[256]
The filename the parameters were derived from, or empty string if they represent the default...
Definition: basic.h:97
vrna_param_t * vrna_params_copy(vrna_param_t *par)
Get a copy of the provided free energy parameters.
Various data structures and pre-processor macros.
void vrna_exp_params_rescale(vrna_fold_compound_t *vc, double *mfe)
Rescale Boltzmann factors for partition function computations.
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:180
double alpha
Scaling factor for the thermodynamic temperature.
Definition: basic.h:147
The data structure that contains temperature scaled Boltzmann weights of the energy parameters...
Definition: basic.h:103
double pf_scale
A scaling factor used by pf_fold() to avoid overflows.
vrna_exp_param_t * get_scaled_pf_parameters(void)
double temperature
Temperature used for loop contribution scaling.
Definition: basic.h:94
vrna_exp_param_t * vrna_exp_params_comparative(unsigned int n_seq, vrna_md_t *md)
Get a data structure containing prescaled free energy parameters already transformed to Boltzmann fac...
void vrna_exp_params_reset(vrna_fold_compound_t *vc, vrna_md_t *md_p)
Reset Boltzmann factors for partition function computations within a vrna_fold_compound_t according t...
vrna_exp_param_t * get_boltzmann_factor_copy(vrna_exp_param_t *parameters)
Get a copy of already precomputed Boltzmann factors.
vrna_exp_param_t * get_boltzmann_factors_ali(unsigned int n_seq, double temperature, double betaScale, vrna_md_t md, double pf_scale)
Get precomputed Boltzmann factors of the loop type dependent energy contributions (alifold variant) w...
vrna_exp_param_t * get_boltzmann_factors(double temperature, double betaScale, vrna_md_t md, double pf_scale)
Get precomputed Boltzmann factors of the loop type dependent energy contributions with independent th...
void vrna_params_reset(vrna_fold_compound_t *vc, vrna_md_t *md_p)
Reset free energy parameters within a vrna_fold_compound_t according to provided, or default model de...
int id
An identifier for the data structure.
Definition: basic.h:104
The Basic Fold Compound API.
vrna_exp_param_t * vrna_exp_params(vrna_md_t *md)
Get a data structure containing prescaled free energy parameters already transformed to Boltzmann fac...
vrna_param_t * scale_parameters(void)
Get precomputed energy contributions for all the known loop types.
void vrna_params_subst(vrna_fold_compound_t *vc, vrna_param_t *par)
Update/Reset energy parameters data structure within a vrna_fold_compound_t.