Replace Progs/RNAalifold with x64 binary and add all other programs
[jabaws.git] / binaries / src / ViennaRNA / H / params.h
1 #ifndef __VIENNA_RNA_PACKAGE_PARAMS_H__
2 #define __VIENNA_RNA_PACKAGE_PARAMS_H__
3
4 #include "energy_const.h"
5 #include "data_structures.h"
6
7 #ifdef __GNUC__
8 #define DEPRECATED(func) func __attribute__ ((deprecated))
9 #else
10 #define DEPRECATED(func) func
11 #endif
12
13 /**
14  *  \addtogroup energy_parameters
15  *  \brief All relevant functions to retrieve and copy precalculated energy parameter sets as well as
16  *  reading/writing the energy parameter set from/to file(s).
17  *
18  *  This module covers all relevant functions for precalculation of the energy parameters
19  *  necessary for the folding routines provided by RNAlib. Furthermore, the energy parameter set
20  *  in the RNAlib can be easily exchanged by a user-defined one. It is also possible to write the
21  *  current energy parameter set into a text file.
22  *  @{
23  *
24  *  \file params.h
25  */
26
27 /**
28  * \brief Get precomputed energy contributions for all the known loop types
29  *
30  *  \note OpenMP: This function relies on several global model settings variables and thus is
31  *        not to be considered threadsafe. See get_scaled_parameters() for a completely threadsafe
32  *        implementation.
33  *
34  * \return     A set of precomputed energy contributions
35  */
36 paramT *scale_parameters(void);
37
38 /**
39  * \brief Get precomputed energy contributions for all the known loop types
40  *
41  *  Call this function to retrieve precomputed energy contributions, i.e. scaled
42  *  according to the temperature passed. Furthermore, this function assumes a
43  *  data structure that contains the model details as well, such that subsequent
44  *  folding recursions are able to retrieve the correct model settings
45  *
46  *  \see #model_detailsT, set_model_details()
47  *
48  *  \param temperature  The temperature in degrees Celcius
49  *  \param md           The model details
50  *  \return             precomputed energy contributions and model settings
51  */
52 paramT *get_scaled_parameters(double temperature,
53                               model_detailsT md);
54
55 paramT *get_parameter_copy(paramT *par);
56
57 /**
58  *  get a datastructure of type \ref pf_paramT which contains
59  *  the Boltzmann weights of several energy parameters scaled
60  *  according to the current temperature
61  *  \return The datastructure containing Boltzmann weights for use in partition function calculations
62  */
63 pf_paramT *get_scaled_pf_parameters(void);
64
65 /**
66  *  \brief Get precomputed Boltzmann factors of the loop type
67  *  dependent energy contributions with independent thermodynamic
68  *  temperature
69  *
70  *  This function returns a data structure that contains
71  *  all necessary precalculated Boltzmann factors for each
72  *  loop type contribution.<br>
73  *  In contrast to get_scaled_pf_parameters(), this function
74  *  enables setting of independent temperatures for both, the
75  *  individual energy contributions as well as the thermodynamic
76  *  temperature used in
77  *  \f$ exp(-\Delta G / kT) \f$
78  *
79  *  \see get_scaled_pf_parameters(), get_boltzmann_factor_copy()
80  *
81  *  \param  temperature   The temperature in degrees Celcius used for (re-)scaling the energy contributions
82  *  \param  betaScale     A scaling value that is used as a multiplication factor for the absolute
83  *                        temperature of the system
84  *  \param  md            The model details to be used
85  *  \param  pf_scale      The scaling factor for the Boltzmann factors
86  *  \return               A set of precomputed Boltzmann factors
87  */
88 pf_paramT *get_boltzmann_factors( double temperature,
89                                   double betaScale,
90                                   model_detailsT md,
91                                   double pf_scale);
92
93 /**
94  *  \brief Get a copy of already precomputed Boltzmann factors
95  *
96  *  \see get_boltzmann_factors(), get_scaled_pf_parameters()
97  *
98  *  \param  parameters  The input data structure that shall be copied
99  *  \return             A copy of the provided Boltzmann factor dataset
100  */
101 pf_paramT *get_boltzmann_factor_copy(pf_paramT *parameters);
102
103 /**
104  *  \brief Get precomputed Boltzmann factors of the loop type
105  *  dependent energy contributions (alifold variant)
106  *
107  */
108 pf_paramT *get_scaled_alipf_parameters(unsigned int n_seq);
109
110 /**
111  *  \brief Get precomputed Boltzmann factors of the loop type
112  *  dependent energy contributions (alifold variant) with
113  *  independent thermodynamic temperature
114  *
115  */
116 PUBLIC pf_paramT *get_boltzmann_factors_ali(unsigned int n_seq,
117                                             double temperature,
118                                             double betaScale,
119                                             model_detailsT md,
120                                             double pf_scale);
121
122 /**
123  *  @}
124  */
125
126 DEPRECATED(paramT     *copy_parameters(void));
127 DEPRECATED(paramT     *set_parameters(paramT *dest));
128 DEPRECATED(pf_paramT  *scale_pf_parameters(void));
129 DEPRECATED(pf_paramT  *copy_pf_param(void));
130 DEPRECATED(pf_paramT  *set_pf_param(paramT *dest));
131
132
133
134 #endif