RNAlib-2.6.0b
 
Loading...
Searching...
No Matches
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
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
39
58typedef void (*vrna_auxdata_free_f)(void *data);
59
60DEPRECATED(typedef void (vrna_callback_free_auxdata)(void *data),
61 "Use vrna_auxdata_free_f instead!");
62
81typedef void (*vrna_recursion_status_f)(unsigned char status,
82 void *data);
83
84DEPRECATED(typedef void (vrna_callback_recursion_status)(unsigned char status,
85 void *data),
86 "Use vrna_recursion_status_f instead!");
87
88
95#define VRNA_STATUS_MFE_PRE (unsigned char)1
96
103#define VRNA_STATUS_MFE_POST (unsigned char)2
104
110#define VRNA_STATUS_PF_PRE (unsigned char)3
111
117#define VRNA_STATUS_PF_POST (unsigned char)4
118
119
120#include <ViennaRNA/model.h>
122#include <ViennaRNA/sequence.h>
126#include <ViennaRNA/grammar.h>
129
130#ifdef VRNA_WITH_SVM
131#include <ViennaRNA/zscore.h>
132#endif
133
134
138typedef enum {
142
143
156struct vrna_fc_s {
168 unsigned int length;
169#ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
170 DEPRECATED(int cutpoint,
171 "Use strand_* members instead");
175#endif
176 unsigned int *strand_number;
177 unsigned int *strand_order;
178 unsigned int *strand_order_uniq;
179 unsigned int *strand_start;
180 unsigned int *strand_end;
182 unsigned int strands;
194 int *iindx;
195 int *jindx;
208 void *auxdata;
223 /* data structure to adjust additional structural domains, such as G-quadruplexes */
226 /* data structure to adjust additional contributions to unpaired stretches, e.g. due to protein binding */
229 /* auxiliary (user-defined) extension to the folding grammar */
236#ifndef VRNA_DISABLE_C11_FEATURES
237 /* C11 support for unnamed unions/structs */
238 union {
239 struct {
240#endif
241
246 char *sequence;
253 short *encoding5;
254 short *encoding3;
255
256 short *sequence_encoding2;
257
258
259 char *ptype;
281#ifndef VRNA_DISABLE_C11_FEATURES
282 /* C11 support for unnamed unions/structs */
283};
284struct {
285#endif
286
291 char **sequences;
295 unsigned int n_seq;
298 char *cons_seq;
301 short *S_cons;
304 short **S;
307 short **S5;
310 short **S3;
313 char **Ss;
314 unsigned int **a2s;
315 int *pscore;
328 int oldAliEn;
329
333#ifndef VRNA_DISABLE_C11_FEATURES
334};
335};
336#endif
337
344 unsigned int maxD1;
345 unsigned int maxD2;
349 unsigned int *referenceBPs1;
350 unsigned int *referenceBPs2;
351 unsigned int *bpdist;
353 unsigned int *mm1;
354 unsigned int *mm2;
367 char **ptype_local;
368#ifdef VRNA_WITH_SVM
369 vrna_zsc_dat_t zscore_data;
370#endif
371
375};
376
377
378/* the definitions below should be used for functions that return/receive/destroy fold compound data structures */
379
383#define VRNA_OPTION_DEFAULT 0U
384
391#define VRNA_OPTION_MFE 1U
392
399#define VRNA_OPTION_PF 2U
400
404#define VRNA_OPTION_HYBRID 4U
405
415#define VRNA_OPTION_EVAL_ONLY 8U
416
420#define VRNA_OPTION_WINDOW 16U
421
460vrna_fold_compound(const char *sequence,
461 const vrna_md_t *md_p,
462 unsigned int options);
463
464
503vrna_fold_compound_comparative(const char **sequences,
504 vrna_md_t *md_p,
505 unsigned int options);
506
507
509vrna_fold_compound_comparative2(const char **sequences,
510 const char **names,
511 const unsigned char *orientation,
512 const unsigned long long *start,
513 const unsigned long long *genome_size,
514 vrna_md_t *md_p,
515 unsigned int options);
516
517
519vrna_fold_compound_TwoD(const char *sequence,
520 const char *s1,
521 const char *s2,
522 vrna_md_t *md_p,
523 unsigned int options);
524
525
526int
527vrna_fold_compound_prepare(vrna_fold_compound_t *fc,
528 unsigned int options);
529
530
538void
540
541
559void
561 void *data,
563
564
580void
583
584
589#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:281
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:110
The datastructure that contains temperature scaled energy parameters.
Definition: basic.h:57
vrna_auxdata_free_f free_auxdata
A callback to free auxiliary user data whenever the fold_compound itself is free'd.
Definition: fold_compound.h:212
vrna_msa_t * alignment
Set of alignments.
Definition: fold_compound.h:184
unsigned int * mm1
Maximum matching matrix, reference struct 1 disallowed.
Definition: fold_compound.h:353
int * pscore
Precomputed array of pair types expressed as pairing scores.
Definition: fold_compound.h:315
unsigned int * referenceBPs2
Matrix containing number of basepairs of reference structure2 in interval [i,j].
Definition: fold_compound.h:350
vrna_param_t * params
The precomputed free energy contributions for each type of loop.
Definition: fold_compound.h:191
void * auxdata
A pointer to auxiliary, user-defined data.
Definition: fold_compound.h:208
unsigned int * strand_number
The strand number a particular nucleotide is associated with.
Definition: fold_compound.h:176
char ** ptype_local
Pair type array (for local folding)
Definition: fold_compound.h:367
unsigned int maxD2
Maximum allowed base pair distance to second reference.
Definition: fold_compound.h:345
const vrna_fc_type_e type
The type of the vrna_fold_compound_t.
Definition: fold_compound.h:161
unsigned int * strand_order
The strand order, i.e. permutation of current concatenated sequence.
Definition: fold_compound.h:177
char * ptype
Pair type array.
Definition: fold_compound.h:259
unsigned int maxD1
Maximum allowed base pair distance to first reference.
Definition: fold_compound.h:344
vrna_gr_aux_t * aux_grammar
Additional decomposition grammar rules.
Definition: fold_compound.h:230
vrna_ud_t * domains_up
Additional unstructured domains.
Definition: fold_compound.h:227
int * jindx
DP matrix accessor
Definition: fold_compound.h:195
unsigned int * mm2
Maximum matching matrix, reference struct 2 disallowed.
Definition: fold_compound.h:354
unsigned int * strand_start
The start position of a particular strand within the current concatenated sequence.
Definition: fold_compound.h:179
unsigned int * bpdist
Matrix containing base pair distance of reference structure 1 and 2 on interval [i,...
Definition: fold_compound.h:351
unsigned int n_seq
The number of sequences in the alignment.
Definition: fold_compound.h:295
unsigned int * referenceBPs1
Matrix containing number of basepairs of reference structure1 in interval [i,j].
Definition: fold_compound.h:349
vrna_exp_param_t * exp_params
The precomputed free energy contributions as Boltzmann factors
Definition: fold_compound.h:192
short ** S5
S5[s][i] holds next base 5' of i in sequence s.
Definition: fold_compound.h:307
char * ptype_pf_compat
ptype array indexed via iindx
Definition: fold_compound.h:268
vrna_seq_t * nucleotides
Set of nucleotide sequences.
Definition: fold_compound.h:183
char * sequence
The input sequence string.
Definition: fold_compound.h:246
short * reference_pt2
A pairtable of the second reference structure.
Definition: fold_compound.h:347
unsigned int length
The length of the sequence (or sequence alignment)
Definition: fold_compound.h:168
char ** sequences
The aligned sequences.
Definition: fold_compound.h:291
short * sequence_encoding
Numerical encoding of the input sequence.
Definition: fold_compound.h:249
short * reference_pt1
A pairtable of the first reference structure.
Definition: fold_compound.h:346
short * S_cons
Numerical encoding of the consensus sequence.
Definition: fold_compound.h:301
unsigned int * strand_end
The end (last) position of a particular strand within the current concatenated sequence.
Definition: fold_compound.h:180
vrna_zsc_dat_t zscore_data
Data structure with settings for z-score computations.
Definition: fold_compound.h:369
short * pscore_pf_compat
Precomputed array of pair types expressed as pairing scores indexed via iindx.
Definition: fold_compound.h:321
vrna_sd_t * domains_struc
Additional structured domains.
Definition: fold_compound.h:224
vrna_sc_t ** scs
A set of soft constraints (for each sequence in the alignment)
Definition: fold_compound.h:325
char * cons_seq
The consensus sequence of the aligned sequences.
Definition: fold_compound.h:298
vrna_sc_t * sc
The soft constraints for usage in structure prediction and evaluation.
Definition: fold_compound.h:273
vrna_mx_mfe_t * matrices
The MFE DP matrices.
Definition: fold_compound.h:188
vrna_hc_t * hc
The hard constraints data structure used for structure prediction.
Definition: fold_compound.h:186
unsigned int strands
Number of interacting strands.
Definition: fold_compound.h:182
int ** pscore_local
Precomputed array of pair types expressed as pairing scores.
Definition: fold_compound.h:318
int window_size
window size for local folding sliding window approach
Definition: fold_compound.h:366
int cutpoint
The position of the (cofold) cutpoint within the provided sequence. If there is no cutpoint,...
Definition: fold_compound.h:171
short ** S
Numerical encoding of the sequences in the alignment.
Definition: fold_compound.h:304
vrna_recursion_status_f stat_cb
Recursion status callback (usually called just before, and after recursive computations in the librar...
Definition: fold_compound.h:203
unsigned int * strand_order_uniq
The strand order array where identical sequences have the same ID.
Definition: fold_compound.h:178
short ** S3
Sl[s][i] holds next base 3' of i in sequence s.
Definition: fold_compound.h:310
vrna_mx_pf_t * exp_matrices
The PF DP matrices
Definition: fold_compound.h:189
int * iindx
DP matrix accessor
Definition: fold_compound.h:194
vrna_fc_type_e
An enumerator that is used to specify the type of a vrna_fold_compound_t.
Definition: fold_compound.h:138
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_recursion_status_f f)
Add a recursion status callback to the vrna_fold_compound_t.
void(* vrna_auxdata_free_f)(void *data)
Callback to free memory allocated for auxiliary user-provided data.
Definition: fold_compound.h:58
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.
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_auxdata_free_f f)
Add auxiliary data to the vrna_fold_compound_t.
void(* vrna_recursion_status_f)(unsigned char status, void *data)
Callback to perform specific user-defined actions before, or after recursive computations.
Definition: fold_compound.h:81
@ VRNA_FC_TYPE_SINGLE
Definition: fold_compound.h:139
@ VRNA_FC_TYPE_COMPARATIVE
Definition: fold_compound.h:140
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:156
Definition: grammar.h:57
The hard constraints data structure.
Definition: hard.h:377
The data structure that contains the complete model details used throughout the calculations.
Definition: model.h:203
The soft constraints data structure.
Definition: soft.h:211
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.