RNAlib-2.4.8
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 
42 #include <ViennaRNA/model.h>
43 
44 #define VRNA_GQUAD_MAX_STACK_SIZE 7
45 #define VRNA_GQUAD_MIN_STACK_SIZE 2
46 #define VRNA_GQUAD_MAX_LINKER_LENGTH 15
47 #define VRNA_GQUAD_MIN_LINKER_LENGTH 1
48 #define VRNA_GQUAD_MIN_BOX_SIZE ((4 * VRNA_GQUAD_MIN_STACK_SIZE) + \
49  (3 * VRNA_GQUAD_MIN_LINKER_LENGTH))
50 #define VRNA_GQUAD_MAX_BOX_SIZE ((4 * VRNA_GQUAD_MAX_STACK_SIZE) + \
51  (3 * VRNA_GQUAD_MAX_LINKER_LENGTH))
52 
56 struct vrna_param_s {
57  int id;
58  int stack[NBPAIRS + 1][NBPAIRS + 1];
59  int hairpin[31];
60  int bulge[MAXLOOP + 1];
61  int internal_loop[MAXLOOP + 1];
62  int mismatchExt[NBPAIRS + 1][5][5];
63  int mismatchI[NBPAIRS + 1][5][5];
64  int mismatch1nI[NBPAIRS + 1][5][5];
65  int mismatch23I[NBPAIRS + 1][5][5];
66  int mismatchH[NBPAIRS + 1][5][5];
67  int mismatchM[NBPAIRS + 1][5][5];
68  int dangle5[NBPAIRS + 1][5];
69  int dangle3[NBPAIRS + 1][5];
70  int int11[NBPAIRS + 1][NBPAIRS + 1][5][5];
71  int int21[NBPAIRS + 1][NBPAIRS + 1][5][5][5];
72  int int22[NBPAIRS + 1][NBPAIRS + 1][5][5][5][5];
73  int ninio[5];
74  double lxc;
75  int MLbase;
76  int MLintern[NBPAIRS + 1];
77  int MLclosing;
78  int TerminalAU;
79  int DuplexInit;
80  int Tetraloop_E[200];
81  char Tetraloops[1401];
82  int Triloop_E[40];
83  char Triloops[241];
84  int Hexaloop_E[40];
85  char Hexaloops[1801];
86  int TripleC;
87  int MultipleCA;
88  int MultipleCB;
89  int gquad [VRNA_GQUAD_MAX_STACK_SIZE + 1]
90  [3 * VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
91 
92  double temperature;
95  char param_file[256];
96 };
97 
102  int id;
105  double expstack[NBPAIRS + 1][NBPAIRS + 1];
106  double exphairpin[31];
107  double expbulge[MAXLOOP + 1];
108  double expinternal[MAXLOOP + 1];
109  double expmismatchExt[NBPAIRS + 1][5][5];
110  double expmismatchI[NBPAIRS + 1][5][5];
111  double expmismatch23I[NBPAIRS + 1][5][5];
112  double expmismatch1nI[NBPAIRS + 1][5][5];
113  double expmismatchH[NBPAIRS + 1][5][5];
114  double expmismatchM[NBPAIRS + 1][5][5];
115  double expdangle5[NBPAIRS + 1][5];
116  double expdangle3[NBPAIRS + 1][5];
117  double expint11[NBPAIRS + 1][NBPAIRS + 1][5][5];
118  double expint21[NBPAIRS + 1][NBPAIRS + 1][5][5][5];
119  double expint22[NBPAIRS + 1][NBPAIRS + 1][5][5][5][5];
120  double expninio[5][MAXLOOP + 1];
121  double lxc;
122  double expMLbase;
123  double expMLintern[NBPAIRS + 1];
124  double expMLclosing;
125  double expTermAU;
126  double expDuplexInit;
127  double exptetra[40];
128  double exptri[40];
129  double exphex[40];
130  char Tetraloops[1401];
131  double expTriloop[40];
132  char Triloops[241];
133  char Hexaloops[1801];
134  double expTripleC;
135  double expMultipleCA;
136  double expMultipleCB;
137  double expgquad[VRNA_GQUAD_MAX_STACK_SIZE + 1]
138  [3 * VRNA_GQUAD_MAX_LINKER_LENGTH + 1];
139 
140  double kT;
141  double pf_scale;
143  double temperature;
144  double alpha;
152  char param_file[256];
153 };
154 
155 
167 vrna_param_t *
169 
170 
182 vrna_param_t *
184 
185 
210 
211 
226 vrna_exp_params_comparative(unsigned int n_seq,
227  vrna_md_t *md);
228 
229 
243 
244 
257 void
259  vrna_param_t *par);
260 
261 
279 void
281  vrna_exp_param_t *params);
282 
283 
321 void
323  double *mfe);
324 
325 
340  vrna_md_t *md_p);
341 
342 
358  vrna_md_t *md_p);
359 
360 
361 void vrna_params_prepare(vrna_fold_compound_t *vc,
362  unsigned int options);
363 
364 
365 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
366 
371 typedef struct vrna_param_s paramT;
372 
378 
379 DEPRECATED(vrna_param_t *get_parameter_copy(vrna_param_t *par),
380 "Use vrna_params_copy() instead");
381 
392 "Use vrna_params() instead");
393 
420  double betaScale,
421  vrna_md_t md,
422  double pf_scale),
423 "Use vrna_exp_params() instead");
424 
436 "Use vrna_exp_params_copy() instead");
437 
445 DEPRECATED(vrna_exp_param_t *get_scaled_alipf_parameters(unsigned int n_seq),
446 "Use vrna_exp_params_comparative() instead");
447 
456 DEPRECATED(vrna_exp_param_t *get_boltzmann_factors_ali(unsigned int n_seq,
457  double temperature,
458  double betaScale,
459  vrna_md_t md,
460  double pf_scale),
461 "Use vrna_exp_params_comparative() instead");
462 
474 DEPRECATED(vrna_param_t *scale_parameters(void),
475 "Use vrna_params() instead");
476 
494  vrna_md_t md),
495 "Usee vrna_params() instead");
496 
497 DEPRECATED(vrna_param_t *copy_parameters(void), "Use vrna_params_copy() instead");
498 DEPRECATED(vrna_param_t *set_parameters(vrna_param_t *dest), "Use vrna_params_copy() instead");
499 DEPRECATED(vrna_exp_param_t *scale_pf_parameters(void), "Use vrna_exp_params() instead");
500 DEPRECATED(vrna_exp_param_t *copy_pf_param(void), "Use vrna_exp_params_copy() instead");
501 DEPRECATED(vrna_exp_param_t *set_pf_param(vrna_param_t *dest), "Use vrna_exp_params_copy() instead");
502 
503 #endif
504 
510 #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:94
#define NBPAIRS
Definition: constants.h:25
double pf_scale
Scaling factor to avoid over-/underflows.
Definition: basic.h:141
Energy parameter constants.
vrna_md_t model_details
Model details to be used in the recursions.
Definition: basic.h:151
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:143
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:56
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:95
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:177
double alpha
Scaling factor for the thermodynamic temperature.
Definition: basic.h:144
The data structure that contains temperature scaled Boltzmann weights of the energy parameters...
Definition: basic.h:101
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:92
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:102
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.