Replace Progs/RNAalifold with x64 binary and add all other programs
[jabaws.git] / binaries / src / ViennaRNA / H / fold_vars.h
1 #ifndef __VIENNA_RNA_PACKAGE_FOLD_VARS_H__
2 #define __VIENNA_RNA_PACKAGE_FOLD_VARS_H__
3
4 #include "data_structures.h"
5
6 /**
7  *  \file fold_vars.h
8  *  \brief Here all all declarations of the global variables used throughout RNAlib
9  */
10
11
12 #define PUBLIC
13 #define PRIVATE static
14
15 /**
16  *  \brief Global switch to activate/deactivate folding with structure constraints
17  */
18 extern int    fold_constrained;
19
20 /**
21  *  \brief Global switch to avoid/allow helices of length 1
22  * 
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
25  *  most cases.
26  */
27 extern int    noLonelyPairs;
28
29 /**
30  *  \brief Switch the energy model for dangling end contributions (0, 1, 2, 3)
31  * 
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
41  *  stacking.\n
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.
47  * 
48  *  Default is 2 in most algorithms, partition function algorithms can only handle 0 and 2
49  */
50 extern int  dangles;
51
52 /**
53  *  \brief Global switch to forbid/allow GU base pairs at all
54  */
55 extern int  noGU;
56
57 /**
58  *  \brief GU allowed only inside stacks if set to 1
59  */
60 extern int  no_closingGU;
61
62 /**
63  *  \brief Include special stabilizing energies for some tri-, tetra- and hexa-loops;
64  * 
65  *  default is 1.
66  */
67 extern int  tetra_loop;
68
69 /**
70  *  \brief 0 = BP; 1=any mit GC; 2=any mit AU-parameter
71  * 
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.
75  */
76 extern int  energy_set;
77
78 /**
79  *  \brief backward compatibility variable.. this does not effect anything
80  */
81 extern int  circ;
82
83 /**
84  *  \brief generate comma seperated output
85  */
86 extern int  csv;
87
88 /**
89  *  use old alifold energies (with gaps)
90  */
91 extern int oldAliEn;
92 /**
93  *  use ribosum matrices
94  */
95 extern int ribo;            
96
97 /**
98  *  warning this variable will vanish in the future
99  *  ribosums will be compiled in instead
100  */
101 extern char *RibosumFile;   
102
103 /**
104  *  \brief contains allowed non standard base pairs
105  * 
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
108  *  energy of 0.
109  */
110 extern char *nonstandards;
111
112 /**
113  *  \brief Rescale energy parameters to a temperature in degC.
114  * 
115  *  Default is 37C. You have to call the update_..._params() functions after
116  *  changing this parameter.
117  */
118 extern double temperature;
119
120 /**
121  *  interior loops of size 2 get energy 0.8Kcal and
122  *  no mismatches, default 1
123  */
124 extern int  james_rule;
125
126 /**
127  *  use logarithmic multiloop energy function
128  */
129 extern int  logML;
130
131 /**
132  *  \brief Marks the position (starting from 1) of the first
133  *  nucleotide of the second molecule within the concatenated sequence.
134  * 
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.
141  */
142 extern int  cut_point;
143
144 /**
145  *  \brief Contains a list of base pairs after a call to fold().
146  * 
147  *  base_pair[0].i contains the total number of pairs.
148  *  \deprecated Do not use this variable anymore!
149  */
150 extern bondT  *base_pair;
151
152 /**
153  *  \brief A pointer to the base pair probability matrix
154  * 
155  *  \deprecated Do not use this variable anymore!
156  */
157 extern FLT_OR_DBL *pr;
158
159 /**
160  *  \brief index array to move through pr.
161  * 
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!
164  */
165 extern int   *iindx;
166
167 /**
168  *  \brief A scaling factor used by pf_fold() to avoid overflows.
169  * 
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.
177  */
178 extern double pf_scale;
179
180 /**
181  *  \brief do backtracking, i.e. compute secondary structures or base pair probabilities
182  * 
183  *  If 0, do not calculate pair probabilities in pf_fold(); this is about
184  *  twice as fast. Default is 1.
185  */
186 extern int    do_backtrack;
187
188 /**
189  *  \brief A backtrack array marker for inverse_fold()
190  * 
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.
194  */
195 extern char backtrack_type;
196
197 /**
198  *  \brief Allow G-quadruplex formation
199  */
200 extern int gquad;
201
202
203 char * option_string(void);
204
205 /**
206  * \brief Set default model details
207  *
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
210  *
211  *  \see
212  *
213  *  \param md A pointer to the data structure that shall be initialized
214  */
215 void set_model_details(model_detailsT *md);
216
217 #endif