RNAlib-2.4.0
structure_utils.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_STRUCT_UTILS_H
2 #define VIENNA_RNA_PACKAGE_STRUCT_UTILS_H
3 
4 /* make this interface backward compatible with RNAlib < 2.2.0 */
5 #define VRNA_BACKWARD_COMPAT
6 
7 #ifdef VRNA_WARN_DEPRECATED
8 # ifdef __GNUC__
9 # define DEPRECATED(func) func __attribute__ ((deprecated))
10 # else
11 # define DEPRECATED(func) func
12 # endif
13 #else
14 # define DEPRECATED(func) func
15 #endif
16 
28 #define VRNA_PLIST_TYPE_BASEPAIR 0
29 #define VRNA_PLIST_TYPE_GQUAD 1
30 #define VRNA_PLIST_TYPE_H_MOTIF 2
31 #define VRNA_PLIST_TYPE_I_MOTIF 3
32 #define VRNA_PLIST_TYPE_UD_MOTIF 4
33 #define VRNA_PLIST_TYPE_STACK 5
34 
35 
39 typedef struct vrna_hx_s vrna_hx_t;
40 
44 typedef struct vrna_elem_prob_s vrna_ep_t;
45 
46 #include <stdio.h>
47 
49 
53 struct vrna_hx_s {
54  unsigned int start;
55  unsigned int end;
56  unsigned int length;
57  unsigned int up5;
58  unsigned int up3;
59 };
60 
70  int i;
71  int j;
72  float p;
73  int type;
74 };
75 
88 char *vrna_db_pack(const char *struc);
89 
100 char *vrna_db_unpack(const char *packed);
101 
111 short *vrna_ptable(const char *structure);
112 
113 
126 short *vrna_pt_pk_get(const char *structure);
127 
134 short *vrna_ptable_copy(const short *pt);
135 
140 short *vrna_pt_ali_get(const char *structure);
141 
149 short *vrna_pt_snoop_get(const char *structure);
150 
154 int *vrna_loopidx_from_ptable(const short *pt);
155 
162 char *vrna_db_from_ptable(short *pt);
163 
164 
176 int vrna_bp_distance( const char *str1,
177  const char *str2);
178 
185 unsigned int *vrna_refBPcnt_matrix(const short *reference_pt,
186  unsigned int turn);
187 
195 unsigned int *vrna_refBPdist_matrix( const short *pt1,
196  const short *pt2,
197  unsigned int turn);
198 
202 char *vrna_db_from_probs( const FLT_OR_DBL *pr,
203  unsigned int length);
204 
208 char vrna_bpp_symbol(const float *x);
209 
222  unsigned int length);
223 
224 void vrna_letter_structure( char *structure,
225  vrna_bp_stack_t *bp,
226  unsigned int length);
227 
243 vrna_ep_t *vrna_plist(const char *struc, float pr);
244 
262 
272 char *vrna_db_from_plist(vrna_ep_t *pairs, unsigned int n);
273 
274 char *vrna_db_to_element_string(const char *structure);
275 
276 vrna_hx_t *vrna_hx_from_ptable(short *pt);
277 vrna_hx_t *vrna_hx_merge(const vrna_hx_t *list, int maxdist);
278 
279 #ifdef VRNA_BACKWARD_COMPAT
280 
281 /*###########################################*/
282 /*# deprecated functions below #*/
283 /*###########################################*/
284 
302 DEPRECATED(void assign_plist_from_db(vrna_ep_t **pl, const char *struc, float pr));
303 
316 DEPRECATED(char *pack_structure(const char *struc));
317 
328 DEPRECATED(char *unpack_structure(const char *packed));
329 
341 DEPRECATED(short *make_pair_table(const char *structure));
342 
343 DEPRECATED(short *make_pair_table_pk(const char *structure));
344 
353 DEPRECATED(short *copy_pair_table(const short *pt));
354 
360 DEPRECATED(short *alimake_pair_table(const char *structure));
361 
368 DEPRECATED(short *make_pair_table_snoop(const char *structure));
369 
370 DEPRECATED(int *make_loop_index_pt(short *pt));
371 
384 DEPRECATED(int bp_distance(const char *str1, const char *str2));
385 
394 DEPRECATED(unsigned int *make_referenceBP_array(short *reference_pt,
395  unsigned int turn));
404 DEPRECATED(unsigned int *compute_BPdifferences( short *pt1,
405  short *pt2,
406  unsigned int turn));
407 
427 DEPRECATED(void assign_plist_from_pr( vrna_ep_t **pl,
428  FLT_OR_DBL *probs,
429  int length,
430  double cutoff));
431 
439 DEPRECATED(void parenthesis_structure(char *structure,
440  vrna_bp_stack_t *bp,
441  int length));
442 
451 DEPRECATED(void parenthesis_zuker(char *structure,
452  vrna_bp_stack_t *bp,
453  int length));
454 
455 DEPRECATED(void letter_structure( char *structure,
456  vrna_bp_stack_t *bp,
457  int length));
458 
463 DEPRECATED(void bppm_to_structure(char *structure, FLT_OR_DBL *pr, unsigned int length));
464 
469 DEPRECATED(char bppm_symbol(const float *x));
470 
471 #endif
472 
477 #endif
char vrna_bpp_symbol(const float *x)
Get a pseudo dot bracket notation for a given probability information.
int * vrna_loopidx_from_ptable(const short *pt)
Get a loop index representation of a structure.
int vrna_bp_distance(const char *str1, const char *str2)
Compute the "base pair" distance between two secondary structures s1 and s2.
Data structure representing an entry of a helix list.
Definition: structure_utils.h:53
Data structure representing a single entry of an element probability list (e.g. list of pair probabil...
Definition: structure_utils.h:69
char * vrna_db_from_bp_stack(vrna_bp_stack_t *bp, unsigned int length)
Create a dot-backet/parenthesis structure from backtracking stack.
int bp_distance(const char *str1, const char *str2)
Compute the "base pair" distance between two secondary structures s1 and s2.
char * vrna_db_pack(const char *struc)
Pack secondary secondary structure, 5:1 compression using base 3 encoding.
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: data_structures.h:48
The most basic data structure required by many functions throughout the RNAlib.
Definition: data_structures.h:463
short * vrna_ptable(const char *structure)
Create a pair table of a secondary structure.
char * vrna_db_from_probs(const FLT_OR_DBL *pr, unsigned int length)
Create a dot-bracket like structure string from base pair probability matrix.
void parenthesis_zuker(char *structure, vrna_bp_stack_t *bp, int length)
Create a dot-backet/parenthesis structure from backtracking stack obtained by zuker suboptimal calcul...
char * vrna_db_from_ptable(short *pt)
Convert a pair table into dot-parenthesis notation.
char * vrna_db_from_plist(vrna_ep_t *pairs, unsigned int n)
Convert a list of base pairs into dot-bracket notation.
vrna_ep_t * vrna_plist(const char *struc, float pr)
Create a vrna_ep_t from a dot-bracket string.
Various data structures and pre-processor macros.
short * vrna_pt_pk_get(const char *structure)
Create a pair table of a secondary structure (pseudo-knot version)
short * make_pair_table(const char *structure)
Create a pair table of a secondary structure.
char bppm_symbol(const float *x)
Get a pseudo dot bracket notation for a given probability information.
unsigned int * compute_BPdifferences(short *pt1, short *pt2, unsigned int turn)
Make a reference base pair distance matrix.
unsigned int * vrna_refBPdist_matrix(const short *pt1, const short *pt2, unsigned int turn)
Make a reference base pair distance matrix.
void assign_plist_from_pr(vrna_ep_t **pl, FLT_OR_DBL *probs, int length, double cutoff)
Create a vrna_ep_t from a probability matrix.
char * vrna_db_unpack(const char *packed)
Unpack secondary structure previously packed with vrna_db_pack()
short * copy_pair_table(const short *pt)
Get an exact copy of a pair table.
short * vrna_pt_ali_get(const char *structure)
Create a pair table of a secondary structure (snoop align version)
void bppm_to_structure(char *structure, FLT_OR_DBL *pr, unsigned int length)
Create a dot-bracket like structure string from base pair probability matrix.
void parenthesis_structure(char *structure, vrna_bp_stack_t *bp, int length)
Create a dot-backet/parenthesis structure from backtracking stack.
Base pair stack element.
Definition: data_structures.h:229
FLT_OR_DBL * pr
A pointer to the base pair probability matrix.
char * unpack_structure(const char *packed)
Unpack secondary structure previously packed with pack_structure()
char * pack_structure(const char *struc)
Pack secondary secondary structure, 5:1 compression using base 3 encoding.
short * alimake_pair_table(const char *structure)
void assign_plist_from_db(vrna_ep_t **pl, const char *struc, float pr)
Create a vrna_ep_t from a dot-bracket string.
vrna_ep_t * vrna_plist_from_probs(vrna_fold_compound_t *vc, double cut_off)
Create a vrna_ep_t from base pair probability matrix.
short * vrna_pt_snoop_get(const char *structure)
Create a pair table of a secondary structure (snoop version)
short * make_pair_table_snoop(const char *structure)
short * vrna_ptable_copy(const short *pt)
Get an exact copy of a pair table.
int pairs
contains the number of base pairs in the last parsed structure.
unsigned int * vrna_refBPcnt_matrix(const short *reference_pt, unsigned int turn)
Make a reference base pair count matrix.
unsigned int * make_referenceBP_array(short *reference_pt, unsigned int turn)
Make a reference base pair count matrix.