RNAlib-2.4.12
move.h
Go to the documentation of this file.
1 #ifndef VIENNA_RNA_PACKAGE_MOVE_H
2 #define VIENNA_RNA_PACKAGE_MOVE_H
3 
4 
17 typedef struct vrna_move_s vrna_move_t;
18 
23 #define VRNA_MOVESET_INSERTION 4
24 
29 #define VRNA_MOVESET_DELETION 8
30 
35 #define VRNA_MOVESET_SHIFT 16
36 
40 #define VRNA_MOVESET_NO_LP 32
41 
46 #define VRNA_MOVESET_DEFAULT (VRNA_MOVESET_INSERTION | VRNA_MOVESET_DELETION)
47 
48 
70 struct vrna_move_s {
71  int pos_5;
72  int pos_3;
76 };
77 
78 
90  int pos_3);
91 
92 
96 void
98 
99 
106 void
107 vrna_move_apply(short *pt,
108  const vrna_move_t *m);
109 
110 
111 void
112 vrna_move_apply_db(char *structure,
113  const short *pt,
114  const vrna_move_t *m);
115 
116 
123 int
125 
126 
133 int
135 
136 
143 int
145 
146 
167 int
169  const vrna_move_t *b,
170  const short *pt);
171 
172 
177 #endif
int vrna_move_is_removal(const vrna_move_t *m)
Test whether a move is a base pair removal.
vrna_move_t vrna_move_init(int pos_5, int pos_3)
Create an atomic move.
int vrna_move_is_shift(const vrna_move_t *m)
Test whether a move is a base pair shift.
int pos_5
The (absolute value of the) 5' position of a base pair, or any position of a shifted pair...
Definition: move.h:71
void vrna_move_apply(short *pt, const vrna_move_t *m)
Apply a particular move / transition to a secondary structure, i.e. transform a structure.
int vrna_move_is_insertion(const vrna_move_t *m)
Test whether a move is a base pair insertion.
int vrna_move_compare(const vrna_move_t *a, const vrna_move_t *b, const short *pt)
Compare two moves.
void vrna_move_list_free(vrna_move_t *moves)
An atomic representation of the transition / move from one structure to its neighbor.
Definition: move.h:70
vrna_move_t * next
The next base pair (if an elementary move changes more than one base pair), or NULL Has to be termina...
Definition: move.h:73
int pos_3
The (absolute value of the) 3' position of a base pair, or any position of a shifted pair...
Definition: move.h:72