Usage
You can use MEGADOCK 4.0 on (a)
GPU cluster, (b)
CPU cluster, (c)
GPU single node and (d)
CPU single node. Please see the appropriate instructions below.
Examples
(a) GPU & MPI (e.g. 4 MPI processes,
HOSTS
is node list file)
$ mpirun -n 4 ./megadock-gpu-dp -tb data/SAMPLE.table
# for using `HOSTS` file (HOSTS is node list file)
# mpirun -n 4 -hostfile HOSTS ./megadock-gpu-dp -tb data/SAMPLE.table
(b) CPU & MPI (e.g. 4 MPI processes,
HOSTS
is node list file)
$ mpirun -n 4 ./megadock-dp -tb data/SAMPLE.table
# for using `HOSTS` file (HOSTS is node list file)
# mpirun -n 4 -hostfile HOSTS ./megadock-dp -tb data/SAMPLE.table
(c) GPU single node
$ ./megadock-gpu -R data/receptor.pdb -L data/ligand.pdb
(d) CPU single node
$ ./megadock -R data/receptor.pdb -L data/ligand.pdb
Parameters for MPI
Required
-tb [docking job table]
Optional
-lg [log file name] (default: master.log)
-rt [number of retries] Number of retry of a dockingjob if fails (defalt: 0)
Docking job table
Parameters and docking target list should be written in a text file. A table file should have
TITLE
and
PARAM
lines followed by parameters listed by the same order as in the
PARAM
line.
SAMPLE.table
file in this package shows an example.
SAMPLE.table
TITLE=sample jobs
PARAM=-R $1 -L $2
data/1gcq_r.pdb data/1gcq_r.pdb
data/1gcq_r.pdb data/1gcq_l.pdb
data/1gcq_l.pdb data/1gcq_r.pdb
data/1gcq_l.pdb data/1gcq_l.pdb
(Note: in lines 3-, parameters must be tab-delimited.)
Docking parameters
(common parameters for both MPI job table and non-MPI MEGADOCK)
You can specify docking parameters loaded by MEGADOCK
by setting
PARAM
in the table file.
Lines follows the
PARAM
lines specifies parameters for each docking job
which will be distributed to available nodes by MPI. If you use non-MPI version of MEGADOCK
(
megadock-gpu
or
megadock
), you can set these parameters directly.
Required
-R [receptor pdb file]
-L [ligand pdb file]
Optional
-o [filename] : set the output filename (default to "$R-$L.out")
-O : output docking detail files
-N [integer] : set the number of output predictions (default to 2000)
-t [integer] : set the number of predictions per each rotation (default to 1)
-F [integer] : set the number of FFT point (default to none)
-v [float] : set the voxel pitch size (default to 1.2 [angstrom])
-r [integer] : set the number of rotational sampling angles
(54000: 54000 angles, 1: 1 angles, 24: 24 angles, default to 3600 angles)
-D : set the number of rotational sampling angles to 54000
-e [float] : set the electrostatics term ratio (default to 1.0)
-d [float] : set the hydrophobic term ratio (default to 1.0)
-a [float] : set the rPSC receptor core penalty (default to -45.0)
-b [float] : set the rPSC ligand core penalty (default to 1.0)
-f [1/2/3] : set function
(1: rPSC only, 2: rPSC+Elec, 3: rPSC+Elec+RDE, default to 3)
-h : show the help message
Docking output
Each docking job generates docking output file in which
rotation angles (x, y, z) of ligand from the initial structure,
numbers of voxel translation (x, y, z) from receptor center
coordinate and docking scores are listed.
If you want to generate decoy pdbfiles, please use
decoygen
binary.
$ ./decoygen [decoy_filename] [used_ligand.pdb] [.outfile] [decoy no.]
ex) (
megadock -R rec.pdb -L lig.pdb -o dock.out
, generate 1st ranked decoy )
$ ./decoygen lig.1.pdb lig.pdb dock.out 1
$ cat rec.pdb lig.1.pdb > decoy.1.pdb
# lig.1.pdb : rotated and translated lig.pdb
# decoy.1.pdb : complex pdb file
ex) (
megadock -R rec.pdb -L lig.pdb -o dock.out
, generate all decoys )
$ i=1; cat dock.out| while read LINE; do ./decoygen lig.${i}.pdb lig.pdb dock.out $i; cat rec.pdb lig.${i}.pdb > decoy.${i}.pdb; let i=$i+1; done
# Note: this command is oneliner.
Blocking target residues
"block" tool (python script) is to block some residues of a receptor protein from docking.
If you know that some residues are not in the binding sides, please list their
residue numbers and input "block" tool. This program changes the name of residues to "BLK"
and prints the new pdb on the screen.
$ ./block [pdbfile] [chain] [target residue list]
For example, if you block no. 182-186, 189, 195-198 and 204 residues of chain B of 1gcq_r.pdb,
$ ./block data/1gcq_r.pdb B 182-186,189,195-198,204 > 1gcq_r_blocked.pdb
$ ./megadock -R 1gcq_r_blocked.pdb -L data/1gcq_l.pdb
Note: Target residues list is separated by commas and no spaces.
You can also use hyphen "-": "182-186" means blocking residues of 182, 183, ..., 186.
Blocked residues are substituted for 'BLK'.
Updated PDB coordinates are written to "standard output".
MEGADOCK can only block receptor residues.
Thread parallelization
MEGADOCK can parallelize rotation calculations by using OpenMP.
You can tell MEGADOCK the number of OpenMP threads you want to use by
environmental variable such as
$OMP_NUM_THREADS
.
export OMP_NUM_THREADS=8