RNAlib-2.5.0
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;
38 typedef struct vrna_exp_param_s vrna_exp_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 
383 typedef struct vrna_exp_param_s pf_paramT;
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
Energy parameter constants.
#define NBPAIRS
Definition: constants.h:25
#define MAXLOOP
Definition: constants.h:29
Various data structures and pre-processor macros.
The Basic Fold Compound API.
int id
An identifier for the data structure.
Definition: basic.h:104
double pf_scale
Scaling factor to avoid over-/underflows.
Definition: basic.h:144
double temperature
Temperature used for loop contribution scaling.
Definition: basic.h:146
double alpha
Scaling factor for the thermodynamic temperature.
Definition: basic.h:147
vrna_md_t model_details
Model details to be used in the recursions.
Definition: basic.h:96
char param_file[256]
The filename the parameters were derived from, or empty string if they represent the default.
Definition: basic.h:155
vrna_md_t model_details
Model details to be used in the recursions.
Definition: basic.h:154
char param_file[256]
The filename the parameters were derived from, or empty string if they represent the default.
Definition: basic.h:97
double temperature
Temperature used for loop contribution scaling.
Definition: basic.h:94
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)
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_param_t * vrna_params_copy(vrna_param_t *par)
Get a copy of the provided free energy parameters.
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.
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 * vrna_exp_params_copy(vrna_exp_param_t *par)
Get a copy of the provided free energy parameters (provided as Boltzmann factors)
vrna_param_t * get_scaled_parameters(double temperature, vrna_md_t md)
Get precomputed energy contributions for all the known loop types.
void vrna_exp_params_subst(vrna_fold_compound_t *vc, vrna_exp_param_t *params)
Update the energy parameters for subsequent partition function computations.
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 * vrna_exp_params(vrna_md_t *md)
Get a data structure containing prescaled free energy parameters already transformed to Boltzmann fac...
vrna_exp_param_t * get_scaled_pf_parameters(void)
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...
vrna_param_t * vrna_params(vrna_md_t *md)
Get a data structure containing prescaled free energy parameters.
void vrna_exp_params_rescale(vrna_fold_compound_t *vc, double *mfe)
Rescale Boltzmann factors for partition function computations.
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...
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...
The data structure that contains temperature scaled Boltzmann weights of the energy parameters.
Definition: basic.h:103
The datastructure that contains temperature scaled energy parameters.
Definition: basic.h:57
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:137
double temperature
Rescale energy parameters to a temperature in degC.
double pf_scale
A scaling factor used by pf_fold() to avoid overflows.
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:180
The model details data structure and its corresponding modifiers.