1 #ifndef __VIENNA_RNA_PACKAGE_FOLD_VARS_H__
2 #define __VIENNA_RNA_PACKAGE_FOLD_VARS_H__
4 #include "data_structures.h"
8 * \brief Here all all declarations of the global variables used throughout RNAlib
13 #define PRIVATE static
16 * \brief Global switch to activate/deactivate folding with structure constraints
18 extern int fold_constrained;
21 * \brief Global switch to avoid/allow helices of length 1
23 * Disallow all pairs which can only occur as lonely pairs (i.e. as helix
24 * of length 1). This avoids lonely base pairs in the predicted structures in
27 extern int noLonelyPairs;
30 * \brief Switch the energy model for dangling end contributions (0, 1, 2, 3)
32 * If set to 0 no stabilizing energies are assigned to bases adjacent to
33 * helices in free ends and multiloops (so called dangling ends). Normally
34 * (dangles = 1) dangling end energies are assigned only to unpaired
35 * bases and a base cannot participate simultaneously in two dangling ends. In
36 * the partition function algorithm pf_fold() these checks are neglected.
37 * If #dangles is set to 2, all folding routines will follow this convention.
38 * This treatment of dangling ends gives more favorable energies to helices
39 * directly adjacent to one another, which can be beneficial since such
40 * helices often do engage in stabilizing interactions through co-axial
42 * If dangles = 3 co-axial stacking is explicitly included for
43 * adjacent helices in mutli-loops. The option affects only mfe folding
44 * and energy evaluation (fold() and energy_of_structure()), as
45 * well as suboptimal folding (subopt()) via re-evaluation of energies.
46 * Co-axial stacking with one intervening mismatch is not considered so far.
48 * Default is 2 in most algorithms, partition function algorithms can only handle 0 and 2
53 * \brief Global switch to forbid/allow GU base pairs at all
58 * \brief GU allowed only inside stacks if set to 1
60 extern int no_closingGU;
63 * \brief Include special stabilizing energies for some tri-, tetra- and hexa-loops;
67 extern int tetra_loop;
70 * \brief 0 = BP; 1=any mit GC; 2=any mit AU-parameter
72 * If set to 1 or 2: fold sequences from an artificial alphabet ABCD..., where A
73 * pairs B, C pairs D, etc. using either GC (1) or AU parameters (2);
74 * default is 0, you probably don't want to change it.
76 extern int energy_set;
79 * \brief backward compatibility variable.. this does not effect anything
84 * \brief generate comma seperated output
89 * use old alifold energies (with gaps)
93 * use ribosum matrices
98 * warning this variable will vanish in the future
99 * ribosums will be compiled in instead
101 extern char *RibosumFile;
104 * \brief contains allowed non standard base pairs
106 * Lists additional base pairs that will be allowed to form in addition to
107 * GC, CG, AU, UA, GU and UG. Nonstandard base pairs are given a stacking
110 extern char *nonstandards;
113 * \brief Rescale energy parameters to a temperature in degC.
115 * Default is 37C. You have to call the update_..._params() functions after
116 * changing this parameter.
118 extern double temperature;
121 * interior loops of size 2 get energy 0.8Kcal and
122 * no mismatches, default 1
124 extern int james_rule;
127 * use logarithmic multiloop energy function
132 * \brief Marks the position (starting from 1) of the first
133 * nucleotide of the second molecule within the concatenated sequence.
135 * To evaluate the energy of a duplex structure (a structure formed by two
136 * strands), concatenate the to sequences and set it to the
137 * first base of the second strand in the concatenated sequence.
138 * The default value of -1 stands for single molecule folding. The
139 * cut_point variable is also used by PS_rna_plot() and
140 * PS_dot_plot() to mark the chain break in postscript plots.
142 extern int cut_point;
145 * \brief Contains a list of base pairs after a call to fold().
147 * base_pair[0].i contains the total number of pairs.
148 * \deprecated Do not use this variable anymore!
150 extern bondT *base_pair;
153 * \brief A pointer to the base pair probability matrix
155 * \deprecated Do not use this variable anymore!
157 extern FLT_OR_DBL *pr;
160 * \brief index array to move through pr.
162 * The probability for base i and j to form a pair is in pr[iindx[i]-j].
163 * \deprecated Do not use this variable anymore!
168 * \brief A scaling factor used by pf_fold() to avoid overflows.
170 * Should be set to approximately \f$exp{((-F/kT)/length)}\f$, where \f$F\f$ is an estimate
171 * for the ensemble free energy, for example the minimum free energy. You must
172 * call update_pf_params() after changing this parameter.\n
173 * If pf_scale is -1 (the default) , an estimate will be provided
174 * automatically when computing partition functions, e.g. pf_fold()
175 * The automatic estimate is usually insufficient for sequences more
176 * than a few hundred bases long.
178 extern double pf_scale;
181 * \brief do backtracking, i.e. compute secondary structures or base pair probabilities
183 * If 0, do not calculate pair probabilities in pf_fold(); this is about
184 * twice as fast. Default is 1.
186 extern int do_backtrack;
189 * \brief A backtrack array marker for inverse_fold()
191 * If set to 'C': force (1,N) to be paired,
192 * 'M' fold as if the sequence were inside a multi-loop. Otherwise ('F') the
193 * usual mfe structure is computed.
195 extern char backtrack_type;
198 * \brief Allow G-quadruplex formation
203 char * option_string(void);
206 * \brief Set default model details
208 * Use this function if you wish to initialize a #model_detailsT data structure with
209 * its default values, i.e. the global model settings
213 * \param md A pointer to the data structure that shall be initialized
215 void set_model_details(model_detailsT *md);