00001 /* 00002 COPYRIGHT DISCLAIMER 00003 00004 Vincent Le Guilloux, Peter Schmidtke and Pierre Tuffery, hereby 00005 disclaim all copyright interest in the program “fpocket” (which 00006 performs protein cavity detection) written by Vincent Le Guilloux and Peter 00007 Schmidtke. 00008 00009 Vincent Le Guilloux 28 November 2008 00010 Peter Schmidtke 28 November 2008 00011 Pierre Tuffery 28 November 2008 00012 00013 GNU GPL 00014 00015 This file is part of the fpocket package. 00016 00017 fpocket is free software: you can redistribute it and/or modify 00018 it under the terms of the GNU General Public License as published by 00019 the Free Software Foundation, either version 3 of the License, or 00020 (at your option) any later version. 00021 00022 fpocket is distributed in the hope that it will be useful, 00023 but WITHOUT ANY WARRANTY; without even the implied warranty of 00024 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00025 GNU General Public License for more details. 00026 00027 You should have received a copy of the GNU General Public License 00028 along with fpocket. If not, see <http://www.gnu.org/licenses/>. 00029 00030 **/ 00031 00032 #ifndef DH_TPOCKET 00033 #define DH_TPOCKET 00034 00035 /* -----------------------------INCLUDES--------------------------------------*/ 00036 00037 #include <math.h> 00038 #include <stdio.h> 00039 #include <stdlib.h> 00040 #include <string.h> 00041 #include <ctype.h> 00042 00043 #include "tparams.h" 00044 #include "neighbor.h" 00045 #include "fpocket.h" 00046 #include "fpout.h" 00047 00048 #include "memhandler.h" 00049 00050 /* --------------------------------MACROS-------------------------------------*/ 00051 #define M_CRIT1_D 3.0 00052 #define M_CRIT2_D 3.0 00053 #define M_CRIT4_D 3.0 00054 #define M_CRIT5_D 3.0 00055 00056 #define M_CRIT1_VAL 50.0 00057 #define M_CRIT2_VAL 50.0 00058 #define M_CRIT3_VAL 4.0 00059 #define M_CRIT4_VAL 0.5 00060 #define M_CRIT5_VAL 0.20 00061 00062 /* A set of index, giving the position of each value in the tab used to 00063 * store them. In the src file, those statistics values are stored in a tab 00064 * using indices given here. 00065 **/ 00066 #define M_NDDATA 16 /**< Number of floating values */ 00067 #define M_MAXPCT1 0 /**< Maximum observed overlap for the criteria 1 */ 00068 #define M_MAXPCT2 1 /**< Maximum observed overlap for the criteria 2 */ 00069 #define M_MINDST 2 /**< Minimum distance observed (barycenter/ligand), crit 3 */ 00070 #define M_CRIT4 3 /**< Minimum distance observed (barycenter/ligand), crit 4 */ 00071 #define M_CRIT5 4 /**< Minimum distance observed (barycenter/ligand), crit 5 */ 00072 #define M_CRIT6 5 /**< Minimum distance observed (barycenter/ligand), crit 5 */ 00073 #define M_OREL1 6 /**< Relative overlap of the pocket found for criteria 1 */ 00074 #define M_OREL2 7 /**< Relative overlap of the pocket found for criteria 2 */ 00075 #define M_OREL3 8 /**< Relative overlap of the pocket found for criteria 3 */ 00076 #define M_OREL4 9 /**< Relative overlap of the pocket found for criteria 3 */ 00077 #define M_OREL5 10 /**< Relative overlap of the pocket found for criteria 3 */ 00078 #define M_OREL6 11 /**< Relative overlap of the pocket found for criteria 3 */ 00079 #define M_LIGMASS 12 /**< Mass of the ligand */ 00080 #define M_LIGVOL 13 /**< Volume of the ligand */ 00081 #define M_POCKETVOL_C3 14 /**< Volume of the pocket found by the 1st criteria*/ 00082 #define M_POCKETVOL_C6 15 /**< Volume of the pocket found by the 6th criteria*/ 00083 00084 #define M_NIDATA 9 /**< Number of interger values */ 00085 #define M_NPOCKET 0 /**< Total number of pocket found */ 00086 #define M_POS1 1 /**< Rank of the right pocket for the 1st criteria */ 00087 #define M_POS2 2 /**< Rank of the right pocket for the 2nd criteria */ 00088 #define M_POS3 3 /**< Rank of the right pocket for the 3rd criteria */ 00089 #define M_POS4 4 /**< Rank of the right pocket for the 4th criteria */ 00090 #define M_POS5 5 /**< Rank of the right pocket for the 5th criteria */ 00091 #define M_POS6 6 /**< Rank of the right pocket for the 6th criteria */ 00092 #define M_NATM3 7 /**< Rank of the right pocket for the 5th criteria */ 00093 #define M_NATM6 8 /**< Rank of the right pocket for the 6th criteria */ 00094 00095 #define M_LIGNOTFOUND -2 /**< Flags used for the pocket detection */ 00096 #define M_PDBOPENFAILED -1 /**< Flags used for the pocket detection */ 00097 #define M_OK 0 /**< Flags used for the pocket detection */ 00098 #define M_NOPOCKETFOUND 1 /**< Flags used for the pocket detection */ 00099 00100 /* ------------------------------SRUCTURES------------------------------------*/ 00101 00102 /* -----------------------------PROTOTYPES------------------------------------*/ 00103 00104 void test_fpocket(s_tparams *par) ; 00105 int test_set(s_tparams *par, int i, float ddata [][M_NDDATA], int idata [][M_NIDATA]) ; 00106 00107 void check_pockets(c_lst_pockets *pockets, s_atm **accpck, int naccpck, s_atm **lig, 00108 int nalig, s_atm **alneigh, int nlneigh, 00109 float ddata [][M_NDDATA], int idata [][M_NIDATA], int i) ; 00110 00111 s_atm** get_actual_pocket(s_pdb *com_pdb, s_pdb *com_pdb_nolig, int i, s_tparams *par, int *nb_atm) ; 00112 s_atm** get_actual_pocket_DEPRECATED(s_pdb *com_pdb, float lig_dist_crit, int *nb_atm) ; 00113 00114 float set_overlap_volumes(s_pocket *pocket, s_atm **lig, int natoms, float lig_vol, s_fparams *params) ; 00115 float set_mc_overlap_volume(s_atm **lig, int natoms, float lig_vol,s_pocket *pocket, int niter) ; 00116 float set_basic_overlap_volume(s_atm **lig, int natoms, float lig_vol,s_pocket *pocket, int idiscret) ; 00117 00118 /*void write_tpocket(c_lst_pockets *pockets, s_pdb *pdb, const char base_pdb_name[]) ;*/ 00119 void write_pockets_stats(c_lst_pockets *pockets, const char base_pdb_name[]); 00120 00121 00122 #endif