RNAlib-2.4.5
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 
33 
46 typedef struct vrna_sol_TwoD_pf_t {
47  int k;
48  int l;
51 
76  int maxDistance1,
77  int maxDistance2);
78 
79  /* End of group kl_neighborhood_pf */
81 
105 char *
107  int d1,
108  int d2);
109 
110 
130 char *
132  int d1,
133  int d2,
134  unsigned int length);
135 
136  /* End of group kl_neighborhood_stochbt */
140 
141 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
142 
143 #define TwoDpfold_solution vrna_sol_TwoD_pf_t /* restore compatibility of struct rename */
144 
152 typedef struct {
153  unsigned int alloc;
154  char *ptype;
155  char *sequence;
156  short *S, *S1;
157  unsigned int maxD1;
158  unsigned int maxD2;
160  double temperature; /* temperature in last call to scale_pf_params */
161  double init_temp; /* temperature in last call to scale_pf_params */
162  FLT_OR_DBL *scale;
164  vrna_exp_param_t *pf_params; /* holds all [unscaled] pf parameters */
165 
166  int *my_iindx;
167  int *jindx;
169  short *reference_pt1;
170  short *reference_pt2;
171 
172  unsigned int *referenceBPs1;
173  unsigned int *referenceBPs2;
174  unsigned int *bpdist;
176  unsigned int *mm1;
177  unsigned int *mm2;
179  int circ;
180  int dangles;
181  unsigned int seq_length;
182 
183  FLT_OR_DBL ***Q;
184  FLT_OR_DBL ***Q_B;
185  FLT_OR_DBL ***Q_M;
186  FLT_OR_DBL ***Q_M1;
187  FLT_OR_DBL ***Q_M2;
188 
189  FLT_OR_DBL **Q_c;
190  FLT_OR_DBL **Q_cH;
191  FLT_OR_DBL **Q_cI;
192  FLT_OR_DBL **Q_cM;
193 
194  int **l_min_values;
195  int **l_max_values;
196  int *k_min_values;
197  int *k_max_values;
198 
199  int **l_min_values_b;
200  int **l_max_values_b;
201  int *k_min_values_b;
202  int *k_max_values_b;
203 
204  int **l_min_values_m;
205  int **l_max_values_m;
206  int *k_min_values_m;
207  int *k_max_values_m;
208 
209  int **l_min_values_m1;
210  int **l_max_values_m1;
211  int *k_min_values_m1;
212  int *k_max_values_m1;
213 
214  int **l_min_values_m2;
215  int **l_max_values_m2;
216  int *k_min_values_m2;
217  int *k_max_values_m2;
218 
219  int *l_min_values_qc;
220  int *l_max_values_qc;
221  int k_min_values_qc;
222  int k_max_values_qc;
223 
224  int *l_min_values_qcH;
225  int *l_max_values_qcH;
226  int k_min_values_qcH;
227  int k_max_values_qcH;
228 
229  int *l_min_values_qcI;
230  int *l_max_values_qcI;
231  int k_min_values_qcI;
232  int k_max_values_qcI;
233 
234  int *l_min_values_qcM;
235  int *l_max_values_qcM;
236  int k_min_values_qcM;
237  int k_max_values_qcM;
238 
239  /* auxilary arrays for remaining set of coarse graining (k,l) > (k_max, l_max) */
240  FLT_OR_DBL *Q_rem;
241  FLT_OR_DBL *Q_B_rem;
242  FLT_OR_DBL *Q_M_rem;
243  FLT_OR_DBL *Q_M1_rem;
244  FLT_OR_DBL *Q_M2_rem;
245 
246  FLT_OR_DBL Q_c_rem;
247  FLT_OR_DBL Q_cH_rem;
248  FLT_OR_DBL Q_cI_rem;
249  FLT_OR_DBL Q_cM_rem;
250 
251  vrna_fold_compound_t *compatibility;
253 
272 DEPRECATED(TwoDpfold_vars *
273  get_TwoDpfold_variables(const char *seq,
274  const char *structure1,
275  char *structure2,
276  int circ),
277  "Use the new API and vrna_fold_compound_TwoD() instead");
278 
292 DEPRECATED(void
294  "Use the new API and vrna_fold_compound_free() instead");
295 
320 DEPRECATED(TwoDpfold_solution *
322  int maxDistance1,
323  int maxDistance2),
324  "Use the new API and vrna_pf_TwoD() instead");
325 
347 DEPRECATED(char *
349  int d1,
350  int d2),
351  "Use the new API and vrna_pbacktrack_TwoD() instead");
352 
376 DEPRECATED(char *
378  int d1,
379  int d2,
380  unsigned int length),
381  "Use the new API and vrna_pbacktrack5_TwoD() instead");
382 
388 DEPRECATED(FLT_OR_DBL **TwoDpfold(TwoDpfold_vars *our_variables,
389  int maxDistance1,
390  int maxDistance2),
391  "Use the new API and vrna_pf_TwoD() instead");
392 
398 DEPRECATED(FLT_OR_DBL **TwoDpfold_circ(TwoDpfold_vars *our_variables,
399  int maxDistance1,
400  int maxDistance2),
401  "Use the new API and vrna_pf_TwoD() instead");
402 
403 #endif
404 
405 #endif
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: data_structures.h:43
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:131
char * ptype
Precomputed array of pair types.
Definition: 2Dpfold.h:154
Solution element returned from vrna_pf_TwoD()
Definition: 2Dpfold.h:46
double temperature
Rescale energy parameters to a temperature in degC.
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: 2Dpfold.h:172
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: 2Dpfold.h:158
int * my_iindx
Index for moving in quadratic distancy dimensions.
Definition: 2Dpfold.h:166
FLT_OR_DBL q
partition function
Definition: 2Dpfold.h:49
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.
Various data structures and pre-processor macros.
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...
The data structure that contains temperature scaled Boltzmann weights of the energy parameters...
Definition: params.h:101
double pf_scale
A scaling factor used by pf_fold() to avoid overflows.
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,j].
Definition: 2Dpfold.h:174
void destroy_TwoDpfold_variables(TwoDpfold_vars *vars)
Free all memory occupied by a TwoDpfold_vars datastructure.
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: 2Dpfold.h:157
char * TwoDpfold_pbacktrack(TwoDpfold_vars *vars, int d1, int d2)
Sample secondary structure representatives from a set of distance classes according to their Boltzman...
struct vrna_sol_TwoD_pf_t vrna_sol_TwoD_pf_t
Solution element returned from vrna_pf_TwoD()
int l
Distance to second reference.
Definition: 2Dpfold.h:48
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: 2Dpfold.h:176
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...
vrna_sol_TwoD_pf_t * TwoDpfoldList(TwoDpfold_vars *vars, int maxDistance1, int maxDistance2)
Compute the partition function for all distance classes.
int * jindx
Index for moving in the triangular matrix qm1.
Definition: 2Dpfold.h:167
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...
int circ
backward compatibility variable.. this does not effect anything
int dangles
Switch the energy model for dangling end contributions (0, 1, 2, 3)
char * sequence
The input sequence.
Definition: 2Dpfold.h:155
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.
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: 2Dpfold.h:177
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: 2Dpfold.h:173
int k
Distance to first reference.
Definition: 2Dpfold.h:47
Variables compound for 2Dfold partition function folding.
Definition: 2Dpfold.h:152