RNAlib-2.4.3
data_structures.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_DATA_STRUCTURES_H
2 #define VIENNA_RNA_PACKAGE_DATA_STRUCTURES_H
3 
18 /* below are several convenience typedef's we use throughout the ViennaRNA library */
19 
22 
25 
28 
30 typedef struct vrna_cpair_s vrna_cpair_t;
31 
33 typedef struct vrna_sect_s vrna_sect_t;
34 
35 typedef struct vrna_data_linear_s vrna_data_lin_t;
36 
37 typedef struct vrna_color_s vrna_color_t;
38 
40 #ifdef USE_FLOAT_PF
41 typedef float FLT_OR_DBL;
42 #else
43 typedef double FLT_OR_DBL;
44 #endif
45 
46 /* make this interface backward compatible with RNAlib < 2.2.0 */
47 #define VRNA_BACKWARD_COMPAT
48 
49 
50 #ifdef VRNA_BACKWARD_COMPAT
51 
52 /* the following typedefs are for backward compatibility only */
53 
58 typedef struct vrna_basepair_s PAIR;
59 
64 typedef struct vrna_elem_prob_s plist;
69 typedef struct vrna_cpair_s cpair;
70 
75 typedef struct vrna_sect_s sect;
76 
81 typedef struct vrna_bp_stack_s bondT;
82 
83 #endif
84 
85 #include <ViennaRNA/energy_const.h>
87 #include <ViennaRNA/model.h>
88 #include <ViennaRNA/params.h>
89 #include <ViennaRNA/dp_matrices.h>
90 #include <ViennaRNA/constraints.h>
91 #include <ViennaRNA/grammar.h>
95 
96 /*
97  * ############################################################
98  * Here are the type definitions of various datastructures
99  * shared among the Vienna RNA Package
100  * ############################################################
101  */
102 
107  int i;
108  int j;
109 };
110 
114 struct vrna_cpair_s {
115  int i, j, mfe;
116  float p, hue, sat;
117 };
118 
119 struct vrna_color_s {
120  float hue;
121  float sat;
122  float bri;
123 };
124 
126  unsigned int position;
127  float value;
128  vrna_color_t color;
129 };
130 
131 
135 struct vrna_sect_s {
136  int i;
137  int j;
138  int ml;
139 };
140 
145  unsigned int i;
146  unsigned int j;
147 };
148 
149 
150 /*
151  * ############################################################
152  * RNAup data structures
153  * ############################################################
154  */
155 
159 typedef struct pu_contrib {
160  double **H;
161  double **I;
162  double **M;
163  double **E;
164  int length;
165  int w;
166 } pu_contrib;
167 
171 typedef struct interact {
172  double *Pi;
173  double *Gi;
174  double Gikjl;
176  double Gikjl_wo;
177  int i;
178  int k;
179  int j;
180  int l;
181  int length;
182 } interact;
183 
187 typedef struct pu_out {
188  int len;
189  int u_vals;
190  int contribs;
191  char **header;
192  double **u_values;
193 } pu_out;
194 
198 typedef struct constrain {
199  int *indx;
200  char *ptype;
201 } constrain;
202 
203 /*
204  * ############################################################
205  * RNAduplex data structures
206  * ############################################################
207  */
208 
212 typedef struct {
213  int i;
214  int j;
215  int end;
216  char *structure;
217  double energy;
218  double energy_backtrack;
219  double opening_backtrack_x;
220  double opening_backtrack_y;
221  int offset;
222  double dG1;
223  double dG2;
224  double ddG;
225  int tb;
226  int te;
227  int qb;
228  int qe;
229 } duplexT;
230 
231 /*
232  * ############################################################
233  * RNAsnoop data structures
234  * ############################################################
235  */
236 
240 typedef struct node {
241  int k;
242  int energy;
243  struct node *next;
244 } folden;
245 
249 typedef struct {
250  int i;
251  int j;
252  int u;
253  char *structure;
254  float energy;
255  float Duplex_El;
256  float Duplex_Er;
257  float Loop_E;
258  float Loop_D;
259  float pscd;
260  float psct;
261  float pscg;
262  float Duplex_Ol;
263  float Duplex_Or;
264  float Duplex_Ot;
265  float fullStemEnergy;
266 } snoopT;
267 
268 
269 /*
270  * ############################################################
271  * PKplex data structures
272  * ############################################################
273  */
274 
278 typedef struct dupVar {
279  int i;
280  int j;
281  int end;
282  char *pk_helix;
283  char *structure;
284  double energy;
285  int offset;
286  double dG1;
287  double dG2;
288  double ddG;
289  int tb;
290  int te;
291  int qb;
292  int qe;
293  int inactive;
294  int processed;
295 } dupVar;
296 
327 #ifndef VRNA_DISABLE_C11_FEATURES
328 void vrna_C11_features(void);
329 
330 
331 #endif
332 
338 #endif
int l
j<l in shorter seq
Definition: data_structures.h:180
double ** M
multi loops
Definition: data_structures.h:162
void vrna_C11_features(void)
Dummy symbol to check whether the library was build using C11/C++11 features.
Functions to deal with standard dynamic programming (DP) matrices.
double ** H
hairpin loops
Definition: data_structures.h:160
struct dupVar dupVar
Data structure used in RNApkplex.
struct constrain constrain
constraints for cofolding
int u_vals
number of different -u values
Definition: data_structures.h:189
Data structure representing a single entry of an element probability list (e.g. list of pair probabil...
Definition: structure_utils.h:115
Data structure used in RNApkplex.
Definition: data_structures.h:278
struct pu_contrib pu_contrib
contributions to p_u
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: data_structures.h:43
int j
j<l in shorter seq
Definition: data_structures.h:179
Data structure for RNAsnoop (fold energy list)
Definition: data_structures.h:240
contributions to p_u
Definition: data_structures.h:159
int contribs
[-c "SHIME"]
Definition: data_structures.h:190
The model details data structure and its corresponding modifiers.
int i
k<i in longer seq
Definition: data_structures.h:177
Data structure for RNAsnoop.
Definition: data_structures.h:249
double ** u_values
(the -u values * [-c "SHIME"]) * seq len
Definition: data_structures.h:192
Stack of partial structures for backtracking.
Definition: data_structures.h:135
this datastructure is used as input parameter in functions of PS_dot.c
Definition: data_structures.h:114
Energy parameter constants.
Various utility- and helper-functions for secondary structure parsing, converting, etc.
Base pair data structure used in subopt.c.
Definition: data_structures.h:106
int w
longest unpaired region
Definition: data_structures.h:165
struct pu_out pu_out
Collection of all free_energy of beeing unpaired values for output.
Definition: data_structures.h:125
Functions to deal with sets of energy parameters.
int k
k<i in longer seq
Definition: data_structures.h:178
Functions to modify unstructured domains, e.g. to incorporate ligands binding to unpaired stretches...
interaction data structure for RNAup
Definition: data_structures.h:171
double * Pi
probabilities of interaction
Definition: data_structures.h:172
constraints for cofolding
Definition: data_structures.h:198
double ** I
interior loops
Definition: data_structures.h:161
struct node folden
Data structure for RNAsnoop (fold energy list)
int len
sequence length
Definition: data_structures.h:188
int length
length of the input sequence
Definition: data_structures.h:164
char ** header
header line
Definition: data_structures.h:191
int length
length of longer sequence
Definition: data_structures.h:181
struct interact interact
interaction data structure for RNAup
Collection of all free_energy of beeing unpaired values for output.
Definition: data_structures.h:187
double Gikjl
full free energy for interaction between [k,i] k<i in longer seq and [j,l] j<l in shorter seq ...
Definition: data_structures.h:174
Base pair stack element.
Definition: data_structures.h:144
Functions and data structures for constraining secondary structure predictions and evaluation...
double * Gi
free energies of interaction
Definition: data_structures.h:173
Definition: data_structures.h:119
This module provides interfaces that deal with additional structured domains in the folding grammar...
Data structure for RNAduplex.
Definition: data_structures.h:212
The Basic Fold Compound API.
Implementations for the RNA folding grammar.
double Gikjl_wo
Gikjl without contributions for prob_unpaired.
Definition: data_structures.h:176
double ** E
exterior loop
Definition: data_structures.h:163