RNAlib-2.3.1
unstructured_domains.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_UNSTRUCTURED_DOMAIN_H
2 #define VIENNA_RNA_PACKAGE_UNSTRUCTURED_DOMAIN_H
3 
64 
66 
68 
73 typedef int (vrna_callback_ud_energy)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, void *data);
74 
79 typedef FLT_OR_DBL (vrna_callback_ud_exp_energy)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, void *data);
80 
85 typedef void (vrna_callback_ud_production)(vrna_fold_compound_t *vc, void *data);
86 
91 typedef void (vrna_callback_ud_exp_production)(vrna_fold_compound_t *vc, void *data);
92 
93 
98 typedef void (vrna_callback_ud_probs_add)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, FLT_OR_DBL exp_energy, void *data);
99 
104 typedef FLT_OR_DBL (vrna_callback_ud_probs_get)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, int motif, void *data);
105 
106 
111 #define VRNA_UNSTRUCTURED_DOMAIN_EXT_LOOP 1U
112 
117 #define VRNA_UNSTRUCTURED_DOMAIN_HP_LOOP 2U
118 
123 #define VRNA_UNSTRUCTURED_DOMAIN_INT_LOOP 4U
124 
129 #define VRNA_UNSTRUCTURED_DOMAIN_MB_LOOP 8U
130 
135 #define VRNA_UNSTRUCTURED_DOMAIN_MOTIF 16U
136 
141 #define VRNA_UNSTRUCTURED_DOMAIN_ALL_LOOPS (VRNA_UNSTRUCTURED_DOMAIN_EXT_LOOP | VRNA_UNSTRUCTURED_DOMAIN_HP_LOOP | VRNA_UNSTRUCTURED_DOMAIN_INT_LOOP | VRNA_UNSTRUCTURED_DOMAIN_MB_LOOP)
142 
148 
149  /*
150  **********************************
151  Keep track of all added motifs
152  **********************************
153  */
155  unsigned int *uniq_motif_size;
158  char **motif;
159  unsigned int *motif_size;
160  double *motif_en;
161  unsigned int *motif_type;
163  /*
164  **********************************
165  Grammar extension for ligand
166  binding
167  **********************************
168  */
176  void *data;
180 };
181 
182 
184  int start;
185  int number;
186 };
187 
188 
214  const char *motif,
215  double motif_en,
216  unsigned int loop_type);
217 
218 
224  int i,
225  unsigned int loop_type);
226 
227 
228 int *
229 vrna_ud_get_motifs_at(vrna_fold_compound_t *vc,
230  int i,
231  unsigned int loop_type);
232 
233 
235 vrna_ud_detect_motifs(vrna_fold_compound_t *vc,
236  const char *structure);
237 
238 
250 
268  void *data,
269  vrna_callback_free_auxdata *free_cb);
270 
308 
309 
336  vrna_callback_ud_exp_energy *exp_e_cb);
337 
338 
342 
343 #endif
vrna_callback_ud_energy * energy_cb
Callback to evaluate free energy of ligand binding to a particular unpaired stretch.
Definition: unstructured_domains.h:174
double * motif_en
Ligand binding free energy contribution.
Definition: unstructured_domains.h:160
void vrna_ud_set_prod_rule_cb(vrna_fold_compound_t *vc, vrna_callback_ud_production *pre_cb, vrna_callback_ud_energy *e_cb)
Attach production rule callbacks for free energies computations.
vrna_callback_ud_exp_energy * exp_energy_cb
Callback to evaluate Boltzmann factor of ligand binding to a particular unpaired stretch.
Definition: unstructured_domains.h:175
void( vrna_callback_ud_exp_production)(vrna_fold_compound_t *vc, void *data)
Callback for pre-processing the production rule of the ligand binding to unpaired stretches feature (...
Definition: unstructured_domains.h:91
int * vrna_ud_get_motif_size_at(vrna_fold_compound_t *vc, int i, unsigned int loop_type)
Get a list of unique motif sizes that start at a certain position within the sequence.
unsigned int * motif_type
Type of motif, i.e. loop type the ligand binds to.
Definition: unstructured_domains.h:161
void * data
Auxiliary data structure passed to energy evaluation callbacks.
Definition: unstructured_domains.h:176
vrna_callback_ud_exp_production * exp_prod_cb
Callback to ligand binding production rule, i.e. create/fill DP partition function matrices...
Definition: unstructured_domains.h:173
void vrna_ud_set_prob_cb(vrna_fold_compound_t *vc, vrna_callback_ud_probs_add *setter, vrna_callback_ud_probs_get *getter)
void( vrna_callback_ud_probs_add)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, FLT_OR_DBL exp_energy, void *data)
Callback to store/add equilibrium probability for a ligand bound to an unpaired sequence segment...
Definition: unstructured_domains.h:98
Data structure to store all functionality for ligand binding.
Definition: unstructured_domains.h:147
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: data_structures.h:48
FLT_OR_DBL( vrna_callback_ud_exp_energy)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, void *data)
Callback to retrieve Boltzmann factor of the binding free energy of a ligand bound to an unpaired seq...
Definition: unstructured_domains.h:79
The most basic data structure required by many functions throughout the RNAlib.
Definition: data_structures.h:454
int( vrna_callback_ud_energy)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, void *data)
Callback to retrieve binding free energy of a ligand bound to an unpaired sequence segment...
Definition: unstructured_domains.h:73
void( vrna_callback_ud_production)(vrna_fold_compound_t *vc, void *data)
Callback for pre-processing the production rule of the ligand binding to unpaired stretches feature...
Definition: unstructured_domains.h:85
vrna_callback_free_auxdata * free_data
Callback to free auxiliary data structure.
Definition: unstructured_domains.h:177
Definition: unstructured_domains.h:183
unsigned int * motif_size
Motif lengths.
Definition: unstructured_domains.h:159
Various data structures and pre-processor macros.
FLT_OR_DBL( vrna_callback_ud_probs_get)(vrna_fold_compound_t *vc, int i, int j, unsigned int loop_type, int motif, void *data)
Callback to retrieve equilibrium probability for a ligand bound to an unpaired sequence segment...
Definition: unstructured_domains.h:104
int uniq_motif_count
The unique number of motifs of different lengths.
Definition: unstructured_domains.h:154
char ** motif
Motif sequences.
Definition: unstructured_domains.h:158
unsigned int * uniq_motif_size
An array storing a unique list of motif lengths.
Definition: unstructured_domains.h:155
void( vrna_callback_free_auxdata)(void *data)
Callback to free memory allocated for auxiliary user-provided data.
Definition: data_structures.h:60
vrna_callback_ud_probs_add * probs_add
Callback to store/add outside partition function.
Definition: unstructured_domains.h:178
void vrna_ud_add_motif(vrna_fold_compound_t *vc, const char *motif, double motif_en, unsigned int loop_type)
Add an unstructured domain motif, e.g. for ligand binding.
int motif_count
Total number of distinguished motifs.
Definition: unstructured_domains.h:157
void vrna_ud_set_data(vrna_fold_compound_t *vc, void *data, vrna_callback_free_auxdata *free_cb)
Attach an auxiliary data structure.
void vrna_ud_set_exp_prod_rule_cb(vrna_fold_compound_t *vc, vrna_callback_ud_exp_production *pre_cb, vrna_callback_ud_exp_energy *exp_e_cb)
Attach production rule for partition function.
void vrna_ud_remove(vrna_fold_compound_t *vc)
Remove ligand binding to unpaired stretches.
vrna_callback_ud_probs_get * probs_get
Callback to retrieve outside partition function.
Definition: unstructured_domains.h:179
vrna_callback_ud_production * prod_cb
Callback to ligand binding production rule, i.e. create/fill DP free energy matrices.
Definition: unstructured_domains.h:169