This pipeline facilitates setting up ligand docking against a protein using AutoDock-GPU. It streamlines the process of docking a ligand library onto a protein structure, leveraging the enhanced performance of AutoDock-GPU for faster results.
- To install AutoGrid, follow the same steps as described here. For faster docking on systems with GPUs, install AutoDock-GPU.
- To compile AutoDock-GPU, simply navigate to this GitHub page and follow the provided instructions.
- Make sure to download the MGLtools tar file compatible with your system, which is essential for running both AutoDock GUI (ADT) and AutoDock4. It is available on their website.
Incase you face any problem compiling the software, you can use the following steps:
Make sure you have OPENCL installed
wget https://github.com/ccsb-scripps/AutoDock-GPU/archive/refs/heads/develop.zip
unzip develop.zip
cd AutoDock-GPU-develop/
make DEVICE=GPU NUMWI=128
export GPU_INCLUDE_PATH=/usr/include
export GPU_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
To ensure clarity, create a new directory and move the unzipped AutoDock, and MGLTools files there. Also move 'AutoDock-GPU-develop' folder into this directory. Follow these steps:
- Create another directory named 'Repository':
mkdir Repository
cp ./<autodock-directory>/autogrid ./Repository
cp ./AutoDock-GPU-develop/bin/autodock_gpu_128wi ./Repository
cp -r <mgltools-directory> ./Repository
cp ./<mgltools-directory>/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_*4.py ./Repository
Replace <autodock-directory>
and <mgltools-directory>
with the directories you extracted from the respective tar files.
Ensure Python2 and Python3 are installed on your system.
-
Create a directory containing all your ligand PDB files and your protein PDB file.
-
Add 'Repository' in your current working directory (cwd).
-
Copy all the Python scripts provided in this repository to your cwd.
-
Extract the binidng pocket out from the protein PDB file-
python3 targeted_site.py <protein_name> <ligand_name_as_mentioned_in_pdb_file> <CHAIN_ID_for_ligand>
For example:
python3 targeted_site.py 7k15.pdb VRJ A
This will give 7k15_site.pdb as output.
-
Get the Centroid of the extracted binding site:
python3 Centroid.py <bind_site>
For example:
python3 Centroid.py 7k15_site.pdb
This will print out the <x,y,z> coordinated.
- Change path:
export PATH=<PATH_TO_CWD>/Repository/mgltools_x86_64Linux2_1.5.6/bin:$PATH
export PYTHONPATH=<PATH_TO_CWD>/Repository/mgltools_x86_64Linux2_1.5.6/MGLToolsPckgs/:$PYTHONPATH
Replace <PATH_TO_CWD> with the path of your working directory. You can get it using command 'pwd' in your terminal.
- Perform docking:
Make sure you are in the working directory with all the ligand PDB files, protein PDB file, 'Repository' and all the python scripts attached with this github repository.
python3 gpu_hts.py <prot_name> <x,y,z> <nrun>
Here <prot_name> is the protein PDB file, <x,y,z> are the coordinated and 'nrun' are the number of LGA runs.
This initiates the docking process for the ligands located in the current working directory (cwd) with the specified protein.
If you want to run single protein-ligand docking:
python2 gpu_filecr.py <prot_name> <ligand_name> <x,y,z> <nrun>
For example:
python2 gpu_filecr.py 7k15.pdb VRJ.pdb 1.9392312138728325,-8.92228901734104,18.28384393063584 10
This will generate a new directory named '7k15a_VRJ'. Within this directory, you'll find all the input and output files produced during the docking.
- After the docking is done, we need to have the binding energy values of the docked ligand. To get the binding energy:
python3 binding_energy.py
This script will analyze the '.dlg' file for each ligand, providing the binding energy of the cluster with the highest number of conformations, along with the number of conformations in that cluster. You'll get a file named 'Energy.txt' with all the complex name and the binding energy values.
- We're now prepared to transfer all ligands along with their corresponding docking directories into a new directory to facilitate further analysis. To accomplish this, follow these steps:
python3 full_dir.py
This will relocate the dlg files of the ligands listed in the 'Energy.txt' file. Hence, you can transfer the dlg files corresponding to the specified binding energies using the 'binding_energy.py' script followed by 'full_dir.py'.
If you know certain important ligand-residue interactions, such as hydrogen bonding, you can check if ligands exhibit these interactions in the docked pose to filter them.
- Generate a new PDB file with the ligand docked into the protein in the optimal docking pose as determined by the algorithm.
python3 test_outname.py
This will generate complexes (protname_ligandname.pdb) for all the files that have been docked.
- Make a new directory named 'Complex' and move all the complex PDB file there.
- Now to check the interactions use 'PLIP'. You can download it from here
- To check the interaction with PLIP:
plip -f *.pdb -t -y
This creates a new directory called 'protein_ligand' containing a PyMOL session file and a text file named 'report.txt' detailing all interactions.
Now, you can script in Python to identify ligands with significant interactions with protein residues. Should you encounter any difficulties with scripting, feel free to reach out to me.
If you have any questions, feedback, or suggestions for improvement, please don't hesitate to reach out or open an issue. I welcome contributions from the community to enhance and expand this project. Happy docking!