00001 00002 /* 00003 COPYRIGHT DISCLAIMER 00004 00005 Vincent Le Guilloux, Peter Schmidtke and Pierre Tuffery, hereby 00006 disclaim all copyright interest in the program “fpocket” (which 00007 performs protein cavity detection) written by Vincent Le Guilloux and Peter 00008 Schmidtke. 00009 00010 Vincent Le Guilloux 28 November 2008 00011 Peter Schmidtke 28 November 2008 00012 Pierre Tuffery 28 November 2008 00013 00014 GNU GPL 00015 00016 This file is part of the fpocket package. 00017 00018 fpocket is free software: you can redistribute it and/or modify 00019 it under the terms of the GNU General Public License as published by 00020 the Free Software Foundation, either version 3 of the License, or 00021 (at your option) any later version. 00022 00023 fpocket is distributed in the hope that it will be useful, 00024 but WITHOUT ANY WARRANTY; without even the implied warranty of 00025 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00026 GNU General Public License for more details. 00027 00028 You should have received a copy of the GNU General Public License 00029 along with fpocket. If not, see <http://www.gnu.org/licenses/>. 00030 00031 **/ 00032 00033 #ifndef DH_ATOM 00034 #define DH_ATOM 00035 00036 #include <stdio.h> 00037 #include <stdlib.h> 00038 #include <string.h> 00039 #include <ctype.h> 00040 00041 #include "utils.h" 00042 00043 // --------------------------------MACROS------------------------------------ */ 00044 00045 00046 00047 // -------------------------- PUBLIC STRUCTURES ----------------------------- */ 00048 00049 /** 00050 A structure for the modelisation of an atom 00051 */ 00052 typedef struct s_atm 00053 { 00054 int sort_x; /**< Index in the sorted tab by X coord */ 00055 00056 float x, y, z ; /**< Coords */ 00057 char name[5], /**< Atom name */ 00058 type[7], /**< Atom type */ 00059 chain[2], /**< Chain name */ 00060 symbol[3], /**< Chemical symbol of the atom */ 00061 res_name[8]; /**< Atom residue name */ 00062 00063 int id, /**< Atom id */ 00064 seen, /**< Say if we have seen this atom during a neighbor search */ 00065 res_id, /**< Atom residue ID */ 00066 atype, 00067 charge ; /**< Atom charge */ 00068 00069 /* Optional fields */ 00070 float mass, /**< Mass */ 00071 radius, /**< Vdw radius */ 00072 electroneg, /**< Electronegativity */ 00073 occupancy, /**< Occupancy */ 00074 bfactor ; /**< B-factor for christal structures */ 00075 00076 char pdb_insert, /**< PDB insertion code */ 00077 pdb_aloc; /**< PDB alternate location code */ 00078 00079 int atomic_num ; /**< Atomic number */ 00080 00081 } s_atm ; 00082 00083 /* --------------------------------PROTOTYPES--------------------------------- */ 00084 00085 float get_mol_mass(s_atm *latoms, int natoms) ; 00086 float get_mol_mass_ptr(s_atm **latoms, int natoms); 00087 void set_mol_barycenter_ptr(s_atm **latoms, int natoms, float bary[3]) ; 00088 float get_mol_volume_ptr(s_atm **atoms, int natoms, int niter) ; 00089 00090 int is_in_lst_atm(s_atm **lst_atm, int nb_atm, int atm_id) ; 00091 float atm_corsp(s_atm **al1, int nl1, s_atm **pocket_neigh, int nal2) ; 00092 00093 void print_atoms(FILE *f, s_atm *atoms, int natoms) ; 00094 00095 #endif