RNAlib-2.4.14
structures.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 
16 #include <stdio.h>
17 
19 
37 typedef struct vrna_hx_s vrna_hx_t;
38 
39 
44 typedef struct vrna_elem_prob_s vrna_ep_t;
45 
46 
57 #define VRNA_BRACKETS_ALPHA 4U
58 
59 
65 #define VRNA_BRACKETS_RND 8U
66 
67 
73 #define VRNA_BRACKETS_CLY 16U
74 
75 
81 #define VRNA_BRACKETS_ANG 32U
82 
83 
89 #define VRNA_BRACKETS_SQR 64U
90 
91 
103 #define VRNA_BRACKETS_DEFAULT \
104  (VRNA_BRACKETS_RND | \
105  VRNA_BRACKETS_CLY | \
106  VRNA_BRACKETS_ANG | \
107  VRNA_BRACKETS_SQR)
108 
109 
116 #define VRNA_BRACKETS_ANY \
117  (VRNA_BRACKETS_RND | \
118  VRNA_BRACKETS_CLY | \
119  VRNA_BRACKETS_ANG | \
120  VRNA_BRACKETS_SQR | \
121  VRNA_BRACKETS_ALPHA)
122 
123 
136 char *
137 vrna_db_pack(const char *struc);
138 
139 
150 char *
151 vrna_db_unpack(const char *packed);
152 
153 
169 void
170 vrna_db_flatten(char *structure,
171  unsigned int options);
172 
173 
193 void
194 vrna_db_flatten_to(char *string,
195  const char target[3],
196  unsigned int options);
197 
198 
205 char *
206 vrna_db_from_ptable(short *pt);
207 
208 
220 char *
221 vrna_db_from_WUSS(const char *wuss);
222 
223 
233 char *
235  unsigned int n);
236 
237 
244 char *
245 vrna_db_to_element_string(const char *structure);
246 
247 
279 char *
280 vrna_db_pk_remove(const char *structure,
281  unsigned int options);
282 
283 /* End dot-bracket interface */
302 short *
303 vrna_ptable(const char *structure);
304 
305 
325 short *
326 vrna_ptable_from_string(const char *string,
327  unsigned int options);
328 
329 
347 short *
348 vrna_pt_pk_get(const char *structure);
349 
350 
357 short *
358 vrna_ptable_copy(const short *pt);
359 
360 
365 short *
366 vrna_pt_ali_get(const char *structure);
367 
368 
376 short *
377 vrna_pt_snoop_get(const char *structure);
378 
379 
396 short *
397 vrna_pt_pk_remove(const short *ptable,
398  unsigned int options);
399 
400 /* End pair table interface */
412 #define VRNA_PLIST_TYPE_BASEPAIR 0
413 
414 
418 #define VRNA_PLIST_TYPE_GQUAD 1
419 
420 
424 #define VRNA_PLIST_TYPE_H_MOTIF 2
425 
426 
430 #define VRNA_PLIST_TYPE_I_MOTIF 3
431 
432 
436 #define VRNA_PLIST_TYPE_UD_MOTIF 4
437 
438 
442 #define VRNA_PLIST_TYPE_STACK 5
443 
444 
454  int i;
455  int j;
456  float p;
457  int type;
458 };
459 
475 vrna_ep_t *vrna_plist(const char *struc,
476  float pr);
477 
478 
496  double cut_off);
497 
498 
499 /* End pair list interface */
511 struct vrna_hx_s {
512  unsigned int start;
513  unsigned int end;
514  unsigned int length;
515  unsigned int up5;
516  unsigned int up3;
517 };
518 
519 
526 vrna_hx_t *
527 vrna_hx_from_ptable(short *pt);
528 
529 
533 vrna_hx_t *
534 vrna_hx_merge(const vrna_hx_t *list,
535  int maxdist);
536 
537 
538 /* End helix list interface */
545 int *
546 vrna_loopidx_from_ptable(const short *pt);
547 
548 
560 int
561 vrna_bp_distance(const char *str1,
562  const char *str2);
563 
564 
565 double
566 vrna_dist_mountain(const char *str1,
567  const char *str2,
568  unsigned int p);
569 
570 
577 unsigned int *
578 vrna_refBPcnt_matrix(const short *reference_pt,
579  unsigned int turn);
580 
581 
589 unsigned int *
590 vrna_refBPdist_matrix(const short *pt1,
591  const short *pt2,
592  unsigned int turn);
593 
594 
598 char *
600  unsigned int length);
601 
602 
606 char
607 vrna_bpp_symbol(const float *x);
608 
609 
621 char *
623  unsigned int length);
624 
625 
626 void
627 vrna_letter_structure(char *structure,
628  vrna_bp_stack_t *bp,
629  unsigned int length);
630 
631 
648 #define VRNA_STRUCTURE_TREE_HIT 1U
649 
650 
655 #define VRNA_STRUCTURE_TREE_SHAPIRO_SHORT 2U
656 
657 
662 #define VRNA_STRUCTURE_TREE_SHAPIRO 3U
663 
664 
669 #define VRNA_STRUCTURE_TREE_SHAPIRO_EXT 4U
670 
671 
676 #define VRNA_STRUCTURE_TREE_SHAPIRO_WEIGHT 5U
677 
682 #define VRNA_STRUCTURE_TREE_EXPANDED 6U
683 
684 
714 char *
715 vrna_db_to_tree_string(const char *structure,
716  unsigned int type);
717 
718 
730 char *
731 vrna_tree_string_unweight(const char *structure);
732 
733 
745 char *
746 vrna_tree_string_to_db(const char *tree);
747 
748 
749 /* End tree representations */
752 #ifndef VRNA_DISABLE_BACKWARD_COMPATIBILITY
753 
754 /*###########################################*/
755 /*# deprecated functions below #*/
756 /*###########################################*/
757 
777 DEPRECATED(void assign_plist_from_db(vrna_ep_t **pl,
778  const char *struc,
779  float pr),
780  "Use vrna_plist() instead");
781 
795 DEPRECATED(char *pack_structure(const char *struc),
796  "Use vrna_db_pack() instead");
797 
809 DEPRECATED(char *unpack_structure(const char *packed),
810  "Use vrna_db_unpack() instead");
811 
824 DEPRECATED(short *make_pair_table(const char *structure),
825  "Use vrna_ptable() instead");
826 
827 DEPRECATED(short *make_pair_table_pk(const char *structure),
828  "Use vrna_ptable_from_string() instead");
829 
839 DEPRECATED(short *copy_pair_table(const short *pt),
840  "Use vrna_ptable_copy() instead");
841 
848 DEPRECATED(short *alimake_pair_table(const char *structure),
849  "Use vrna_pt_ali_get() instead");
850 
858 DEPRECATED(short *make_pair_table_snoop(const char *structure),
859  "Use vrna_pt_snoop_get() instead");
860 
861 DEPRECATED(int *make_loop_index_pt(short *pt),
862  "Use vrna_loopidx_from_ptable() instead");
863 
877 DEPRECATED(int bp_distance(const char *str1,
878  const char *str2),
879  "Use vrna_bp_distance() instead");
880 
890 DEPRECATED(unsigned int *make_referenceBP_array(short *reference_pt,
891  unsigned int turn),
892  "Use vrna_refBPcnt_matrix() instead");
893 
903 DEPRECATED(unsigned int *compute_BPdifferences(short *pt1,
904  short *pt2,
905  unsigned int turn),
906  "Use vrna_refBPdist_matrix() instead");
907 
928 DEPRECATED(void assign_plist_from_pr(vrna_ep_t **pl,
929  FLT_OR_DBL *probs,
930  int length,
931  double cutoff),
932  "Use vrna_plist_from_probs() instead");
933 
942 DEPRECATED(void parenthesis_structure(char *structure,
943  vrna_bp_stack_t *bp,
944  int length),
945  "Use vrna_parenthesis_structure() instead");
946 
956 DEPRECATED(void parenthesis_zuker(char *structure,
957  vrna_bp_stack_t *bp,
958  int length),
959  "Use vrna_parenthesis_zuker() instead");
960 
961 DEPRECATED(void letter_structure(char *structure,
962  vrna_bp_stack_t *bp,
963  int length),
964  "Use vrna_letter_structure() instead");
965 
971 DEPRECATED(void bppm_to_structure(char *structure,
972  FLT_OR_DBL *pr,
973  unsigned int length),
974  "Use vrna_db_from_probs() instead");
975 
981 DEPRECATED(char bppm_symbol(const float *x),
982  "Use vrna_bpp_symbol() instead");
983 
984 #endif
985 
990 #endif
float p
Probability of the element.
Definition: structures.h:456
char * vrna_db_pack(const char *struc)
Pack secondary secondary structure, 5:1 compression using base 3 encoding.
char vrna_bpp_symbol(const float *x)
Get a pseudo dot bracket notation for a given probability information.
short * vrna_ptable(const char *structure)
Create a pair table from a dot-bracket notation of a secondary structure.
char * pack_structure(const char *struc)
Pack secondary secondary structure, 5:1 compression using base 3 encoding.
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.
short * vrna_pt_pk_remove(const short *ptable, unsigned int options)
Remove pseudo-knots from a pair table.
Data structure representing an entry of a helix list.
Definition: structures.h:511
char bppm_symbol(const float *x)
Get a pseudo dot bracket notation for a given probability information.
char * vrna_db_from_bp_stack(vrna_bp_stack_t *bp, unsigned int length)
Create a dot-backet/parenthesis structure from backtracking stack.
short * make_pair_table_snoop(const char *structure)
double FLT_OR_DBL
Typename for floating point number in partition function computations.
Definition: basic.h:43
void parenthesis_structure(char *structure, vrna_bp_stack_t *bp, int length)
Create a dot-backet/parenthesis structure from backtracking stack.
The most basic data structure required by many functions throughout the RNAlib.
Definition: fold_compound.h:132
char * vrna_tree_string_to_db(const char *tree)
Convert a linear tree string representation of a secondary structure back to Dot-Bracket notation...
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.
char * vrna_db_to_element_string(const char *structure)
Convert a secondary structure in dot-bracket notation to a nucleotide annotation of loop contexts...
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 i
Start position (usually 5&#39; nucleotide that starts the element, e.g. base pair)
Definition: structures.h:454
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 * make_pair_table(const char *structure)
Create a pair table of a secondary structure.
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.
int pairs
contains the number of base pairs in the last parsed structure.
Various data structures and pre-processor macros.
short * copy_pair_table(const short *pt)
Get an exact copy of a pair table.
char * vrna_db_to_tree_string(const char *structure, unsigned int type)
Convert a Dot-Bracket structure string into tree string representation.
short * vrna_pt_pk_get(const char *structure)
Create a pair table of a secondary structure (pseudo-knot version)
char * vrna_db_from_WUSS(const char *wuss)
Convert a WUSS annotation string to dot-bracket format.
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.
unsigned int * vrna_refBPdist_matrix(const short *pt1, const short *pt2, unsigned int turn)
Make a reference base pair distance matrix.
int j
End position (usually 3&#39; nucleotide that ends the element, e.g. base pair)
Definition: structures.h:455
char * unpack_structure(const char *packed)
Unpack secondary structure previously packed with pack_structure()
unsigned int * compute_BPdifferences(short *pt1, short *pt2, unsigned int turn)
Make a reference base pair distance matrix.
void vrna_db_flatten(char *structure, unsigned int options)
Substitute pairs of brackets in a string with parenthesis.
int type
Type of the element.
Definition: structures.h:457
int bp_distance(const char *str1, const char *str2)
Compute the "base pair" distance between two secondary structures s1 and s2.
short * vrna_ptable_copy(const short *pt)
Get an exact copy of a pair table.
short * alimake_pair_table(const char *structure)
vrna_hx_t * vrna_hx_merge(const vrna_hx_t *list, int maxdist)
Create a merged helix list from another helix list.
short * vrna_pt_snoop_get(const char *structure)
Create a pair table of a secondary structure (snoop version)
char * vrna_db_from_ptable(short *pt)
Convert a pair table into dot-parenthesis notation.
char * vrna_db_unpack(const char *packed)
Unpack secondary structure previously packed with vrna_db_pack()
vrna_hx_t * vrna_hx_from_ptable(short *pt)
Convert a pair table representation of a secondary structure into a helix list.
Base pair stack element.
Definition: basic.h:143
FLT_OR_DBL * pr
A pointer to the base pair probability matrix.
char * vrna_tree_string_unweight(const char *structure)
Remove weights from a linear string tree representation of a secondary structure. ...
vrna_ep_t * vrna_plist(const char *struc, float pr)
Create a vrna_ep_t from a dot-bracket string.
short * vrna_pt_ali_get(const char *structure)
Create a pair table of a secondary structure (snoop align version)
char * vrna_db_from_plist(vrna_ep_t *pairs, unsigned int n)
Convert a list of base pairs into dot-bracket notation.
Data structure representing a single entry of an element probability list (e.g. list of pair probabil...
Definition: structures.h:453
char * vrna_db_pk_remove(const char *structure, unsigned int options)
Remove pseudo-knots from an input structure.
short * vrna_ptable_from_string(const char *string, unsigned int options)
Create a pair table for a secondary structure string.
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...
unsigned int * make_referenceBP_array(short *reference_pt, unsigned int turn)
Make a reference base pair count matrix.
unsigned int * vrna_refBPcnt_matrix(const short *reference_pt, unsigned int turn)
Make a reference base pair count matrix.