Tutorial on running DOCK3.7 with GIST

From DISI
Jump to navigation Jump to search

Tutorial by Trent Balius (2017/01/30).

here are more GIST related tutorials: DOCK_3.7_with_GIST_tutorials

This tutorial assumes that you have already completed the MD tutorial Tutorial on running Molecular Dynamics for GIST grid generation with scripts.

  1. use the align the receptor and ligand to the MD frame.
  2. prepare the receptor for docking using blastermaster. Flexible receptor docking is approximated by docking to 16 states.
  3. modify the INDOCK file.
  4. download (or generate) ligand and decoy DUD-E like databases.
  5. Dock ligand and decoy databases and perform enrichment analysis
  6. perform enrichment analyis


prepare system for docking

Write the following script (011.dock.blastermaster.csh) to run blastermaster.

#!/bin/csh 

# This script runs Ryan's blastermaster python masterscript for generating everything that dock needs, i.e. grids, spheres
# Run on sgehead as jobs are submitted to the queue

# TEB/ MF -- March 2017

setenv DOCKBASE "/nfs/home/tbalius/zzz.github/DOCK" 
source /nfs/soft/python/envs/complete/latest/env.csh


set mountdir = `pwd`

set workdir = ${mountdir}/docking/1prep
set pramdir = ${mountdir}/for011.dockprep_parm_files


  if ( -s $workdir ) then
     echo "$workdir does exits"
     exit
  endif

mkdir -p $workdir
cd $workdir

ln -s $mountdir/gist/010a.full_gist_combine gistfiles 

cp $mountdir/gist/007align_to_md/rec_aligned.pdb .
cp $mountdir/gist/007align_to_md/lig_aligned.pdb .

cat rec_aligned.pdb | awk '{if ($1 == "ATOM" || $1 == "HETATM"){print $0}}' | awk '{if($12 != "H"){print $0}}' | sed -e "s/HETATM/ATOM  /g" | sed -e 's/HEM/HM2/g' >!  rec.pdb

cat lig_aligned.pdb | awk '{if ($1 == "ATOM" || $1 == "HETATM"){print $0}}' | sed -e "s/HETATM/ATOM  /g"  >  xtal-lig.pdb



# the following lines create a qsub script which submits blastermaster to the queue
cat <<EOF > qsub.csh
#!/bin/csh 
#\$ -cwd
#\$ -j yes
#\$ -o stderr
#\$ -q all.q

setenv DOCKBASE "/nfs/home/tbalius/zzz.github/DOCK" 
source /nfs/soft/python/envs/complete/latest/env.csh

cd $workdir
$DOCKBASE/proteins/blastermaster/blastermaster.py --addhOptions=" -HIS -FLIPs " --addhDict="$pramdir/reduce_wwPDB_het_dict_mod.txt" --chargeFile="$pramdir/amb_mod.crg.oxt" --vdwprottable="$pramdir/prot_mod.table.ambcrg.ambH" -v
EOF

qsub qsub.csh 


# this will produce two directories:
# 1) working - contains all input and output files that are generated; not needed afterwards but as a reference
# 2) dockfiles - contains everything that is needed to run dock (copied from working)
#    grids 
#      trim.electrostatics.phi 
#      vdw.vdw 
#      vdw.bmp 
#      ligand.desolv.heavy
#      ligand.desolv.hydrogen
#    spheres
#      matching_spheres.sph

docking

enrichment

prepare system for docking (flex)

First we need to align the pdb with multiple states in the MD frame (050.flex.alignwithchimera_gist_conf.csh).

#!/bin/csh 
## this script was written by trent balius in the Rizzo Group, 2011
## modified in the Shoichet Group, 2013-2015

# TEB, MF comments -- March 2017

# This shell script will do the following:
# (1) aligns the flexible receptor onto the 10th (production) MD frame -- as before for ligand.
# Hence we can make a simlink using that ligand.

set mountdir = `pwd`
set workdir  = $mountdir/flex/01align_to_md
rm -rf $workdir
mkdir -p $workdir
cd $workdir

#ln -s ${mountdir}/MDrundir/prep/002md_align . 

 
curl docking.org/~tbalius/code/waterpaper2017/parms/APO_rt_loop.pdb > APO_rt_loop.pdb
set ref = "$mountdir/gist/006ref/ref.pdb" # snapshot from simulation
set rec = "$workdir/APO_rt_loop.pdb" # rec with flexibility

set chimerapath = "/nfs/soft/chimera/current/bin/chimera"

#write instruction file for chimera based alignment
cat << EOF > chimera.com
# template #0
open $ref 
# rec #1
open $rec

# move original to gist. it is harder to move the gist grids. 
mmaker #0 #1 
write format pdb  0 ref.pdb
write format pdb  1 rec_aligned.pdb
EOF
 
${chimerapath} --nogui chimera.com > & chimera.com.out

# we have already aligned the ligand previously. 
ln -s $mountdir/gist/007align_to_md/lig_aligned.pdb .

Next we prepare this receptor for docking using blastermaster with the flexible receptor-flag (051.flex.blastermaster.csh).

#!/bin/csh 

# This script runs Ryan's blastermaster python masterscript for generating everything that dock needs, i.e. grids, spheres
# Run on sgehead as jobs are submitted to the queue

# TEB/ MF - March 2017

setenv DOCKBASE "/nfs/home/tbalius/zzz.github/DOCK" 
source /nfs/soft/python/envs/complete/latest/env.csh

#set Multiplier = 1.0
set Multiplier = 2.0
set reslist = 186+187+188+189+190+191+192+193+194,199,228

# if you need help selecting which residues to include as flexible the following line find all entries with a letter in the alternative conformation column
# grep "ATOM" rec.pdb | grep -v "^................ " | cut -c17-26 | uniq 

set mountdir = `pwd`

set workdir = ${mountdir}/flex/2prep
set pramdir = ${mountdir}/for011.dockprep_parm_files


  if ( -s $workdir ) then
     echo "$workdir does exits"
     exit
  endif

mkdir -p $workdir
cd $workdir

ln -s $mountdir/gist/010a.full_gist_combine gistfiles 

cp $mountdir/flex/01align_to_md/rec_aligned.pdb .
cp $mountdir/flex/01align_to_md/lig_aligned.pdb .

cat rec_aligned.pdb | grep -v "HOH" | awk '{if ($1 == "ATOM" || $1 == "HETATM"){print $0}}' | awk '{if($12 != "H"){print $0}}' | sed -e "s/HETATM/ATOM  /g" | sed -e 's/HEM/HM2/g' >!  rec.pdb

cat lig_aligned.pdb | awk '{if ($1 == "ATOM" || $1 == "HETATM"){print $0}}' | sed -e "s/HETATM/ATOM  /g"  >  xtal-lig.pdb



# the following lines create a qsub script which submits blastermaster to the queue
cat <<EOF > qsub.csh
#!/bin/csh 
#\$ -cwd
#\$ -j yes
#\$ -o stderr
#\$ -q all.q

setenv DOCKBASE "/nfs/home/tbalius/zzz.github/DOCK" 
source /nfs/soft/python/envs/complete/latest/env.csh

cd $workdir
$DOCKBASE/proteins/blastermaster/blastermaster.py --addhOptions=" -HIS -FLIPs " --addhDict="$pramdir/reduce_wwPDB_het_dict_mod.txt" --chargeFile="$pramdir/amb_mod.crg.oxt" --vdwprottable="$pramdir/prot_mod.table.ambcrg.ambH" -v -f --flexiblePenaltyM=$Multiplier --flexibleResidues=${reslist} 
EOF

qsub qsub.csh 


# this will produce two directories:
# 1) working - contains all input and output files that are generated; not needed afterwards but as a reference
# 2) dockfiles - contains everything that is needed to run dock (copied from working)
#    grids 
#      trim.electrostatics.phi 
#      vdw.vdw 
#      vdw.bmp 
#      ligand.desolv.heavy
#      ligand.desolv.hydrogen
#    spheres
#      matching_spheres.sph

docking (flex)

enrichment (flex)