RNAlib-2.4.5
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 #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 
27 #define VRNA_PLIST_TYPE_BASEPAIR 0
28 #define VRNA_PLIST_TYPE_GQUAD 1
29 #define VRNA_PLIST_TYPE_H_MOTIF 2
30 #define VRNA_PLIST_TYPE_I_MOTIF 3
31 #define VRNA_PLIST_TYPE_UD_MOTIF 4
32 #define VRNA_PLIST_TYPE_STACK 5
33 
39 #define VRNA_BRACKETS_ALPHA 4U
40 
46 #define VRNA_BRACKETS_RND 8U
47 
53 #define VRNA_BRACKETS_CLY 16U
54 
60 #define VRNA_BRACKETS_ANG 32U
61 
67 #define VRNA_BRACKETS_SQR 64U
68 
74 #define VRNA_BRACKETS_DEFAULT \
75  (VRNA_BRACKETS_RND | \
76  VRNA_BRACKETS_CLY | \
77  VRNA_BRACKETS_ANG | \
78  VRNA_BRACKETS_SQR)
79 
80 
84 typedef struct vrna_hx_s vrna_hx_t;
85 
89 typedef struct vrna_elem_prob_s vrna_ep_t;
90 
91 #include <stdio.h>
92 
94 
98 struct vrna_hx_s {
99  unsigned int start;
100  unsigned int end;
101  unsigned int length;
102  unsigned int up5;
103  unsigned int up3;
104 };
105 
115  int i;
116  int j;
117  float p;
118  int type;
119 };
120 
133 char *vrna_db_pack(const char *struc);
134 
135 
146 char *vrna_db_unpack(const char *packed);
147 
148 
160 short *vrna_ptable(const char *structure);
161 
162 
178 short *
179 vrna_ptable_from_string(const char *string,
180  unsigned int options);
181 
182 
195 short *vrna_pt_pk_get(const char *structure);
196 
197 
204 short *vrna_ptable_copy(const short *pt);
205 
206 
211 short *vrna_pt_ali_get(const char *structure);
212 
213 
221 short *vrna_pt_snoop_get(const char *structure);
222 
223 
227 int *vrna_loopidx_from_ptable(const short *pt);
228 
229 
245 void
246 vrna_db_flatten(char *structure,
247  unsigned int options);
248 
249 
269 void
270 vrna_db_flatten_to(char *string,
271  const char target[3],
272  unsigned int options);
273 
274 
281 char *vrna_db_from_ptable(short *pt);
282 
283 
295 char *vrna_db_from_WUSS(const char *wuss);
296 
297 
309 int vrna_bp_distance(const char *str1,
310  const char *str2);
311 
312 
319 unsigned int *vrna_refBPcnt_matrix(const short *reference_pt,
320  unsigned int turn);
321 
322 
330 unsigned int *vrna_refBPdist_matrix(const short *pt1,
331  const short *pt2,
332  unsigned int turn);
333 
334 
338 char *vrna_db_from_probs(const FLT_OR_DBL *pr,
339  unsigned int length);
340 
341 
345 char vrna_bpp_symbol(const float *x);
346 
347 
360  unsigned int length);
361 
362 
363 void vrna_letter_structure(char *structure,
364  vrna_bp_stack_t *bp,
365  unsigned int length);
366 
367 
383 vrna_ep_t *vrna_plist(const char *struc,
384  float pr);
385 
386 
404  double cut_off);
405 
406 
417  unsigned int n);
418 
419 
420 char *vrna_db_to_element_string(const char *structure);
421 
422 
423 vrna_hx_t *vrna_hx_from_ptable(short *pt);
424 
425 
426 vrna_hx_t *vrna_hx_merge(const vrna_hx_t *list,
427  int maxdist);
428 
429 
430 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
431 
432 /*###########################################*/
433 /*# deprecated functions below #*/
434 /*###########################################*/
435 
453 DEPRECATED(void assign_plist_from_db(vrna_ep_t **pl,
454  const char *struc,
455  float pr),
456 "Use vrna_plist() instead");
457 
470 DEPRECATED(char *pack_structure(const char *struc),
471 "Use vrna_db_pack() instead");
472 
483 DEPRECATED(char *unpack_structure(const char *packed),
484 "Use vrna_db_unpack() instead");
485 
497 DEPRECATED(short *make_pair_table(const char *structure),
498 "Use vrna_ptable() instead");
499 
500 DEPRECATED(short *make_pair_table_pk(const char *structure),
501 "Use vrna_ptable_from_string() instead");
502 
511 DEPRECATED(short *copy_pair_table(const short *pt),
512 "Use vrna_ptable_copy() instead");
513 
519 DEPRECATED(short *alimake_pair_table(const char *structure),
520 "Use vrna_pt_ali_get() instead");
521 
528 DEPRECATED(short *make_pair_table_snoop(const char *structure),
529 "Use vrna_pt_snoop_get() instead");
530 
531 DEPRECATED(int *make_loop_index_pt(short *pt),
532 "Use vrna_loopidx_from_ptable() instead");
533 
546 DEPRECATED(int bp_distance(const char *str1,
547  const char *str2),
548 "Use vrna_bp_distance() instead");
549 
558 DEPRECATED(unsigned int *make_referenceBP_array(short *reference_pt,
559  unsigned int turn),
560 "Use vrna_refBPcnt_matrix() instead");
561 
570 DEPRECATED(unsigned int *compute_BPdifferences(short *pt1,
571  short *pt2,
572  unsigned int turn),
573 "Use vrna_refBPdist_matrix() instead");
574 
594 DEPRECATED(void assign_plist_from_pr(vrna_ep_t **pl,
595  FLT_OR_DBL *probs,
596  int length,
597  double cutoff),
598 "Use vrna_plist_from_probs() instead");
599 
607 DEPRECATED(void parenthesis_structure(char *structure,
608  vrna_bp_stack_t *bp,
609  int length),
610 "Use vrna_parenthesis_structure() instead");
611 
620 DEPRECATED(void parenthesis_zuker(char *structure,
621  vrna_bp_stack_t *bp,
622  int length),
623 "Use vrna_parenthesis_zuker() instead");
624 
625 DEPRECATED(void letter_structure(char *structure,
626  vrna_bp_stack_t *bp,
627  int length),
628 "Use vrna_letter_structure() instead");
629 
634 DEPRECATED(void bppm_to_structure(char *structure,
635  FLT_OR_DBL *pr,
636  unsigned int length),
637 "Use vrna_db_from_probs() instead");
638 
643 DEPRECATED(char bppm_symbol(const float *x),
644 "Use vrna_bpp_symbol() instead");
645 
646 #endif
647 
652 #endif
short * vrna_ptable_from_string(const char *string, unsigned int options)
Create a pair table for a secondary structure string.
char vrna_bpp_symbol(const float *x)
Get a pseudo dot bracket notation for a given probability information.
void vrna_db_flatten_to(char *string, const char target[3], unsigned int options)
Substitute pairs of brackets in a string with another type of pair characters.
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 a single entry of an element probability list (e.g. list of pair probabil...
Definition: structure_utils.h:114
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:43
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:131
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.
Data structure representing an entry of a helix list.
Definition: structure_utils.h:98
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.
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_ali_get(const char *structure)
Create a pair table of a secondary structure (snoop align version)
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.
void vrna_db_flatten(char *structure, unsigned int options)
Substitute pairs of brackets in a string with parenthesis.
char * vrna_db_from_WUSS(const char *wuss)
Convert a WUSS annotation string to dot-bracket format.
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:141
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.
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.