#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <assert.h>
#include "fpocket.h"
#include "fpout.h"
#include "writepocket.h"
#include "tpocket.h"
#include "dparams.h"
#include "descriptors.h"
#include "neighbor.h"
#include "pocket.h"
#include "cluster.h"
#include "refine.h"
#include "aa.h"
#include "utils.h"
#include "mdparams.h"
#include "mdpbase.h"
#include "memhandler.h"
Go to the source code of this file.
Functions | |
void | write_md_grid (s_mdgrid *g, FILE *f, FILE *fiso, s_mdparams *par, float isovalue) |
void | write_md_pocket_atoms (FILE *f, int *ids, s_pdb *prot, int nids, int sn) |
void | write_first_bfactor_density (FILE *f, s_pdb *prot) |
void write_first_bfactor_density | ( | FILE * | f, | |
s_pdb * | prot | |||
) |
## FUNCTION: write_first_bfactor_density
## SPECIFICATION: writes the protein structure with pocket densities in the bfactor column.
## PARAMETRES: @ FILE *f : output file handle @ s_pdb *prot : protein handle
## RETURN: void
Definition at line 203 of file mdpout.c.
References s_atm::bfactor, s_atm::chain, s_atm::charge, s_atm::id, s_pdb::latoms_p, s_atm::name, s_pdb::natoms, s_atm::occupancy, s_atm::pdb_aloc, s_atm::pdb_insert, s_atm::res_id, s_atm::res_name, s_atm::symbol, write_pdb_atom_line(), s_atm::x, s_atm::y, and s_atm::z.
Referenced by mdpocket_detect().
00203 { 00204 s_atm *cura; 00205 int i; 00206 //fprintf(f,"MODEL %d\n",sn); 00207 for(i=0;i<prot->natoms;i++){ 00208 cura=prot->latoms_p[i]; 00209 write_pdb_atom_line(f, "ATOM", cura->id, cura->name, 00210 cura->pdb_aloc, cura->res_name, cura->chain, 00211 cura->res_id, cura->pdb_insert, cura->x, cura->y, cura->z, cura->occupancy, 00212 cura->bfactor, cura->symbol, cura->charge); 00213 } 00214 fprintf(f,"TER\n"); 00215 fprintf(f,"END\n"); 00216 00217 }
void write_md_grid | ( | s_mdgrid * | g, | |
FILE * | f, | |||
FILE * | fiso, | |||
s_mdparams * | par, | |||
float | isovalue | |||
) |
COPYRIGHT DISCLAIMER
Vincent Le Guilloux, Peter Schmidtke and Pierre Tuffery, hereby disclaim all copyright interest in the program “fpocket” (which performs protein cavity detection) written by Vincent Le Guilloux and Peter Schmidtke.
Vincent Le Guilloux 28 November 2008 Peter Schmidtke 28 November 2008 Pierre Tuffery 28 November 2008
GNU GPL
This file is part of the fpocket package.
fpocket is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
fpocket is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with fpocket. If not, see <http://www.gnu.org/licenses/>.
## FUNCTION: write_md_grid
## SPECIFICATION: Write the md grid to a file.
## PARAMETRES: @ s_mdgrid g : structure containing the grid @ FILE *f : file handle for output file @ FILE *fiso : file handle for iso pdb output file @ s_mdparams *par : parameters for mdpocket @ float isovalue : isovalue at which one wants to extract the iso PDB
## RETURN: void :
Definition at line 95 of file mdpout.c.
References s_fparams::asph_max_size, s_fparams::asph_min_size, s_fparams::clust_max_dist, s_mdparams::flag_scoring, s_mdparams::fpar, s_mdgrid::gridvalues, s_fparams::min_pock_nb_asph, s_mdgrid::nx, s_mdgrid::ny, s_mdgrid::nz, s_mdgrid::origin, s_fparams::refine_clust_dist, s_mdgrid::resolution, s_fparams::sl_clust_max_dist, and s_fparams::sl_clust_min_nneigh.
Referenced by mdpocket_detect().
00096 { 00097 int cx,cy,cz; 00098 float cv; 00099 float rx,ry,rz; 00100 size_t cnt=0; 00101 /*write the header of the dx file*/ 00102 fprintf(f,"# Data calculated by mdpocket, part of the fpocket package\n"); 00103 fprintf(f,"# This is a standard DX file of occurences of cavities within MD trajectories.\n"); 00104 fprintf(f,"# The file can be visualised using the freely available VMD software\n"); 00105 fprintf(f,"# fpocket parameters used to create this dx file : \n"); 00106 fprintf(f,"# \t-m %2.f (min alpha sphere size) -M %.2f (max alpha sphere size)\n",par->fpar->asph_min_size, par->fpar->asph_max_size); 00107 fprintf(f,"# \t-i %d (min number of alpha spheres per pocket)\n",par->fpar->min_pock_nb_asph); 00108 fprintf(f,"# \t-D %.2f (Max distance for 1st clustering algo)\n#\t-r %.2f (Max dist for 2nd clustering algo)\n#\t-s %.2f (Max dist for third clustering algo)\n",par->fpar->clust_max_dist, par->fpar->refine_clust_dist, par->fpar->sl_clust_max_dist); 00109 fprintf(f,"# \t-n %d (Min neighbour atoms for multi linkage clustering)\n",par->fpar->sl_clust_min_nneigh); 00110 if(par->flag_scoring) fprintf(f,"# \t-S (Map drug score to density map!)\n"); 00111 fprintf(f,"object 1 class gridpositions counts %d %d %d\n",g->nx,g->ny,g->nz); 00112 fprintf(f,"origin %.2f %.2f %.2f\n",g->origin[0],g->origin[1],g->origin[2]); 00113 fprintf(f,"delta %.2f 0 0\n",g->resolution); 00114 fprintf(f,"delta 0 %.2f 0\n",g->resolution); 00115 fprintf(f,"delta 0 0 %.2f\n",g->resolution); 00116 fprintf(f,"object 2 class gridconnections counts %d %d %d\n",g->nx,g->ny,g->nz); 00117 fprintf(f,"object 3 class array type double rank 0 items %d data follows\n",g->nx*g->ny*g->nz); 00118 int i=0; 00119 for(cx=0;cx<g->nx;cx++){ 00120 for(cy=0;cy<g->ny;cy++){ 00121 for(cz=0;cz<g->nz;cz++){ 00122 if(i==3) { 00123 i=0; 00124 fprintf(f,"\n"); 00125 } 00126 cv=g->gridvalues[cx][cy][cz]; 00127 fprintf(f,"%.3f ",cv); 00128 if(cv>=isovalue){ 00129 cnt++; 00130 rx=g->origin[0]+cx*g->resolution; 00131 ry=g->origin[1]+cy*g->resolution; 00132 rz=g->origin[2]+cz*g->resolution; 00133 fprintf(fiso,"ATOM %5d C PTH 1 %8.3f%8.3f%8.3f%6.2f%6.2f\n",(int)cnt,rx,ry,rz,0.0,0.0); 00134 } 00135 i++; 00136 } 00137 } 00138 } 00139 }
void write_md_pocket_atoms | ( | FILE * | f, | |
int * | ids, | |||
s_pdb * | prot, | |||
int | nids, | |||
int | sn | |||
) |
## FUNCTION: write_md_pocket_atoms
## SPECIFICATION: writes a pdb file containing all pocket atoms at each snapshot in distinct models
## PARAMETRES: @ FILE *f : output file handle @ int *ids : list of atom identifiers @ s_pdb *prot : the protein handle @ int nids : number of ids in ids list @ int sn : number of snapshots
## RETURN: void
Definition at line 162 of file mdpout.c.
References s_atm::bfactor, s_atm::chain, s_atm::charge, s_atm::id, s_pdb::latoms_p, s_atm::name, s_atm::occupancy, s_atm::pdb_aloc, s_atm::pdb_insert, s_atm::res_id, s_atm::res_name, s_atm::symbol, write_pdb_atom_line(), s_atm::x, s_atm::y, and s_atm::z.
Referenced by mdpocket_characterize().
00162 { 00163 s_atm *cura; 00164 int i,j,flag; 00165 i=0; 00166 j=0; 00167 fprintf(f,"MODEL %d\n",sn); 00168 for(i=0;i<nids;i++){ 00169 flag=0; 00170 while(flag==0 && j<prot->natoms){ 00171 cura=prot->latoms_p[j]; 00172 if(cura->id==ids[i]){ 00173 flag=1; 00174 write_pdb_atom_line(f, "ATOM", cura->id, cura->name, 00175 cura->pdb_aloc, cura->res_name, cura->chain, 00176 cura->res_id, cura->pdb_insert, cura->x, cura->y, cura->z, cura->occupancy, 00177 cura->bfactor, cura->symbol, cura->charge); 00178 } 00179 j++; 00180 } 00181 } 00182 fprintf(f,"ENDMDL\n"); 00183 00184 }