RNAlib-2.5.1
2Dpfold.h
Go to the documentation of this file.
1#ifndef VIENNA_RNA_PACKAGE_TWO_D_PF_FOLD_H
2#define VIENNA_RNA_PACKAGE_TWO_D_PF_FOLD_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
49typedef struct vrna_sol_TwoD_pf_t {
50 int k;
51 int l;
54
79 int maxDistance1,
80 int maxDistance2);
81
82 /* End of group kl_neighborhood_pf */
84
108char *
110 int d1,
111 int d2);
112
113
133char *
135 int d1,
136 int d2,
137 unsigned int length);
138
139 /* End of group kl_neighborhood_stochbt */
143
144#ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
145
146#define TwoDpfold_solution vrna_sol_TwoD_pf_t /* restore compatibility of struct rename */
147
155typedef struct {
156 unsigned int alloc;
157 char *ptype;
158 char *sequence;
159 short *S, *S1;
160 unsigned int maxD1;
161 unsigned int maxD2;
163 double temperature; /* temperature in last call to scale_pf_params */
164 double init_temp; /* temperature in last call to scale_pf_params */
165 FLT_OR_DBL *scale;
167 vrna_exp_param_t *pf_params; /* holds all [unscaled] pf parameters */
168
169 int *my_iindx;
170 int *jindx;
172 short *reference_pt1;
173 short *reference_pt2;
174
175 unsigned int *referenceBPs1;
176 unsigned int *referenceBPs2;
177 unsigned int *bpdist;
179 unsigned int *mm1;
180 unsigned int *mm2;
182 int circ;
183 int dangles;
184 unsigned int seq_length;
185
186 FLT_OR_DBL ***Q;
187 FLT_OR_DBL ***Q_B;
188 FLT_OR_DBL ***Q_M;
189 FLT_OR_DBL ***Q_M1;
190 FLT_OR_DBL ***Q_M2;
191
192 FLT_OR_DBL **Q_c;
193 FLT_OR_DBL **Q_cH;
194 FLT_OR_DBL **Q_cI;
195 FLT_OR_DBL **Q_cM;
196
197 int **l_min_values;
198 int **l_max_values;
199 int *k_min_values;
200 int *k_max_values;
201
202 int **l_min_values_b;
203 int **l_max_values_b;
204 int *k_min_values_b;
205 int *k_max_values_b;
206
207 int **l_min_values_m;
208 int **l_max_values_m;
209 int *k_min_values_m;
210 int *k_max_values_m;
211
212 int **l_min_values_m1;
213 int **l_max_values_m1;
214 int *k_min_values_m1;
215 int *k_max_values_m1;
216
217 int **l_min_values_m2;
218 int **l_max_values_m2;
219 int *k_min_values_m2;
220 int *k_max_values_m2;
221
222 int *l_min_values_qc;
223 int *l_max_values_qc;
224 int k_min_values_qc;
225 int k_max_values_qc;
226
227 int *l_min_values_qcH;
228 int *l_max_values_qcH;
229 int k_min_values_qcH;
230 int k_max_values_qcH;
231
232 int *l_min_values_qcI;
233 int *l_max_values_qcI;
234 int k_min_values_qcI;
235 int k_max_values_qcI;
236
237 int *l_min_values_qcM;
238 int *l_max_values_qcM;
239 int k_min_values_qcM;
240 int k_max_values_qcM;
241
242 /* auxilary arrays for remaining set of coarse graining (k,l) > (k_max, l_max) */
243 FLT_OR_DBL *Q_rem;
244 FLT_OR_DBL *Q_B_rem;
245 FLT_OR_DBL *Q_M_rem;
246 FLT_OR_DBL *Q_M1_rem;
247 FLT_OR_DBL *Q_M2_rem;
248
249 FLT_OR_DBL Q_c_rem;
250 FLT_OR_DBL Q_cH_rem;
251 FLT_OR_DBL Q_cI_rem;
252 FLT_OR_DBL Q_cM_rem;
253
254 vrna_fold_compound_t *compatibility;
256
275DEPRECATED(TwoDpfold_vars *
276 get_TwoDpfold_variables(const char *seq,
277 const char *structure1,
278 char *structure2,
279 int circ),
280 "Use the new API and vrna_fold_compound_TwoD() instead");
281
295DEPRECATED(void
297 "Use the new API and vrna_fold_compound_free() instead");
298
323DEPRECATED(TwoDpfold_solution *
325 int maxDistance1,
326 int maxDistance2),
327 "Use the new API and vrna_pf_TwoD() instead");
328
350DEPRECATED(char *
352 int d1,
353 int d2),
354 "Use the new API and vrna_pbacktrack_TwoD() instead");
355
379DEPRECATED(char *
381 int d1,
382 int d2,
383 unsigned int length),
384 "Use the new API and vrna_pbacktrack5_TwoD() instead");
385
391DEPRECATED(FLT_OR_DBL **TwoDpfold(TwoDpfold_vars *our_variables,
392 int maxDistance1,
393 int maxDistance2),
394 "Use the new API and vrna_pf_TwoD() instead");
395
401DEPRECATED(FLT_OR_DBL **TwoDpfold_circ(TwoDpfold_vars *our_variables,
402 int maxDistance1,
403 int maxDistance2),
404 "Use the new API and vrna_pf_TwoD() instead");
405
406#endif
407
408#endif
char * TwoDpfold_pbacktrack(TwoDpfold_vars *vars, int d1, int d2)
Sample secondary structure representatives from a set of distance classes according to their Boltzman...
TwoDpfold_vars * get_TwoDpfold_variables(const char *seq, const char *structure1, char *structure2, int circ)
Get a datastructure containing all necessary attributes and global folding switches.
vrna_sol_TwoD_pf_t * TwoDpfoldList(TwoDpfold_vars *vars, int maxDistance1, int maxDistance2)
Compute the partition function for all distance classes.
char * TwoDpfold_pbacktrack5(TwoDpfold_vars *vars, int d1, int d2, unsigned int length)
Sample secondary structure representatives with a specified length from a set of distance classes acc...
void destroy_TwoDpfold_variables(TwoDpfold_vars *vars)
Free all memory occupied by a TwoDpfold_vars datastructure.
Various data structures and pre-processor macros.
The Basic Fold Compound API.
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: basic.h:43
The data structure that contains temperature scaled Boltzmann weights of the energy parameters.
Definition: basic.h:103
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:148
int l
Distance to second reference.
Definition: 2Dpfold.h:51
FLT_OR_DBL q
partition function
Definition: 2Dpfold.h:52
int k
Distance to first reference.
Definition: 2Dpfold.h:50
struct vrna_sol_TwoD_pf_t vrna_sol_TwoD_pf_t
Solution element returned from vrna_pf_TwoD()
vrna_sol_TwoD_pf_t * vrna_pf_TwoD(vrna_fold_compound_t *vc, int maxDistance1, int maxDistance2)
Compute the partition function for all distance classes.
Solution element returned from vrna_pf_TwoD()
Definition: 2Dpfold.h:49
char * vrna_pbacktrack_TwoD(vrna_fold_compound_t *vc, int d1, int d2)
Sample secondary structure representatives from a set of distance classes according to their Boltzman...
char * vrna_pbacktrack5_TwoD(vrna_fold_compound_t *vc, int d1, int d2, unsigned int length)
Sample secondary structure representatives with a specified length from a set of distance classes acc...
int dangles
Switch the energy model for dangling end contributions (0, 1, 2, 3)
double temperature
Rescale energy parameters to a temperature in degC.
double pf_scale
A scaling factor used by pf_fold() to avoid overflows.
int circ
backward compatibility variable.. this does not effect anything
Functions to deal with sets of energy parameters.
Variables compound for 2Dfold partition function folding.
Definition: 2Dpfold.h:155
int * jindx
Index for moving in the triangular matrix qm1.
Definition: 2Dpfold.h:170
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: 2Dpfold.h:176
char * sequence
The input sequence
Definition: 2Dpfold.h:158
char * ptype
Precomputed array of pair types.
Definition: 2Dpfold.h:157
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: 2Dpfold.h:160
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: 2Dpfold.h:179
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: 2Dpfold.h:161
int * my_iindx
Index for moving in quadratic distancy dimensions.
Definition: 2Dpfold.h:169
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,...
Definition: 2Dpfold.h:177
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: 2Dpfold.h:175
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: 2Dpfold.h:180