#MakeDOCK Makefile #------------------ # adding travel distance/ pocket finding code here. runs off rec.pdb in tm3 dir # rgc/ sep 2011. cite coleman & sharp, proteins 2010. # http://dx.doi.org/ci900397t SHELL = /bin/sh #DOCK_BASE is a global environment variable EXE = $(DOCK_BASE)/bin/Linux CANONICAL = $(DOCK_BASE)/scripts ETC = $(DOCK_BASE)/etc PRIV = $(DOCK_BASE)/private TDHOME = $(DOCK_BASE)/src/travel_distance_code_3 DMS = $(PRIV)/dms SPHGEN = $(EXE)/sphgen SOLVMAP = $(EXE)/newsolv.ms SOLVSEV = $(EXE)/newsolv.sev CHEMGRID = $(EXE)/chemgrid CONVSYB = $(EXE)/convsyb SCOREOPT = $(EXE)/scoreopt_so PDBTOSPH = $(EXE)/pdbtosph FILTEXE = $(EXE)/filt.exe MAKEBOX = $(CANONICAL)/makebox.pl MAKESPHERES1 = $(CANONICAL)/makespheres1.pl MAKESPHERES3 = $(CANONICAL)/makespheres3.pl COLORSPH = $(CANONICAL)/colorspheres.pl MKCRGFMT = $(CANONICAL)/mkcrgfmt ADDH = $(CANONICAL)/add_h.spl MOLCHARGE = $(ETC)/molcharge3 TDRUN = $(TDHOME)/src/tstTravelDepthNoChunnel.py TDCH = $(TDHOME)/src/tstConvexHull.py $(TDHOME)/bin/qhull TDPOCKET = $(TDHOME)/src/tstPocketMapCutFeaturesRunFaster.py TDPICKER = $(TDHOME)/src/tm3pickerPdb.py CHEM_GRIDS = grids/chem.bmp grids/chem.esp grids/chem.vdw SPH_INPUTS = sph/INSPH GRID_INPUTS = grids/delphi.com grids/delphi2.com grids/vdw.siz \ grids/genric.prm grids/INCHEM \ grids/INSEV grids/INSEV.heavy grids/INSEV.hydrogen auto: start dosph dogrids finish dosph: sph/match1.sph.pdb sph/match2.sph sph/match3.sph dogrids: grids/rec+sph.phi grids/rec+sph2.phi chemgrids grids/solvmap chemgrids: $(CHEM_GRIDS) start: @echo "MakeDOCK 2.0, modified by J.Irwin and M.Mysinger." @echo "Previous versions by D.M.Lorber, B.Q.Wei, A.N.Kirschner, and N.Huang" @echo "Using scripts in $(DOCK_BASE)." filt.params: @cp $(CANONICAL)/filt.params . xtal-lig.pdb: @echo "No xtal-lig.pdb, trying xtal-lig.mol2!" @$(ETC)/makepdb.csh xtal-lig.mol2 rec.site: rec.pdb xtal-lig.pdb filt.params @echo "Creating binding-site residue list" @rm -rf rec.site @$(FILTEXE) < filt.params > filt.log rec.ms: rec.pdb rec.site @echo "Creating molecular surface" @rm -rf dms.log rec.ms @if test -s rec.site; then \ time nice $(DMS) rec.pdb -a -i rec.site -g dms.log -p -n -o rec.ms; \ else \ echo; \ echo rec.site is missing or zero size; \ echo there is probably an error in xtal-lig.pdb or rec.pdb; \ exit 1; \ fi sph/: @mkdir -p sph $(SPH_INPUTS): | sph/ @cp $(CANONICAL)/$@ sph/ sph/sph: rec.ms sph/INSPH | sph/ @echo "Creating sphgen spheres" @rm -rf sph/OUTSPH sph/sph* @cd sph; $(SPHGEN) @mv sph/sph sph/sph.tmp @grep -v "DOCK 3.5 receptor_spheres" sph/sph.tmp > sph/sph @$(ETC)/doshowsph.csh sph/sph 0 sph/sph.pdb @rm -rf sph/sph.tmp sph/match.sph: xtal-lig.pdb | sph/ @echo "Converting ligand atoms to spheres" @rm -rf sph/match.sph* @$(PDBTOSPH) xtal-lig.pdb sph/match.sph @$(ETC)/doshowsph.csh sph/match.sph 1 sph/match.sph.pdb grids/: @mkdir -p grids $(GRID_INPUTS) grids/vdw.parms.amb.mindock: | grids/ @cp $(CANONICAL)/$@ grids/ grids/amb.crg.oxt: | grids/ @cd grids; $(ETC)/makeparams.pl amb.crg.oxt rec2.crg @rm -f grids/prot.table.ambcrg.ambH grids/amb2.crg.oxt: | grids/ @cd grids; $(ETC)/makeparams.pl amb2.crg.oxt rec3.crg @rm -f grids/prot.table.ambcrg.ambH grids/prot.table.ambcrg.ambH: grids/rec2.crg grids/rec3.crg | grids/ @cd grids; $(ETC)/makeparams.pl amb3.crg.oxt rec.crg grids/rec.crg: rec.pdb | grids/ @echo "Adding essential hydrogens to receptor" @rm -rf grids/rec.crg @mv -f rec.pdb rec3.pdb @$(CANONICAL)/tartpipe.pl rec3.pdb tart0.txt > rec.pdb @xmlclient.py protonate_united rec.pdb @mv -f rec.crg grids/rec.crg sph/match1.sph.pdb: sph/sph sph/match.sph grids/rec.crg | sph/ @echo "Generating matching spheres for delphi" @rm -rf sph/match1.sph* sph/makesph1.log @$(MAKESPHERES1) > sph/makesph1.log @$(ETC)/doshowsph.csh sph/match1.sph 1 sph/match1.sph.pdb sph/match0.sph: | sph/ @if test -e xtal-lig-frag.pdb; then \ echo "on" > .usefragsph; \ echo "Converting ligand fragment atoms to spheres"; \ rm -rf sph/match0.sph*; \ $(PDBTOSPH) xtal-lig-frag.pdb sph/match0.sph; \ $(ETC)/doshowsph.csh sph/match0.sph 1 sph/match0.sph.pdb; \ else \ echo "off" > .usefragsph; \ touch sph/match0.sph; \ fi .useligsph: @echo "on" > .useligsph sph/match2.sph: sph/sph sph/match.sph sph/match0.sph grids/rec.crg \ .useligsph | sph/ @echo "Generating faster matching2 spheres for docking" @rm -rf sph/match2.sph* sph/makesph2.log sph/colorsph2.log @$(MAKESPHERES3) 1.5 0.8 45 sph/match2.sph > sph/makesph2.log @$(ETC)/doshowsph.csh sph/match2.sph 1 sph/match2.sph.pdb @echo "Coloring matching spheres" @$(COLORSPH) sph/match2.sph > sph/colorsph2.log sph/match3.sph: sph/sph sph/match.sph sph/match0.sph grids/rec.crg \ .useligsph | sph/ @echo "Generating slower matching3 spheres for docking" @rm -rf sph/match3.sph* sph/makesph3.log sph/colorsph3.log @$(MAKESPHERES3) 1.0 0.5 60 sph/match3.sph > sph/makesph3.log @$(ETC)/doshowsph.csh sph/match3.sph 1 sph/match3.sph.pdb @echo "Coloring matching spheres" @$(COLORSPH) sph/match3.sph > sph/colorsph3.log grids/box: rec.pdb sph/match2.sph | grids/ @echo "Creating box around spheres" @rm -rf grids/box grids/makebox.log @$(MAKEBOX) $(PWD) > grids/makebox.log .autotart: @echo "off" > .autotart grids/rec2.crg: grids/rec.crg | grids/ @rm -rf grids/rec2.crg @$(CANONICAL)/tartpipe.pl grids/rec.crg tart.txt > grids/rec2.crg grids/rec3.crg: grids/rec2.crg | grids/ @rm -rf grids/rec3.crg @$(CANONICAL)/tartpipe.pl grids/rec2.crg tart2.txt > grids/rec3.crg grids/rec+sph.crg: sph/match1.sph.pdb grids/rec2.crg | grids/ @echo "Adding spheres to electrostatic grid" @rm -rf grids/rec+sph.crg @cat grids/rec2.crg sph/match1.sph.pdb > grids/rec+sph.crg grids/rec+sph2.crg: sph/match1.sph grids/rec3.crg | grids/ @echo "Adding spheres to tarted electrostatic grid" @rm -rf grids/rec+sph2.crg @cat grids/rec3.crg sph/match1.sph.pdb > grids/rec+sph2.crg grids/rec+sph.phi: grids/rec+sph.crg grids/delphi.com grids/vdw.siz \ grids/amb.crg.oxt grids/genric.prm | grids/ @echo "Creating DelPhi electrostatic grid" @rm -rf grids/rec+sph.phi grids/delphi.log delphi.pdb @echo `date` > grids/delphi.log @cat grids/delphi.com >> grids/delphi.log @cd grids; time nice ./delphi.com >> delphi.log @mv -f grids/fort.19 grids/delphi.pdb grids/rec+sph2.phi: grids/rec+sph2.crg grids/delphi2.com grids/vdw.siz \ grids/amb2.crg.oxt grids/genric.prm | grids/ @echo "Creating DelPhi electrostatic grid" @rm -rf grids/rec+sph2.phi grids/delphi2.log delphi2.pdb @echo `date` > grids/delphi2.log @cat grids/delphi2.com >> grids/delphi2.log @cd grids; time nice ./delphi2.com >> delphi2.log @mv -f grids/fort.19 grids/delphi2.pdb $(CHEM_GRIDS): grids/rec.crg grids/box grids/INCHEM \ grids/prot.table.ambcrg.ambH grids/vdw.parms.amb.mindock | grids/ @echo "Creating chemgrid maps" @rm -rf grids/chem.* grids/OUTPARM grids/PDBPARM grids/OUTCHEM @echo `date` > grids/chem.log @cat grids/INCHEM >> grids/chem.log @cd grids; time nice $(CHEMGRID) >> chem.log grids/solvmap_sev: grids/rec.crg grids/box grids/INSEV | grids/ @echo "Atomic solvent excluded volume calculations underway" @rm -rf grids/OUTSEV @cd grids; time nice $(SOLVSEV) @echo `date` >> grids/OUTSEV @cat grids/INSEV >> grids/OUTSEV grids/solvmap: grids/solvmap_sev | grids/ @rm -f grids/solvmap @ln -s solvmap_sev grids/solvmap tm3/rec.nocav.tst: rec.pdb @mkdir tm3/ @cp rec.pdb tm3/rec.pdb @echo "running travel depth" $(TDRUN) @cd tm3; time nice $(TDRUN) rec.pdb tm3/rec.nocav.tst.tree.tm3: tm3/rec.nocav.tst @echo "running pocket mapping" $(TDPOCKET) @cd tm3; time nice $(TDPOCKET) rec.nocav.tst rec.nocav.phi tm3/rec.cav.tst.tree.tm3: tm3/rec.nocav.tst @echo "running convex hull" $(TDCH) @cd tm3; time nice $(TDCH) rec.cav.tst @echo "running pocket mapping" $(TDPOCKET) @cd tm3; time nice $(TDPOCKET) rec.cav.tst rec.cav.phi tm3/0.xtal-lig.pdb: tm3/rec.cav.tst.tree.tm3 @echo "running pocket picker" $(TDPICKER) #use the next line if you want to use the removed cavity version #@cd tm3; time nice $(TDPICKER) rec.pdb rec.nocav.tst.tree.tm3 @cd tm3; time nice $(TDPICKER) rec.pdb rec.cav.tst.tree.tm3 finish: grids/OUTPARM grids/delphi.log | grids/ @echo "Checking for WARNINGS in OUTPARM." @grep -A 2 WARNING grids/OUTPARM; test 1 @echo "Checking for WARNINGS in delphi.log." @grep WARNING grids/delphi.log; test 1 @echo "End of MakeDOCK sphere and grid generation." # Extra optional make targets hsolvmap: grids/solvmap_sev.hydrogen grids/solvmap_sev.hydrogen grids/solvmap_sev.heavy: grids/rec.crg grids/box grids/INSEV.heavy grids/INSEV.hydrogen | grids/ @echo "Hydrogen solvent excluded grid being made" @for x in INSEV OUTSEV dielec_sev.box solv_sev.box solv_sev.plt; do \ mv -f grids/$$x grids/$$x.saved; \ done @mv -f grids/INSEV.hydrogen grids/INSEV @cd grids; time nice $(SOLVSEV) @echo `date` >> grids/OUTSEV @cat grids/INSEV >> grids/OUTSEV @for x in INSEV OUTSEV dielec_sev.box solv_sev.box solv_sev.plt; do \ mv -f grids/$$x grids/$$x.hydrogen; \ done @echo "Heavy solvent excluded grid being made" @mv -f grids/INSEV.heavy grids/INSEV @cd grids; time nice $(SOLVSEV) @echo `date` >> grids/OUTSEV @cat grids/INSEV >> grids/OUTSEV @for x in INSEV OUTSEV dielec_sev.box solv_sev.box solv_sev.plt; do \ mv -f grids/$$x grids/$$x.heavy; \ mv -f grids/$$x.saved grids/$$x; \ done # End extra optional make targets clean: clean_inputs clean_logs distclean: clean_inputs clean_logs clean_outputs @if test -e sph; then rmdir sph; fi @if test -e grids; then rmdir grids; fi @if test -e rec3.pdb; then /bin/mv -f rec3.pdb rec.pdb; fi clean_inputs: @rm -rf filt.params $(SPH_INPUTS) $(GRID_INPUTS) \ grids/prot.table.ambcrg.ambH grids/amb*.crg.oxt clean_outputs: @rm -rf rec.site rec.ms sph/sph* sph/match.sph* \ grids/rec*.crg sph/match1.sph* sph/match0.sph* sph/match2.sph* \ sph/match3.sph* grids/box grids/tart.txt \ grids/rec+sph.crg grids/rec+sph.phi \ grids/rec+sph2.crg grids/rec+sph2.phi grids/tart2.txt \ $(CHEM_GRIDS) grids/solvmap* grids/vdw.parms.amb.mindock \ .usefragsph .useligsph .autotart clean_logs: @rm -rf filt.log dms.log sybyl.log sph/OUTSPH \ sph/makesph1.log sph/makesph2.log sph/makesph3.log \ sph/colorsph2.log sph/colorsph3.log grids/makebox.log \ grids/delphi*.log grids/delphi*.pdb grids/chem.log \ grids/OUTPARM grids/PDBPARM grids/OUTCHEM grids/OUTSEV* \ grids/solv*.box* grids/solv*.plt* grids/dielec*.box*