AutoDock is a suite of automated docking tools. It is designed to predict how small molecules, such as substrates or drug candidates, bind to a receptor of known 3D structure.
AutoDock Vina does not require choosing atom types and pre-calculating grid maps for them. Instead, it calculates the grids internally, for the atom types that are needed, and it does this virtually instantly.
pythonsh command available when you load the module. This will ensure your environment is properly set up.
To create a .pdbqt file from a PDB file, you can use
module load openbabel
obabel -ipdb filename.pdb -opdbqt -Ofilename.pdbqt
Allocate an interactive session and run the program. Sample session:
[user@biowulf]$ sinteractive --cpus-per-task=8
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job
[user@cn3144 ~]$ module load AutodockVina
[+] Loading AutoDockVina 1.2.5
[+] Loading singularity 4.0.1 on cn3144
[+] Loading AutodockCrankprep 1.0 on cn3144
[user@cn3144 ~]$ module list
Currently Loaded Modules:
1) singularity/4.0.1 2) AutodockCrankprep/1.0 3) AutodockVina/1.2.5
[user@cn3144 ~]$ vina --config conf.txt --cpus $SLURM_CPUS_PER_TASK
#################################################################
# If you used AutoDock Vina in your work, please cite: #
# #
# O. Trott, A. J. Olson, #
# AutoDock Vina: improving the speed and accuracy of docking #
# with a new scoring function, efficient optimization and #
# multithreading, Journal of Computational Chemistry 31 (2010) #
# 455-461 #
# #
# DOI 10.1002/jcc.21334 #
# #
# Please see http://vina.scripps.edu for more information. #
#################################################################
Output will be ligand_out.pdbqt
Reading input ... done.
Setting up the scoring function ... done.
Analyzing the binding site ... done.
Using random seed: 653328095
Performing search ...
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
done.
Refining results ... done.
mode | affinity | dist from best mode
| (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
1 -12.3 0.000 0.000
2 -10.1 5.153 9.937
3 -9.6 5.800 9.437
4 -9.5 5.027 10.364
Writing output ... done.
[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$
Create a batch input file (e.g. autodock.sh). For example:
#!/bin/bash module load Autodock autodock4 -p myfile.dpf -l myfile.dlg
Submit this job using the Slurm sbatch command.
sbatch [--mem=#] autodock.shThe --mem=#g flag should be used if the autodock run requires more than the default 4 GB of memory.
Create a swarmfile (e.g. myfile.swarm). For example:
cd /data/$USER/mydir; autodock4 -p lig1.macro.def -l lig1.log cd /data/$USER/mydir; autodock4 -p lig2.macro.def -l lig2.log cd /data/$USER/mydir; autodock4 -p lig3.macro.def -l lig3.log cd /data/$USER/mydir; autodock4 -p lig4.macro.def -l lig4.log [...]
Submit this job using the swarm command.
swarm -f myfile.swarm [-g #] --module Autodockwhere
| -g # | Number of Gigabytes of memory required for each process (1 line in the swarm command file) |
| -t # | Number of threads/CPUs required for each process (1 line in the swarm command file). (not useful for Autodock which is single-threaded, but can be used for a swarm of Vina jobs) |
| --module Autodock | Loads the Autodock module for each subjob in the swarm |
Autodock-GPU processes ligand-receptor poses in parallel over multiple compute units on GPUs. [Autodock-GPU website]
Test script:
#!/bin/bash
module load Autodock-GPU
cd /data/$USER
mkdir autodock-gpu
cd autodock-gpu
git clone https://github.com/L30nardoSV/reproduce-parcosi-moleculardocking.git
cd reproduce-parcosi-moleculardocking
git clone https://gitlab.com/L30nardoSV/ad-gpu_miniset_20.git
# note: this test job requires the executables to be available in the same dir
ln -s ${AUTODOCK_BIN}/* .
./prepare_inputs.sh
./evaluate_numwi.sh <<EOF
Y
Y
1
k80
EOF
Select a GPU type (e.g. k80, p100, v100) and submit with:
sbatch --partition=gpu --gres=gpu:k80:1 test.sh