dptech-corp / Uni-Dock

Uni-Dock: a GPU-accelerated molecular docking program
188 stars 40 forks source link

Cannot dock molecules using `--gpu_batch` #8

Closed eereenah-fast closed 1 year ago

eereenah-fast commented 1 year ago

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!

pkuyyj commented 1 year ago

Please try using --exhaustiveness and --max_step and the log you provided is basically normal except Exhaustiveness: 8, which might be caused by option settings?

caic99 commented 1 year ago

Hi @eereenah-fast , I've tried your input command, and the Exhaustiveness is 384, which is the correct value for balance mode. Would you check your input and try again? Thanks.

eereenah-fast commented 1 year ago

My bad, had the wrong input-output combination, apologies for this. I edited the comment and added the correct output. The command does not work with low exhaustiveness setting either (docking a single ligand still works fine).