RNAlib-2.4.3
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 
40 #define VRNA_BRACKETS_ALPHA 4U
41 
47 #define VRNA_BRACKETS_RND 8U
48 
54 #define VRNA_BRACKETS_CLY 16U
55 
61 #define VRNA_BRACKETS_ANG 32U
62 
68 #define VRNA_BRACKETS_SQR 64U
69 
75 #define VRNA_BRACKETS_DEFAULT \
76  (VRNA_BRACKETS_RND | \
77  VRNA_BRACKETS_CLY | \
78  VRNA_BRACKETS_ANG | \
79  VRNA_BRACKETS_SQR)
80 
81 
85 typedef struct vrna_hx_s vrna_hx_t;
86 
90 typedef struct vrna_elem_prob_s vrna_ep_t;
91 
92 #include <stdio.h>
93 
95 
99 struct vrna_hx_s {
100  unsigned int start;
101  unsigned int end;
102  unsigned int length;
103  unsigned int up5;
104  unsigned int up3;
105 };
106 
116  int i;
117  int j;
118  float p;
119  int type;
120 };
121 
134 char *vrna_db_pack(const char *struc);
135 
136 
147 char *vrna_db_unpack(const char *packed);
148 
149 
161 short *vrna_ptable(const char *structure);
162 
163 
179 short *
180 vrna_ptable_from_string(const char *string,
181  unsigned int options);
182 
183 
196 short *vrna_pt_pk_get(const char *structure);
197 
198 
205 short *vrna_ptable_copy(const short *pt);
206 
207 
212 short *vrna_pt_ali_get(const char *structure);
213 
214 
222 short *vrna_pt_snoop_get(const char *structure);
223 
224 
228 int *vrna_loopidx_from_ptable(const short *pt);
229 
230 
246 void
247 vrna_db_flatten(char *structure,
248  unsigned int options);
249 
250 
270 void
271 vrna_db_flatten_to(char *string,
272  const char target[3],
273  unsigned int options);
274 
275 
282 char *vrna_db_from_ptable(short *pt);
283 
284 
296 char *vrna_db_from_WUSS(const char *wuss);
297 
298 
310 int vrna_bp_distance(const char *str1,
311  const char *str2);
312 
313 
320 unsigned int *vrna_refBPcnt_matrix(const short *reference_pt,
321  unsigned int turn);
322 
323 
331 unsigned int *vrna_refBPdist_matrix(const short *pt1,
332  const short *pt2,
333  unsigned int turn);
334 
335 
339 char *vrna_db_from_probs(const FLT_OR_DBL *pr,
340  unsigned int length);
341 
342 
346 char vrna_bpp_symbol(const float *x);
347 
348 
361  unsigned int length);
362 
363 
364 void vrna_letter_structure(char *structure,
365  vrna_bp_stack_t *bp,
366  unsigned int length);
367 
368 
384 vrna_ep_t *vrna_plist(const char *struc,
385  float pr);
386 
387 
405  double cut_off);
406 
407 
418  unsigned int n);
419 
420 
421 char *vrna_db_to_element_string(const char *structure);
422 
423 
424 vrna_hx_t *vrna_hx_from_ptable(short *pt);
425 
426 
427 vrna_hx_t *vrna_hx_merge(const vrna_hx_t *list,
428  int maxdist);
429 
430 
431 #ifdef VRNA_BACKWARD_COMPAT
432 
433 /*###########################################*/
434 /*# deprecated functions below #*/
435 /*###########################################*/
436 
454 DEPRECATED(void assign_plist_from_db(vrna_ep_t **pl,
455  const char *struc,
456  float pr));
457 
470 DEPRECATED(char *pack_structure(const char *struc));
471 
482 DEPRECATED(char *unpack_structure(const char *packed));
483 
495 DEPRECATED(short *make_pair_table(const char *structure));
496 
497 DEPRECATED(short *make_pair_table_pk(const char *structure));
498 
507 DEPRECATED(short *copy_pair_table(const short *pt));
508 
514 DEPRECATED(short *alimake_pair_table(const char *structure));
515 
522 DEPRECATED(short *make_pair_table_snoop(const char *structure));
523 
524 DEPRECATED(int *make_loop_index_pt(short *pt));
525 
538 DEPRECATED(int bp_distance(const char *str1,
539  const char *str2));
540 
549 DEPRECATED(unsigned int *make_referenceBP_array(short *reference_pt,
550  unsigned int turn));
559 DEPRECATED(unsigned int *compute_BPdifferences(short *pt1,
560  short *pt2,
561  unsigned int turn));
562 
582 DEPRECATED(void assign_plist_from_pr(vrna_ep_t **pl,
583  FLT_OR_DBL *probs,
584  int length,
585  double cutoff));
586 
594 DEPRECATED(void parenthesis_structure(char *structure,
595  vrna_bp_stack_t *bp,
596  int length));
597 
606 DEPRECATED(void parenthesis_zuker(char *structure,
607  vrna_bp_stack_t *bp,
608  int length));
609 
610 DEPRECATED(void letter_structure(char *structure,
611  vrna_bp_stack_t *bp,
612  int length));
613 
618 DEPRECATED(void bppm_to_structure(char *structure,
619  FLT_OR_DBL *pr,
620  unsigned int length));
621 
626 DEPRECATED(char bppm_symbol(const float *x));
627 
628 #endif
629 
634 #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:115
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:130
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:99
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:144
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.