RNAlib-2.1.1
move_set.h
1 #ifndef __MOVE_SET_H
2 #define __MOVE_SET_H
3 
4 /* used data structure*/
5 typedef struct _struct_en{
6  int energy; /* energy in 10kcal/mol*/
7  short *structure; /* structure in energy_of_move format*/
8 } struct_en;
9 
10 /* prints structure*/
11 void print_stren(FILE *out, struct_en *str);
12 void print_str(FILE *out, short *str);
13 
14 /* copying functions*/
15 void copy_arr(short *dest, short *src); /*just copy*/
16 short *allocopy(short *src); /*copy and make space*/
17 
18 /* walking methods (verbose_lvl 0-2, shifts = use shift moves? noLP = no lone pairs? (not compatible with shifts))
19  input: seq - sequence
20  ptable - structure encoded with make_pair_table() from pair_mat.h
21  s, s1 - sequence encoded with encode_sequence from pair_mat.h
22  methods: deepest - lowest energy structure is used
23  first - first found lower energy structure is used
24  rand - random lower energy structure is used
25  returns local minima structure in ptable and its energy in 10kcal/mol as output */
26 
27 int move_deepest( char *seq,
28  short *ptable,
29  short *s,
30  short *s1,
31  int verbosity_level,
32  int shifts,
33  int noLP);
34 int move_first( char *seq,
35  short *ptable,
36  short *s,
37  short *s1,
38  int verbosity_level,
39  int shifts,
40  int noLP);
41 int move_rand( char *seq,
42  short *ptable,
43  short *s,
44  short *s1,
45  int verbosity_level);
46 
47 
48 /* browse_neighbours and do funct function on each of them (used mainly for user specified flooding)
49  input: seq - sequence
50  ptable - structure encoded with make_pair_table() from pair_mat.h
51  s, s1 - sequence encoded with encode_sequence from pair_mat.h
52  funct - function (moved structure, current structure (or altered by funct)) to do with every structure in neigbourhood
53  returns energy of the structure funct sets as second argument*/
54 int browse_neighs( char *seq,
55  short *ptable,
56  short *s,
57  short *s1,
58  int verbosity_level,
59  int shifts,
60  int noLP,
61  int (*funct) (struct_en*, struct_en*));
62 
63 #endif