dptech-corp / uni-dock Goto Github PK
View Code? Open in Web Editor NEWUni-Dock: a GPU-accelerated molecular docking program
Uni-Dock: a GPU-accelerated molecular docking program
When I use unidock tools I only get output ligand. How I can get score?
Hello, i used a file containing SDF file path like the following:
./TEMP_sdf_ligands/Z319894772.sdf
./TEMP_sdf_ligands/Z644871422.sdf
./TEMP_sdf_ligands/Z236962782.sdf
./TEMP_sdf_ligands/Z225356194.sdf
./TEMP_sdf_ligands/Z221152452.sdf
./TEMP_sdf_ligands/Z32845729.sdf
./TEMP_sdf_ligands/Z32879865.sdf
./TEMP_sdf_ligands/Z2793291129.sdf
./TEMP_sdf_ligands/Z2793398822.sdf
./TEMP_sdf_ligands/Z608646848.sdf
./TEMP_sdf_ligands/Z3231330333.sdf
./TEMP_sdf_ligands/Z3231230030.sdf
./TEMP_sdf_ligands/Z1598562232.sdf
./TEMP_sdf_ligands/Z1403323503.sdf
./TEMP_sdf_ligands/Z1262485176.sdf
However, i received the following error.
Scoring function : vina
Rigid receptor: ./indata/def.pdbqt
Grid center: X -36.01 Y 25.63 Z 67.49
Grid size : X 22 Y 22 Z 22
Grid space : 0.375
Exhaustiveness: 8
CPU: 0
Verbosity: 1
Computing Vina grid ... done.
Total ligands: 15
Available Memory = 80804MiB Total Memory = 81228MiB
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
No fragment info, using rigid docking
/jobfs/local/slurm/job47382478/slurm_script: line 19: 298
4469 Segmentation fault (core dumped) /fred/oz241/xchee/sandbox_unidock/Uni-Dock-main/unidock/bin/unidock --receptor ./indata/def.pdbqt --ligand_index sdf_ligand_path.txt --center_x -36.01 --center_y 25.63 --center_z 67.49 --size_x 22 --size_y 22 --size_z 22 --dir ./result/def --exhaustiveness 8 --max_step 20 --num_modes 1 --scoring vina --refine_step 3 --seed 5
Can i have some advice on this?
Thanks!
Hi again
using the same config file ( with the same receptor, the same ligands' pdbqts) I have outputs (docking poses) only when using the fast search_mode, indeed in detail and balance modes I don't have any pose. Here is the error I receive for every ligand
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #0
The search space is the same of the fast mode .
Here is an example config file
receptor = protein.pdbqt
dir = ./out_detail
ligand_index = ligand_index.txt
num_modes = 3
center_x = 6.73
center_y = 29.95
center_z = 60.26
size_x = 35
size_y = 35
size_z = 35
seed = 1234
search_mode = detail
I'm running on a RTXA4000 (16GB) and rocky 8.5
Thanks
Andrea
Hi,
I am a bit confused that the README file said "Executable unidock supports vina and vinardo scoring functions, and unidock_ad4 supports ad4 scoring function."
But after I compiled from sources by cmake
, only unidock
exists not unidock_ad4
.
can uni-dock generate 3d model for ligand using a 2d structure ?
Hi Uni-Dock Team,
I've recently been using Uni-Dock for molecular docking and encountered an error when working with larger ligands. Specifically, I received an error message suggesting that my ligand exceeded the maximum torsion count, though I couldn't find a documented torsion limit in the Uni-Dock materials.
For context, I'm aware that AutoDock 4 has a torsion limit of 32, and AutoDock-GPU has a limit of 58. In your publication, you mentioned docking ligands with up to 50 atoms, which might imply a similar limitation. Could you please clarify if there is a specific torsion or atom count limit for ligands in Uni-Dock? Including this information in the documentation would be extremely helpful for users in understanding the tool's capabilities and limitations.
For reference, the ligand that caused the issue in my case has 60 torsions. This number and even more are handled by Vina 1.2.
I appreciate your work on this promising tool and look forward to any updates or information you can provide.
Thank you!
I am having difficulty installing. I tried all the methods mentioned here. but none of them is working. I am using CentOS.
I installed dependencies and cuda toolkit using conda .
I am new to this. So, it will be great if someone can help. thanks!
I try to run Uni-Dock parallel and expect it to use multiple GPUs (in my case 4 A40 GPUs), however, I only saw one GPU process when I started 4 unidock runs. And it seems all 4 runs were send to the same GPU and unfortunately it was killed by the following error soon:
CUDA error at /home/cdd/Uni-Dock/unidock/src/cuda/precalculate.cu:139 code=46(cudaErrorDevicesUnavailable) "cudaMalloc(&atom_xs_gpu, thread * max_atom_num * sizeof(sz))"
I was wondering is there any option like --devnum in AutoDock-GPU so that we can distribute jobs to multiple GPUs? By the way I tried the solution here to distribute jobs on each GPU.
I tried to run Uni-Dock on NVIDIA T4 GPU, but it hanged forever:
failed_unidock.zip
Input files are attached and the command is in the run.sh file
Compiling fails when using the default CMake config using CUDA 11.2:
nvcc fatal : Unsupported gpu architecture 'compute_90'
I suggest commenting out
Uni-Dock/unidock/CMakeLists.txt
Line 34 in 883671c
No response
No response
No response
No response
CMakeLists.txt for 1.1.1 contains previous version string:
VERSION 1.1.0
[Feature Request]
To enhance user experience and facilitate Uni-Dock's handling of PDB format proteins, I would like Uni-Dock to natively support PDB format proteins as receptor input. Currently, users need to convert PDB format proteins to pdbqt format to use Uni-Dock, which requires additional steps.
[Possible Solution]
I would like Uni-Dock to internally handle PDB format protein files, providing an option for users to directly use PDB format proteins as receptor input. Uni-Dock can automatically add the necessary information, such as atom types, charges, and adjustable bonds in the background.
In the output file of SDF format, all scoring components are saved as the tag Uni Dock RESULT:
> <Uni-Dock RESULT>
ENERGY= -8.043 LOWER_BOUND= 0.000 UPPER_BOUND= 0.000
INTER + INTRA: -10.150
INTER: -9.745
INTRA: -0.405
UNBOUND: -0.461
This results in additional post-processing tasks. I suggest to save each scoring component as an independent tag as following:
> <Energy>
-8.043
> <INTER + INTRA>
-10.150
> <INTER>
-9.745
> <INTRA>
-0.405
> <UNBOUND>
-0.461
$ more CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(
Uni-Dock
VERSION 0.1.0
DESCRIPTION "GPU-Accelerated Docking with 1000-fold speedup"
HOMEPAGE_URL "https://github.com/dptech-corp/Uni-Dock"
LANGUAGES CXX CUDA
)
Hello,
I'm encountering a CUDA Runtime Error when trying to run Uni-Dock on my system. The error message is as follows:
Performing docking (random seed: 1521015319) ... CUDA error at /root/code/Uni-Dock-private/src/cuda/monte_carlo.cu:1719 code=2(cudaErrorMemoryAllocation) "cudaMallocHost(&p_data, sizeof(p_m_data_cuda_t) * MAX_P_DATA_M_DATA_SIZE)"
This error occurs when I run the following command:
./unidock --receptor 7s68_fixed_pH_7.pdbqt --gpu_batch ./ex.pdbqt --search_mode balance --scoring vina --center_x 2.0 --center_y 30.0 --center_z 64.0 --size_x 18.0 --size_y 16.0 --size_z 16.0 --num_modes 20 --dir ./docked
My system is running Windows 10 with WSL2 of Ubuntu 20.04. I have installed the CUDA toolkit (WSL version). When running Uni-Dock, it seems that the GPU is not being utilized, but the CPU is working at 100% load.
Here is the output of nvidia-smi on my system:
Sun Jul 16 20:40:02 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.04 Driver Version: 536.23 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4090 On | 00000000:01:00.0 On | Off |
| 0% 41C P8 30W / 450W | 2769MiB / 24564MiB | 11% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
Any help in resolving this issue would be greatly appreciated. Thank you!
./unidock and ./unidock_tools are 2 different programs that have different functions and different licenses. Is it a better idea to separate ./unidock and ./unidock_tools as 2 repo?
Input settings
/opt/unidock --receptor 5ikr-cox2.pdbqt
--gpu_batch PV-002891686951.pdbqt PV-003124505859.pdbqt PV-003478069427.pdbqt
--search_mode balance
--scoring vina
--center_x -32.29
--center_y 43.44
--center_z -5.64
--size_x 20
--size_y 20
--size_z 20
--num_modes 1
--dir results/ \
Verbose:
Rigid receptor: 5ikr-cox2.pdbqt
Grid center: X -32.29 Y 43.44 Z -5.64
Grid size : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 384
CPU: 0
Verbosity: 1
Computing Vina grid ... entering done
done.
exiting done
Total ligands: 3
Avaliable Memory = 11147MiB Total Memory = 12065MiB
Batch 1 size: 3
Performing docking (random seed: 927183154) ... Kernel running time: 1
entering done
exiting done
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #0
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #1
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #2
WARNING: Could not find any poses. No poses were written.
WARNING: Could not find any poses. No poses were written.
WARNING: Could not find any poses. No poses were written.
Batch 1 running time: 2107ms
Single ligand docking is possible
I am not able to figure out the problem; I have also tried using the files given in the example folder.
Does Uni-Dock support Titan-V GPU
Thanks and Regards
Hi,
Based on code here:
I thought this way to find mgltools is not good. I was assuming users are under Unidock tools
conda env where Unidock are installed when executing this command. This requires python=3
. But mgltools are based on python2
, so it can't coexist with Unidock_tools and therefore in another environment.
But the code here is searching for a *
, which returns the env of Unidock tools not mgltools. This can lead to
Traceback (most recent call last):
File "/home/gridsan/ywang3/.conda/envs/unidock/bin/Unidock", line 33, in <module>
sys.exit(load_entry_point('unidock-tools==1.1.2', 'console_scripts', 'Unidock')())
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/unidock.py", line 312, in main
unidock = UniDock(args.receptor, args.scoring, args.dir)
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/unidock.py", line 27, in __init__
self.set_receptor(receptor)
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/unidock.py", line 52, in set_receptor
self.receptor = preparer.run()
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/protein_prepare/protein_prepare.py", line 54, in run
self.pdb2pdbqt(self.input_protein_path, self.output_protein_path)
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/protein_prepare/protein_prepare.py", line 27, in pdb2pdbqt
if "*" in set(line.split("")):
ValueError: empty separator
I guess we can let users define the location of mgltools. Just correct me if I'm wrong.
Dear Unidock developers,
Thanks for producing this software for us to use!
I really appreciate that.
We've run into some errors when I start to use multiple ligands as input parameters.:
"....
.....
Computing Vina
grid ... done.
Total ligands: 283
Batch 1 size: 283
> CUDA error at /apps/chpc/bio/Uni-Dock/unidock/src/cuda/precalculate.cu:198
code=34(cudaErrorStubLibrary) "cudaMalloc(&atom_
xs_gpu, thread * max_atom_num * sizeof(sz))"
Do you know what is happening?
By the way, I think we have Nvidia V100 x 16GB cards,
will this cause an issue? I saw in your code that you recognize the 32GB V100 when you determine the memory size to be allocated. Is this part of the problem?
Regards
Jeremy
Input SDF files for running Uni-Dock rigid docking should have no torsion and fragment of the whold molecule, but mcdock application gives SDF files with all fragments and tostions into rigid docking.
No response
No response
No response
No response
Hi,
I am interested in integrating Uni-Dock in a docking workflow, but I wanted to check the license to see whether it is compatible with commercial usage. I haven't been able to find the license in the GitHub repo and wanted to check with you what the terms are.
Thanks beforehand!
Dear all, I'm at University of Perugia (ITLAY),
I'm running an OS Rocky 8.5 that ships with gcc 2.28.
When running the precompiled unidock exec I have this errors.
./unidock: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./unidock)
./unidock: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./unidock)
Could you compile it with the static option? or can you suggest me how to overcome this issue.
Thanks
Andrea
Hi Uni-Dock team.
I am intrigued by the biased docking methodology described in the original manuscript. However, I find only one simple usage in the README.
Uni-Dock/unidock_tools/README.md
Lines 51 to 53 in 7c0cda0
Could you please elaborate more on the biased docking? Specifically, I am interested in understanding how one can set a hydrogen bond bias, as exemplified in the manuscript's case study on tankyrase2.
The inclusion of a practical example would be incredibly helpful. Thanks.
Scripts:
Unidock --receptor 1ipb_protein_only.pdbqt \
--ligand_index ligands.idx \
--reference ligands/M7G.sdf \
--scoring vina \
--center_x 10.671 \
--center_y -73 \
--center_z 22. \
--size_x 20 \
--size_y 20 \
--size_z 20 \
--search_mode balance \
--dir results
Output:
.....
.....
ligand output_15345 preperation successful
ligand output_15295 preperation successful
ligand output_15347 preperation successful
ligand output_15322 preperation successful
ligand output_15343 preperation successful
ligand output_15352 preperation successful
ligand output_15320 preperation successful
ligand output_15296 preperation successful
ligand output_15301 preperation successful
ligand output_15346 preperation successful
ligand output_15353 preperation successful
ligand output_15310 preperation successful
15335 sdf format ligands have been prepared successfully in total 15354
command_ligand: --ligand_index results/ligands.dat
command: unidock --scoring vina --ligand_index results/ligands.dat --receptor 1ipb_protein_only.pdbqt --center_x 10.671 --center_y -73.0 --center_z 22.0 --size_x 20.0 --size_y 20.0 --size_z 20.0 --dir results --cpu 0 --seed 0 --num_modes 9 --min_rmsd 1 --energy_range 3 --spacing 0.375 --verbosity 1 --max_step 0 --refine_step 5 --max_gpu_memory 0 --search_mode balance --multi_bias
Uni-Dock v0.1.0
If you used Uni-Dock in your work, please cite:
Yu, Y., Cai, C., Wang, J., Bo, Z., Zhu, Z., & Zheng, H. (2023).
Uni-Dock: GPU-Accelerated Docking Enables Ultralarge Virtual Screening.
Journal of Chemical Theory and Computation.
https://doi.org/10.1021/acs.jctc.2c01145
Tang, S., Chen, R., Lin, M., Lin, Q., Zhu, Y., Ding, J., ... & Wu, J. (2022).
Accelerating autodock vina with gpus. Molecules, 27(9), 3041.
DOI 10.3390/molecules27093041
J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli
AutoDock Vina 1.2.0: New Docking Methods, Expanded Force
Field, and Python Bindings, J. Chem. Inf. Model. (2021)
DOI 10.1021/acs.jcim.1c00203
O. Trott, A. J. Olson,
AutoDock Vina: improving the speed and accuracy of docking
with a new scoring function, efficient optimization and
multithreading, J. Comp. Chem. (2010)
DOI 10.1002/jcc.21334
Please refer to https://github.com/dptech-corp/Uni-Dock/ for
bug reporting, license agreements, and more information.
Scoring function : vina
Rigid receptor: 1ipb_protein_only.pdbqt
Grid center: X 10.671 Y -73 Z 22
Grid size : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 384
CPU: 0
Verbosity: 1
Computing Vina grid ... done.
Total ligands: 15335
Avaliable Memory = 32188MiB Total Memory = 32500MiB
Batch 1 size: 116
Error: could not open "" for reading.
The source code release files for 1.0.0 do not actually contain the source code. This is true for .zip and .tar,gz files.
As shown above, we support --multi_bias
which requires as many reference ligand as input ligand. It will slower the docking process. Common bias using --bias
is supported in Uni-Dock
and is also widely used. Having the support will be very helpful and efficient for many users.
Hi,
I'm using Unidock
command line. I just found when the molecule library is in a huge number, the time for ligand preparation is too long and GPUs has nothing to do with it, which is resources low efficient.
Is it possible to seperate the processes into two CLIs? also when preparing ligands, CPU usage is not really high, maybe could we use multiprocessing to accelerate them?
Thanks
Hi, I am new to molecular docking, and uni-dock works so nicely. Thanks for the great work!
My question is how we usually visualize the input and results in 3D. Is there any good tool or tutorial you may suggest? Ideally it can be some python packages.
INPUT:
unidock --receptor ./indata/def.pdbqt --ligand ./indata/def_unique_charged actives1.pdbqt --center_x -36.01 --center_y 25.63 --center_z 67.49 --size_x 22 --size_y 22 --size_z 22 --out ./result/ligand --exhaustiveness 128 --max_step 20 --num_modes 9 --scoring vina --refine_step 3 --seed 5 > ligand.log
OUTPUT:
Uni-Dock v0.1.0
If you used Uni-Dock in your work, please cite:
Yu, Y., Cai, C., Wang, J., Bo, Z., Zhu, Z., & Zheng, H. (2023).
Uni-Dock: GPU-Accelerated Docking Enables Ultralarge Virtual Screening.
Journal of Chemical Theory and Computation.
https://doi.org/10.1021/acs.jctc.2c01145
Tang, S., Chen, R., Lin, M., Lin, Q., Zhu, Y., Ding, J., ... & Wu, J. (2022).
Accelerating autodock vina with gpus. Molecules, 27(9), 3041.
DOI 10.3390/molecules27093041
J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli
AutoDock Vina 1.2.0: New Docking Methods, Expanded Force
Field, and Python Bindings, J. Chem. Inf. Model. (2021)
DOI 10.1021/acs.jcim.1c00203
O. Trott, A. J. Olson,
AutoDock Vina: improving the speed and accuracy of docking
with a new scoring function, efficient optimization and
multithreading, J. Comp. Chem. (2010)
DOI 10.1002/jcc.21334
Please refer to https://github.com/dptech-corp/Uni-Dock/ for
bug reporting, license agreements, and more information.
Scoring function : vina
Rigid receptor: ./indata/def.pdbqt
Ligands:
ERROR:
An error occurred: basic_string::_M_replace_aux.
Please report bugs through the Issue Tracker on GitHub
(https://github.com/dptech-corp/Uni-Dock/issues)., so
that this problem can be resolved. The reproducibility of the
error may be vital, so please remember to include the following in
your problem report:
Thank you!
Hello! Thanks a lot for sharing your work!
I am having trouble docking multiple ligands using the --gpu_batch
option. Here is the input command:
unidock --receptor receptor.pdbqt \
--gpu_batch id0.pdbqt id1.pdbqt id2.pdbqt \
--search_mode balance \
--scoring vina \
--center_x 27.8 \
--center_y 13.1 \
--center_z -47.62 \
--size_x 20 \
--size_y 20 \
--size_z 20 \
--num_modes 9 \
--dir unidock_results/ \
--seed 1
The output:
Uni-Dock v0.1.0
If you used Uni-Dock in your work, please cite:
Yu, Y., Cai, C., Wang, J., Bo, Z., Zhu, Z., & Zheng, H. (2023).
Uni-Dock: GPU-Accelerated Docking Enables Ultralarge Virtual Screening.
Journal of Chemical Theory and Computation.
https://doi.org/10.1021/acs.jctc.2c01145
Tang, S., Chen, R., Lin, M., Lin, Q., Zhu, Y., Ding, J., ... & Wu, J. (2022).
Accelerating autodock vina with gpus. Molecules, 27(9), 3041.
DOI 10.3390/molecules27093041
J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli
AutoDock Vina 1.2.0: New Docking Methods, Expanded Force
Field, and Python Bindings, J. Chem. Inf. Model. (2021)
DOI 10.1021/acs.jcim.1c00203
O. Trott, A. J. Olson,
AutoDock Vina: improving the speed and accuracy of docking
with a new scoring function, efficient optimization and
multithreading, J. Comp. Chem. (2010)
DOI 10.1002/jcc.21334
Please refer to https://github.com/dptech-corp/Uni-Dock/ for
bug reporting, license agreements, and more information.
Scoring function : vina
Rigid receptor: receptor.pdbqt
Grid center: X 27.8 Y 13.1 Z -47.62
Grid size : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 384
CPU: 0
Verbosity: 1
Computing Vina grid ... entering done
done.
exiting done
Total ligands: 3
Avaliable Memory = 7601MiB Total Memory = 9976MiB
Batch 1 size: 3
Performing docking (random seed: 1) ... Kernel running time: 0
entering done
exiting done
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #0
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #1
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #2
WARNING: Could not find any poses. No poses were written.
WARNING: Could not find any poses. No poses were written.
WARNING: Could not find any poses. No poses were written.
Batch 1 running time: 821ms
For all of the ligands specified above, the code seems to work fine for docking them one at a time using --ligand
option instead of --gpu_batch
. I am running the code on RTX 3080. Limiting the memory did not help either.
Do you know how I can solve this problem? Thanks a lot in advance!
Hi I have run unidock before using the run_dock.py script, it successfully ran. But it has not been running since after that. I have checked the path of unidock : /usr/local/unidock/unidock and checked path of receptor and ligands as well. It just stops at the following screen even for 4-5 ligands.
/usr/local/unidock/unidock --receptor ./test_files/2eh9.pdbqt --ligand_index def_ligands2.txt --center_x 4.48 --center_y -2.42 --center_z 2.14 --size_x 22 --size_y 22 --size_z 22 --dir ./result2/2eh9 --exhaustiveness 200 --max_step 40 --num_modes 10 --scoring vina --refine_step 3 --seed 5
The original system is Windows 10, and I get unidock in WSL2 of Ubuntu20.04.
The CUDA toolkit is installed(WSL version).
When running unidock, the GPU seems not to be working. But the CPU is hardly working with 100% load.
So, what's wrong with it?
I used latest released unidock on my 4090 gpu, and it successfully worked, but has an abnormal result in vina score about -100 in certain docking results (most results are normal).
MODEL 1
REMARK VINA RESULT: -108.179 0.000 0.000
using autodock vina, I can get normal results.
Grid center: X -26.346 Y -25.7025 Z 31.2255
Grid size : X 30 Y 30 Z 30
Grid space : 0.375
receptor pdbqt file: receptor.txt
ligand pdbqt file: ligand.txt
my unidock output pdbqt file: ligand_unidock_vina_out.txt
using autodock get a normal output file: ligand_autodock_vina_out.txt
No response
Using cmake build process, boost fails to download/build:
This command:
cd Uni-Dock-1.1.0/unidock
cmake -B build -D FETCH_BOOST=ON
produces:
CMake Error at /build/x86_64-linux/cmake/3.22.2/cmake_extlib/cmake-3.22.2-tvg7/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR system thread
serialization filesystem program_options timer) (Required is at least
version "1.72")
Call Stack (most recent call first):
/build/x86_64-linux/cmake/3.22.2/cmake_extlib/cmake-3.22.2-tvg7/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/build/x86_64-linux/cmake/3.22.2/cmake_extlib/cmake-3.22.2-tvg7/share/cmake-3.22/Modules/FindBoost.cmake:2375 (find_package_handle_standard_args)
CMakeLists.txt:42 (find_package)
No response
No response
No response
No response
Hi Uni-Dock team.
I'm working with some molecules for which carbon rings are broken to model them flexibly.
Apparently this results in large discrepancies in the computed favorability of the binding poses (and, resulting binding poses are not realistic). This might be fixed by upgrading Vina to 1.2.5
What is the most straightforward way to upgrade Vina in this fashion within Uni-Dock? Thanks!
There is a known Vinda scoring bug in the current undock (see: unexpected very negative affinity score ).
Here is an example:
MODEL 1
REMARK VINA RESULT: -357.833 0.000 0.000
REMARK INTER + INTRA: 18.065
REMARK INTER: -1.981
REMARK INTRA: 20.046
REMARK UNBOUND: 585.088
REMARK Name = ZINC00442390
REMARK SMILES COC(=O)c1c(NC(=O)c2cnccn2)sc2c1CCCCCC2
REMARK SMILES IDX 19 1 18 2 5 3 6 4 16 5 17 6 3 7 4 8 2 9 1 10 7 11 8 12 9 14
REMARK SMILES IDX 10 15 15 16 11 17 14 18 12 19 13 20 24 21 23 22 20 24 21 25
REMARK SMILES IDX 22 26
REMARK H PARENT 7 13
REMARK Flexibility Score: 90.00
ROOT
ATOM 1 C UNL 1 -9.305 79.565 84.302 1.00 0.00 0.037 C
ENDROOT
BRANCH 1 2
ATOM 2 C UNL 1 -9.015 79.737 82.811 1.00 0.00 -0.017 A
ATOM 3 C UNL 1 -7.638 79.554 82.338 1.00 0.00 0.098 A
ATOM 4 C UNL 1 -7.360 79.819 81.009 1.00 0.00 0.110 A
ATOM 5 S UNL 1 -8.899 80.300 80.380 1.00 0.00 -0.122 S
ATOM 6 C UNL 1 -9.877 80.111 81.848 1.00 0.00 0.011 A
BRANCH 3 7
ATOM 7 C UNL 1 -6.585 79.101 83.249 1.00 0.00 0.341 C
ATOM 8 O UNL 1 -6.847 78.310 84.136 1.00 0.00 -0.246 OA
BRANCH 7 9
ATOM 9 O UNL 1 -5.325 79.561 83.106 1.00 0.00 -0.465 OA
ATOM 10 C UNL 1 -4.376 79.221 84.151 1.00 0.00 0.282 C
ENDBRANCH 7 9
ENDBRANCH 3 7
BRANCH 4 11
ATOM 11 N UNL 1 -6.147 79.728 80.347 1.00 0.00 -0.311 N
ATOM 12 C UNL 1 -5.966 78.786 79.401 1.00 0.00 0.276 C
ATOM 13 H UNL 1 -5.429 80.343 80.563 1.00 0.00 0.171 HD
ATOM 14 O UNL 1 -6.866 78.015 79.129 1.00 0.00 -0.267 OA
BRANCH 12 15
ATOM 15 C UNL 1 -4.669 78.688 78.692 1.00 0.00 0.146 A
ATOM 16 N UNL 1 -3.530 78.842 79.361 1.00 0.00 -0.248 NA
ATOM 17 C UNL 1 -4.639 78.435 77.320 1.00 0.00 0.145 A
ATOM 18 C UNL 1 -2.378 78.755 78.727 1.00 0.00 0.132 A
ATOM 19 N UNL 1 -3.480 78.349 76.693 1.00 0.00 -0.261 NA
ATOM 20 C UNL 1 -2.351 78.503 77.363 1.00 0.00 0.131 A
ENDBRANCH 12 15
ENDBRANCH 4 11
BRANCH 6 21
ATOM 21 C UNL 1 -11.362 80.316 81.951 1.00 0.00 0.047 C
BRANCH 21 22
ATOM 22 C UNL 1 -12.033 79.154 81.196 1.00 0.00 0.006 CG0
ATOM 23 G UNL 1 -11.706 79.300 79.705 1.00 0.00 0.000 G0
ENDBRANCH 21 22
ENDBRANCH 6 21
ENDBRANCH 1 2
BRANCH 1 24
ATOM 24 C UNL 1 -8.815 78.225 84.837 1.00 0.00 0.005 C
BRANCH 24 25
ATOM 25 C UNL 1 -7.335 78.009 84.579 1.00 0.00 0.000 C
BRANCH 25 26
ATOM 26 C UNL 1 -6.437 78.534 85.679 1.00 0.00 0.000 CG0
ATOM 27 G UNL 1 -7.017 77.971 86.982 1.00 0.00 0.000 G0
ENDBRANCH 25 26
ENDBRANCH 24 25
ENDBRANCH 1 24
TORSDOF 4
ENDMDL
However, vina 1.2.5 gave another score for the same pose
AutoDock Vina v1.2.5
#################################################################
# If you used AutoDock Vina in your work, please cite: #
# #
# J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli #
# AutoDock Vina 1.2.0: New Docking Methods, Expanded Force #
# Field, and Python Bindings, J. Chem. Inf. Model. (2021) #
# DOI 10.1021/acs.jcim.1c00203 #
# #
# O. Trott, A. J. Olson, #
# AutoDock Vina: improving the speed and accuracy of docking #
# with a new scoring function, efficient optimization and #
# multithreading, J. Comp. Chem. (2010) #
# DOI 10.1002/jcc.21334 #
# #
# Please see https://github.com/ccsb-scripps/AutoDock-Vina for #
# more information. #
#################################################################
Scoring function : vina
Rigid receptor: 1udt_prot.pdbqt
Ligand: ZINC004423901.pdbqt
Grid center: X 1.548 Y 68.184 Z 83.831
Grid size : X 30 Y 30 Z 30
Grid space : 0.375
Exhaustiveness: 8
CPU: 0
Verbosity: 2
Computing Vina grid ... done.
Estimated Free Energy of Binding : -1.249 (kcal/mol) [=(1)+(2)+(3)-(4)]
(1) Final Intermolecular Energy : -1.980 (kcal/mol)
Ligand - Receptor : -1.980 (kcal/mol)
Ligand - Flex side chains : 0.000 (kcal/mol)
(2) Final Total Internal Energy : 20.086 (kcal/mol)
Ligand : 20.086 (kcal/mol)
Flex - Receptor : 0.000 (kcal/mol)
Flex - Flex side chains : 0.000 (kcal/mol)
(3) Torsional Free Energy : 0.730 (kcal/mol)
(4) Unbound System's Energy : 20.086 (kcal/mol)
No response
Here are the input files and running command (in run.sh):
CUDA: 12.0.0
GPU: T4
Version: v1.1.0
No response
how to use muti gpus or choice the gpu that i want to use?
how to dock a folder of pdbqt ligands into a pocket?
i have the receptor.pdbqt and the parameters already, but I don't know how to create index file for argument.
i created a ligand.txt file, containing the names of the ligands, but seems like it's not correct. it says: Error: could not open "./ligands.txt" for reading.
my command is unidock --receptor ./inin/protein.pdbqt --ligand_index ./ligands.txt --center_x -18.507 --center_y -2.424 --center_z -44.173 --size_x 20 --size_y 20 --size_z 12 --exhaustiveness 128 --max_step 20 --num_modes 9 --scoring vina --refine_step 3 --seed 5 --cpu 16 --dir ./results
Here is the docking setup and report:
GPU: RTX3090
CUDA Version: 11.7
Driver Version: 515.57
receptor = protein.pdbqt
gpu_batch = lig765.pdbqt
out = lig765_result.pdbqt
center_x = 87.603
center_y = 89.271
center_z = 128.509
size_x = 30
size_y = 30
size_z = 30
search_mode = fast
num_modes = 1
dir = .
Uni-Dock v0.1.0
If you used Uni-Dock in your work, please cite:
Yu, Y., Cai, C., Wang, J., Bo, Z., Zhu, Z., & Zheng, H. (2023).
Uni-Dock: GPU-Accelerated Docking Enables Ultralarge Virtual Screening.
Journal of Chemical Theory and Computation.
https://doi.org/10.1021/acs.jctc.2c01145
Tang, S., Chen, R., Lin, M., Lin, Q., Zhu, Y., Ding, J., ... & Wu, J. (2022).
Accelerating autodock vina with gpus. Molecules, 27(9), 3041.
DOI 10.3390/molecules27093041
J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli
AutoDock Vina 1.2.0: New Docking Methods, Expanded Force
Field, and Python Bindings, J. Chem. Inf. Model. (2021)
DOI 10.1021/acs.jcim.1c00203
O. Trott, A. J. Olson,
AutoDock Vina: improving the speed and accuracy of docking
with a new scoring function, efficient optimization and
multithreading, J. Comp. Chem. (2010)
DOI 10.1002/jcc.21334
Please refer to https://github.com/dptech-corp/Uni-Dock/ for
bug reporting, license agreements, and more information.
Scoring function : vina
Rigid receptor: protein.pdbqt
Grid center: X 87.603 Y 89.271 Z 128.509
Grid size : X 30 Y 30 Z 30
Grid space : 0.375
Exhaustiveness: 128
CPU: 0
Verbosity: 1
Computing Vina grid ... entering done
done.
exiting done
Total ligands: 1
Avaliable Memory = 24004MiB Total Memory = 24268MiB
Batch 1 size: 1
Performing docking (random seed: -782310420) ... Segmentation fault (core dumped)
pip install .
No response
No response
No response
No response
Hello
when running the following command :
[./build/unidock --paired_batch_size 10 --ligand_index ./example/paired_batch/paired_batch_config.json --size_x 25 --size_y 25 --size_z 25 --dir test/prof_1024 --exhaustiveness 1024 --max_step 60 --seed 5
]
I'm encountering the following problems:
Uni-Dock v1.1.1
Entering paired batch mode
Found 4 to be primed.
Filled 4 properties successfully.
Parameters: exh = 1024, box[0] = 25, max_eval_steps global = 60, num_modes = 9, refine_steps = 3
To do [0] batches
Batched output to test/prof_1024
Computing Vina grid ... Computing Vina grid ... Computing Vina grid ... Computing Vina grid ... done.
done.
done.
done.
Performing docking (random seed: 5) ... Performing docking (random seed: 5) ... Performing docking (random seed: 5) ... Performing docking (random seed: 5) ... Kernel running time: 1
WARNING: Could not find any conformations completely within the search space.
WARNING: Check that it is large enough for all movable atoms, including those in the flexible side chains.
WARNING: Or could not successfully parse PDBQT input file of ligand #0
WARNING: Could not find any poses. No poses were written.
Segmentation fault (core dumped)
My test environment is:
Driver Version: 525.105.17 CUDA Version: 12.0 GPU:Tesla P100-PCIE-16GB BOOST: boost_1_84_0
If you know why, can you tell me how to fix it? Thanks.
My ligands.index have some records, but when I run the command
"./unidock --receptor Uni-Dock/example/screening_test/indata/def.pdbqt --ligand_index def_ligands.index --center_x -36.01 --center_y 25.63 --center_z 67.49 --size_x 17.20 --size_y 14.38 --size_z 12.24 --scoring vinardo --refine_step 3 --num_modes 1 --seed 5 --search_mode fast --dir results/def-fast "
Then will have some erros “ERROR:Empty ligland list”
Could Uni-Dock parse an SDF ligand file containing multiple ligands?
Thank you.
Bug at
It should be args.ligand_index
not args.index
.
Leading to error:
Traceback (most recent call last):
File "/home/gridsan/ywang3/.conda/envs/unidock/bin/Unidock", line 33, in <module>
sys.exit(load_entry_point('unidock-tools==1.1.2', 'console_scripts', 'Unidock')())
File "/home/gridsan/ywang3/.conda/envs/unidock/lib/python3.9/site-packages/unidock_tools-1.1.2-py3.9.egg/unidock_tools/unidock.py", line 309, in main
if args.receptor is None or (args.ligand is None and args.batch is None and args.gpu_batch is None and args.index is None):
AttributeError: 'Namespace' object has no attribute 'index'
"git clone https://github.com/dptech-corp/Uni-Dock.git
cd Uni-Dock/example/screening_test"
it is cd Uni-Dock/unidock/example/screening_test
No response
No response
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.