00001 #ifndef __MOVE_SET_H 00002 #define __MOVE_SET_H 00003 00004 /* used data structure*/ 00005 typedef struct _struct_en{ 00006 int energy; /* energy in 10kcal/mol*/ 00007 short *structure; /* structure in energy_of_move format*/ 00008 } struct_en; 00009 00010 /* prints structure*/ 00011 void print_stren(FILE *out, struct_en *str); 00012 void print_str(FILE *out, short *str); 00013 00014 /* copying functions*/ 00015 void copy_arr(short *dest, short *src); /*just copy*/ 00016 short *allocopy(short *src); /*copy and make space*/ 00017 00018 /* walking methods (verbose_lvl 0-2, shifts = use shift moves? noLP = no lone pairs? (not compatible with shifts)) 00019 input: seq - sequence 00020 ptable - structure encoded with make_pair_table() from pair_mat.h 00021 s, s1 - sequence encoded with encode_sequence from pair_mat.h 00022 methods: deepest - lowest energy structure is used 00023 first - first found lower energy structure is used 00024 rand - random lower energy structure is used 00025 returns local minima structure in ptable and its energy in 10kcal/mol as output */ 00026 00027 int move_deepest( char *seq, 00028 short *ptable, 00029 short *s, 00030 short *s1, 00031 int verbosity_level, 00032 int shifts, 00033 int noLP); 00034 int move_first( char *seq, 00035 short *ptable, 00036 short *s, 00037 short *s1, 00038 int verbosity_level, 00039 int shifts, 00040 int noLP); 00041 int move_rand( char *seq, 00042 short *ptable, 00043 short *s, 00044 short *s1, 00045 int verbosity_level); 00046 00047 00048 /* browse_neighbours and do funct function on each of them (used mainly for user specified flooding) 00049 input: seq - sequence 00050 ptable - structure encoded with make_pair_table() from pair_mat.h 00051 s, s1 - sequence encoded with encode_sequence from pair_mat.h 00052 funct - function (moved structure, current structure (or altered by funct)) to do with every structure in neigbourhood 00053 returns energy of the structure funct sets as second argument*/ 00054 int browse_neighs( char *seq, 00055 short *ptable, 00056 short *s, 00057 short *s1, 00058 int verbosity_level, 00059 int shifts, 00060 int noLP, 00061 int (*funct) (struct_en*, struct_en*)); 00062 00063 #endif