00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef DH_FPARAMS
00035 #define DH_FPARAMS
00036
00037
00038
00039 #include <stdio.h>
00040 #include <stdlib.h>
00041 #include <unistd.h>
00042 #include <string.h>
00043 #include <ctype.h>
00044 #include <limits.h>
00045 #include <assert.h>
00046
00047 #include "utils.h"
00048 #include "memhandler.h"
00049
00050
00051
00052
00053
00054
00055
00056 #define M_MIN_ASHAPE_SIZE_DEFAULT 3.0
00057
00058 #define M_MAX_ASHAPE_SIZE_DEFAULT 6.0
00059
00060 #define M_CLUST_MAX_DIST 1.73
00061
00062 #define M_REFINE_DIST 4.5
00063
00064 #define M_REFINE_MIN_PROP_APOL_AS 0.0
00065
00066 #define M_SLCLUST_MAX_DIST 2.5
00067
00068 #define M_SLCLUST_MIN_NUM_NEIGH 2
00069
00070 #define M_MC_ITER 3000
00071
00072 #define M_BASIC_VOL_DIVISION -1
00073
00074 #define M_MIN_POCK_NB_ASPH 36
00075
00076 #define M__MIN_APOL_NEIGH_DEFAULT 3
00077
00078 #define M_DB_RUN 0
00079
00080 #define M_PAR_PDB_FILE 'f'
00081 #define M_PAR_PDB_LIST 'F'
00082 #define M_PAR_MAX_ASHAPE_SIZE 'M'
00083 #define M_PAR_MIN_ASHAPE_SIZE 'm'
00084 #define M_PAR_MIN_APOL_NEIGH 'A'
00085 #define M_PAR_CLUST_MAX_DIST 'D'
00086 #define M_PAR_SL_MAX_DIST 's'
00087 #define M_PAR_SL_MIN_NUM_NEIGH 'n'
00088 #define M_PAR_MC_ITER 'v'
00089 #define M_PAR_BASIC_VOL_DIVISION 'b'
00090 #define M_PAR_MIN_POCK_NB_ASPH 'i'
00091 #define M_PAR_REFINE_DIST 'r'
00092 #define M_PAR_REFINE_MIN_NAPOL_AS 'p'
00093 #define M_PAR_DB_RUN 'd'
00094
00095 #define M_FP_USAGE "\n\
00096 ***** USAGE (fpocket) *****\n\
00097 \n\
00098 Pocket finding on a pdb - list of pdb - file(s): \n\
00099 \t./bin/fpocket -f pdb \n\
00100 \t./bin/fpocket -F pdb_list \n\
00101 \nOPTIONS (find standard parameters in brackets) \n\n\
00102 \t-m (float) : Minimum radius of an alpha-sphere. (3.0)\n\
00103 \t-M (float) : Maximum radius of an alpha-sphere. (6.0)\n\
00104 \t-A (int) : Minimum number of apolar neighbor for \n\
00105 \t an a-sphere to be considered as apolar. (3)\n\
00106 \t-i (int) : Minimum number of a-sphere per pocket. (30)\n\
00107 \t-D (float) : Maximum distance for first clustering \n\
00108 \t algorithm. (1.73)\n\
00109 \t-s (float) : Maximum distance for single linkage \n\
00110 \t clustering (2.5)\n\
00111 \t-n (integer): Minimum number of neighbor close from \n\
00112 \t each other (not merged otherwise). (3)\n\
00113 \t-r (float) : Maximum distance between two pockets \n\
00114 \t barycenter (merged otherwise). (4.5)\n\
00115 \t-p (float) : Minimum proportion of apolar sphere in \n\
00116 \t a pocket (remove otherwise) (0.0)\n\
00117 \t-v (integer): Number of Monte-Carlo iteration for the \n\
00118 \t calculation of each pocket volume. (2500)\n\
00119 \t-b (integer): Space approximation for the basic method \n\
00120 \t of the volume calculation. Not used by \n\
00121 \t default (Monte Carlo approximation is) \n\
00122 \t-d flag : Put this flag if you want to run fpocket for \n\
00123 \t database creation \n\
00124 \nSee the manual (man fpocket), or the full documentation for\n\
00125 more information.\n\
00126 ***************************\n"
00127
00128
00129
00130
00131
00132
00133
00134 typedef struct s_fparams
00135 {
00136 char pdb_path[M_MAX_PDB_NAME_LEN] ;
00137 char **pdb_lst ;
00138 int npdb ;
00139 int flag_do_asa_and_volume_calculations;
00140 int min_apol_neigh,
00141
00142 sl_clust_min_nneigh,
00143
00144 nb_mcv_iter,
00145
00146 basic_volume_div,
00147 min_pock_nb_asph,
00148 db_run;
00149
00150 float clust_max_dist,
00151 refine_min_apolar_asphere_prop,
00152
00153 sl_clust_max_dist,
00154 refine_clust_dist,
00155 asph_min_size,
00156 asph_max_size ;
00157
00158
00159 } s_fparams ;
00160
00161
00162
00163 s_fparams* init_def_fparams(void) ;
00164 s_fparams* get_fpocket_args(int nargs, char **args) ;
00165
00166 int parse_clust_max_dist(char *str, s_fparams *p) ;
00167 int parse_sclust_max_dist(char *str, s_fparams *p) ;
00168 int parse_sclust_min_nneigh(char *str, s_fparams *p) ;
00169 int parse_min_apol_neigh(char *str, s_fparams *p) ;
00170 int parse_asph_min_size(char *str, s_fparams *p) ;
00171 int parse_asph_max_size(char *str, s_fparams *p) ;
00172 int parse_mc_niter(char *str, s_fparams *p) ;
00173 int parse_basic_vol_div(char *str, s_fparams *p) ;
00174 int parse_refine_dist(char *str, s_fparams *p) ;
00175 int parse_refine_minaap(char *str, s_fparams *p) ;
00176 int parse_min_pock_nb_asph(char *str, s_fparams *p) ;
00177
00178 int is_fpocket_opt(const char opt) ;
00179
00180 void free_fparams(s_fparams *p) ;
00181 void print_pocket_usage(FILE *f) ;
00182 void print_fparams(s_fparams *p, FILE *f) ;
00183
00184 #endif