RNAlib-2.5.0
fold_compound.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_FOLD_COMPOUND_H
2 #define VIENNA_RNA_PACKAGE_FOLD_COMPOUND_H
3 
26 typedef struct vrna_fc_s vrna_fold_compound_t;
27 
46 typedef void (vrna_callback_free_auxdata)(void *data);
47 
67 typedef void (vrna_callback_recursion_status)(unsigned char status,
68  void *data);
69 
76 #define VRNA_STATUS_MFE_PRE (unsigned char)1
77 
84 #define VRNA_STATUS_MFE_POST (unsigned char)2
85 
91 #define VRNA_STATUS_PF_PRE (unsigned char)3
92 
98 #define VRNA_STATUS_PF_POST (unsigned char)4
99 
100 
101 #include <ViennaRNA/model.h>
102 #include <ViennaRNA/params/basic.h>
103 #include <ViennaRNA/sequence.h>
104 #include <ViennaRNA/dp_matrices.h>
107 #include <ViennaRNA/grammar.h>
110 
111 #ifdef VRNA_WITH_SVM
112 #include <ViennaRNA/zscore.h>
113 #endif
114 
115 
119 typedef enum {
123 
124 
137 struct vrna_fc_s {
149  unsigned int length;
150  int cutpoint;
154  unsigned int *strand_number;
155  unsigned int *strand_order;
156  unsigned int *strand_order_uniq;
157  unsigned int *strand_start;
158  unsigned int *strand_end;
160  unsigned int strands;
161  vrna_seq_t *nucleotides;
162  vrna_msa_t *alignment;
163 
172  int *iindx;
173  int *jindx;
186  void *auxdata;
201  /* data structure to adjust additional structural domains, such as G-quadruplexes */
204  /* data structure to adjust additional contributions to unpaired stretches, e.g. due to protein binding */
207  /* auxiliary (user-defined) extension to the folding grammar */
208  vrna_gr_aux_t *aux_grammar;
209 
214 #ifndef VRNA_DISABLE_C11_FEATURES
215  /* C11 support for unnamed unions/structs */
216  union {
217  struct {
218 #endif
219 
224  char *sequence;
231  short *sequence_encoding2;
232  char *ptype;
254 #ifndef VRNA_DISABLE_C11_FEATURES
255  /* C11 support for unnamed unions/structs */
256 };
257 struct {
258 #endif
259 
264  char **sequences;
268  unsigned int n_seq;
271  char *cons_seq;
274  short *S_cons;
277  short **S;
280  short **S5;
283  short **S3;
286  char **Ss;
287  unsigned int **a2s;
288  int *pscore;
291  int **pscore_local;
301  int oldAliEn;
302 
306 #ifndef VRNA_DISABLE_C11_FEATURES
307 };
308 };
309 #endif
310 
317  unsigned int maxD1;
318  unsigned int maxD2;
319  short *reference_pt1;
320  short *reference_pt2;
322  unsigned int *referenceBPs1;
323  unsigned int *referenceBPs2;
324  unsigned int *bpdist;
326  unsigned int *mm1;
327  unsigned int *mm2;
340  char **ptype_local;
341 #ifdef VRNA_WITH_SVM
342  vrna_zsc_dat_t zscore_data;
343 #endif
344 
348 };
349 
350 
351 /* the definitions below should be used for functions that return/receive/destroy fold compound data structures */
352 
356 #define VRNA_OPTION_DEFAULT 0U
357 
364 #define VRNA_OPTION_MFE 1U
365 
372 #define VRNA_OPTION_PF 2U
373 
377 #define VRNA_OPTION_HYBRID 4U
378 
388 #define VRNA_OPTION_EVAL_ONLY 8U
389 
393 #define VRNA_OPTION_WINDOW 16U
394 
433 vrna_fold_compound(const char *sequence,
434  const vrna_md_t *md_p,
435  unsigned int options);
436 
437 
476 vrna_fold_compound_comparative(const char **sequences,
477  vrna_md_t *md_p,
478  unsigned int options);
479 
480 
482 vrna_fold_compound_comparative2(const char **sequences,
483  const char **names,
484  const unsigned char *orientation,
485  const unsigned long long *start,
486  const unsigned long long *genome_size,
487  vrna_md_t *md_p,
488  unsigned int options);
489 
490 
492 vrna_fold_compound_TwoD(const char *sequence,
493  const char *s1,
494  const char *s2,
495  vrna_md_t *md_p,
496  unsigned int options);
497 
498 
499 int
500 vrna_fold_compound_prepare(vrna_fold_compound_t *fc,
501  unsigned int options);
502 
503 
511 void
513 
514 
532 void
534  void *data,
536 
537 
553 void
556 
557 
562 #endif
Functions to deal with standard dynamic programming (DP) matrices.
Implementations for the RNA folding grammar.
Definition: sequence.h:52
Data structure representing a nucleotide sequence.
Definition: sequence.h:41
Data structure to store all functionality for ligand binding.
Definition: unstructured_domains.h:228
Minimum Free Energy (MFE) Dynamic Programming (DP) matrices data structure required within the vrna_f...
Definition: dp_matrices.h:46
Partition function (PF) Dynamic Programming (DP) matrices data structure required within the vrna_fol...
Definition: dp_matrices.h:206
The data structure that contains temperature scaled Boltzmann weights of the energy parameters.
Definition: basic.h:103
The datastructure that contains temperature scaled energy parameters.
Definition: basic.h:57
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: fold_compound.h:326
int * pscore
Precomputed array of pair types expressed as pairing scores.
Definition: fold_compound.h:288
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: fold_compound.h:323
vrna_param_t * params
The precomputed free energy contributions for each type of loop.
Definition: fold_compound.h:169
void * auxdata
A pointer to auxiliary, user-defined data.
Definition: fold_compound.h:186
unsigned int * strand_number
The strand number a particular nucleotide is associated with.
Definition: fold_compound.h:154
char ** ptype_local
Pair type array (for local folding)
Definition: fold_compound.h:340
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: fold_compound.h:318
const vrna_fc_type_e type
The type of the vrna_fold_compound_t.
Definition: fold_compound.h:142
unsigned int * strand_order
The strand order, i.e. permutation of current concatenated sequence.
Definition: fold_compound.h:155
char * ptype
Pair type array.
Definition: fold_compound.h:232
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: fold_compound.h:317
vrna_ud_t * domains_up
Additional unstructured domains.
Definition: fold_compound.h:205
int * jindx
DP matrix accessor
Definition: fold_compound.h:173
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: fold_compound.h:327
unsigned int * strand_start
The start position of a particular strand within the current concatenated sequence.
Definition: fold_compound.h:157
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,...
Definition: fold_compound.h:324
unsigned int n_seq
The number of sequences in the alignment.
Definition: fold_compound.h:268
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: fold_compound.h:322
vrna_exp_param_t * exp_params
The precomputed free energy contributions as Boltzmann factors
Definition: fold_compound.h:170
short ** S5
S5[s][i] holds next base 5' of i in sequence s.
Definition: fold_compound.h:280
char * ptype_pf_compat
ptype array indexed via iindx
Definition: fold_compound.h:241
vrna_callback_recursion_status * stat_cb
Recursion status callback (usually called just before, and after recursive computations in the librar...
Definition: fold_compound.h:181
char * sequence
The input sequence string.
Definition: fold_compound.h:224
vrna_callback_free_auxdata * free_auxdata
A callback to free auxiliary user data whenever the fold_compound itself is free'd.
Definition: fold_compound.h:190
short * reference_pt2
A pairtable of the second reference structure.
Definition: fold_compound.h:320
unsigned int length
The length of the sequence (or sequence alignment)
Definition: fold_compound.h:149
char ** sequences
The aligned sequences.
Definition: fold_compound.h:264
short * sequence_encoding
Numerical encoding of the input sequence.
Definition: fold_compound.h:227
short * reference_pt1
A pairtable of the first reference structure.
Definition: fold_compound.h:319
short * S_cons
Numerical encoding of the consensus sequence.
Definition: fold_compound.h:274
unsigned int * strand_end
The end (last) position of a particular strand within the current concatenated sequence.
Definition: fold_compound.h:158
short * pscore_pf_compat
Precomputed array of pair types expressed as pairing scores indexed via iindx.
Definition: fold_compound.h:294
vrna_sd_t * domains_struc
Additional structured domains.
Definition: fold_compound.h:202
vrna_sc_t ** scs
A set of soft constraints (for each sequence in the alignment)
Definition: fold_compound.h:298
char * cons_seq
The consensus sequence of the aligned sequences.
Definition: fold_compound.h:271
vrna_sc_t * sc
The soft constraints for usage in structure prediction and evaluation.
Definition: fold_compound.h:246
vrna_mx_mfe_t * matrices
The MFE DP matrices.
Definition: fold_compound.h:166
vrna_hc_t * hc
The hard constraints data structure used for structure prediction.
Definition: fold_compound.h:164
int ** pscore_local
Precomputed array of pair types expressed as pairing scores.
Definition: fold_compound.h:291
int window_size
window size for local folding sliding window approach
Definition: fold_compound.h:339
int cutpoint
The position of the (cofold) cutpoint within the provided sequence. If there is no cutpoint,...
Definition: fold_compound.h:150
short ** S
Numerical encoding of the sequences in the alignment.
Definition: fold_compound.h:277
unsigned int * strand_order_uniq
The strand order array where identical sequences have the same ID.
Definition: fold_compound.h:156
short ** S3
Sl[s][i] holds next base 3' of i in sequence s.
Definition: fold_compound.h:283
vrna_mx_pf_t * exp_matrices
The PF DP matrices
Definition: fold_compound.h:167
int * iindx
DP matrix accessor
Definition: fold_compound.h:172
vrna_fc_type_e
An enumerator that is used to specify the type of a vrna_fold_compound_t.
Definition: fold_compound.h:119
vrna_fold_compound_t * vrna_fold_compound(const char *sequence, const vrna_md_t *md_p, unsigned int options)
Retrieve a vrna_fold_compound_t data structure for single sequences and hybridizing sequences.
void vrna_fold_compound_free(vrna_fold_compound_t *fc)
Free memory occupied by a vrna_fold_compound_t.
void vrna_fold_compound_add_callback(vrna_fold_compound_t *fc, vrna_callback_recursion_status *f)
Add a recursion status callback to the vrna_fold_compound_t.
void() vrna_callback_free_auxdata(void *data)
Callback to free memory allocated for auxiliary user-provided data.
Definition: fold_compound.h:46
void() vrna_callback_recursion_status(unsigned char status, void *data)
Callback to perform specific user-defined actions before, or after recursive computations.
Definition: fold_compound.h:67
vrna_fold_compound_t * vrna_fold_compound_comparative(const char **sequences, vrna_md_t *md_p, unsigned int options)
Retrieve a vrna_fold_compound_t data structure for sequence alignments.
void vrna_fold_compound_add_auxdata(vrna_fold_compound_t *fc, void *data, vrna_callback_free_auxdata *f)
Add auxiliary data to the vrna_fold_compound_t.
@ VRNA_FC_TYPE_SINGLE
Definition: fold_compound.h:120
@ VRNA_FC_TYPE_COMPARATIVE
Definition: fold_compound.h:121
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:137
Definition: grammar.h:53
The hard constraints data structure.
Definition: hard.h:368
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:180
The soft constraints data structure.
Definition: soft.h:171
Functions and data structures for handling of secondary structure hard constraints.
The model details data structure and its corresponding modifiers.
Functions to deal with sets of energy parameters.
Functions and data structures related to sequence representations ,.
Functions and data structures for secondary structure soft constraints.
This module provides interfaces that deal with additional structured domains in the folding grammar.
Definition: structured_domains.h:26
Functions to modify unstructured domains, e.g. to incorporate ligands binding to unpaired stretches.