Giter VIP home page Giter VIP logo

uni-dock's People

Contributors

baixiaokuang avatar caic99 avatar dp-yuanyn avatar envidian avatar hong-rui avatar hypnopump avatar lucifer1004 avatar pkuyyj avatar prabindh avatar ur-free avatar wzf03 avatar xiaohuang-6 avatar ynyuan avatar ysyecust avatar zhengh96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uni-dock's Issues

SDF files fail to run using Ligand Index

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!

Same ligands, same protein PDBQTs - Only fast mode is working

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

can

can uni-dock generate 3d model for ligand using a 2d structure ?

Please specify what the maximum number of ligand torsions is in the documentation.

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!

OOM using ad4 scoring function

Describe the bug

I tried to run unidock on nearly 18000 ligands using ad4 scoring, then OOM error:
img_v3_029h_ccf6f2aa-79a5-4bdf-bf13-61c45b21bc2g

Expected behavior

No response

To Reproduce

input_file

Environment

No response

Additional Context

No response

installation

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 .

  1. Cloned from github repo but when I tried to execute cmake command, i got an error saying no folder build found. I want to know if I am missing something here.
  2. I tried to use conda to install Uni-dock using "conda install -c https://conda.mlops.dp.tech/caic -c conda-forge unidock" but again got an error "_conda.core.prefix_data:load_single_record(216): Ignoring malformed prefix record at: home/miniconda3/conda-meta/unidock-1.0.0-5_5.json"
  3. Then i tried downloading "unidock-1.0.0-5_5.tar.bz2" file and run "conda install -c conda-forge unidock-1.0.0-5_5.tar.bz2" command. the command ran without errors but when I try to execute "unidock --help", I get an error unknown command.

I am new to this. So, it will be great if someone can help. thanks!

Uni-Dock seems unable to run on multiple GPUs

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.

Compiling error on CUDA 11

Describe the bug

Compiling fails when using the default CMake config using CUDA 11.2:

nvcc fatal   : Unsupported gpu architecture 'compute_90'

I suggest commenting out

for backward compatibility.

Expected behavior

No response

To Reproduce

No response

Environment

No response

Additional Context

No response

[Feature Request] Native Support for PDB Format Proteins as Receptor Input

[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.

Save scoring components as SD data

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

CUDA Runtime Error when running Uni-Dock

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!

Unable to dock

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

Can't find mgltools properly

Hi,

Based on code here:

def pdb2pdbqt(self, protein_path:str, output_path:str, active_name_env: str = "mgltools") -> None:
""" Locates mgltools and converts the pdb receptor file to pdbqt format"""
conda_bin_env = shutil.which("conda")
if not conda_bin_env:
raise KeyError("Conda env not found, please install conda first.")
conda_env = str(os.path.dirname(os.path.dirname(conda_bin_env)))
mgl_env_path = Path(conda_env) / "envs" / active_name_env
env_not_found = False
if not mgl_env_path.exists():
env_not_found = True
# in case not the default name, find it
result = subprocess.run(["conda", "info", "--envs"], capture_output=True, text=True)
for line in result.stdout.strip().split("\n"):
if "*" in set(line.split("")):
mgl_env_path = Path(line.split()[-1])
if mgl_env_path.exists():
env_not_found = False
break

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.

CUDA error - not sure of solution

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

MCDock Run Rigid Docking with Incorrect Input SDF Files

Describe the bug

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.

Expected behavior

No response

To Reproduce

No response

Environment

No response

Additional Context

No response

License

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!

Compatibility issues with rocky 8.5

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

Request for Detailed Explanation on Biased Docking

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.

## Use ligands structure as bias
`Unidock --receptor receptor.pdbqt --gpu_batch ligand1.sdf ligand2.sdf --reference ref1.sdf ref2.sdf --scoring gnina --center_x 9 --center_y -5 --center_z -5 --size_x 20 --size_y 20 --size_z 20 --search_mode balance --dir . `

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.

Segmentation Fault - Core Dumped

I have been trying to run Unidock for 10 ligands at once. Where receptor and ligand is in pdbqt format and conf file is also made.
here i am putting the CLI and error facing, kept run on gpu.


Screenshot from 2023-08-26 15-39-32

here is conf.txt
Screenshot from 2023-08-26 15-39-57

GPU
Screenshot from 2023-08-26 15-45-58

Kindly resolve it asap.

Error: could not open "" for reading.

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.

Common bias support

unidock.config.append("--multi_bias")

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.

Could ligand preparation be accelerated, e.g. using multiprocessing, when drug library is huge?

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

How to visualize

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.

An error occurred: basic_string::_M_replace_aux.

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:

  • ./indata/def_unique_charged
  • actives1.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: 128
    CPU: 0
    Verbosity: 1

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:

  • the EXACT error message,
  • your version of the program,
  • the type of computer system you are running it on,
  • all command line options,
  • configuration file (if used),
  • ligand file as PDBQT,
  • receptor file as PDBQT,
  • flexible side chains file as PDBQT (if used),
  • output file as PDBQT (if any),
  • input (if possible),
  • random seed the program used (this is printed when the program starts).

Thank you!

Cannot dock molecules using `--gpu_batch`

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!

Unidock seems to be not progressing.

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.

image

/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

Unable to run unidock in WSL2

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?

Error in vina score

Describe the bug

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

Expected behavior

using autodock vina, I can get normal results.

To Reproduce

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

Environment

  • CUDA 12.3
  • unidock 1.1.0

Additional Context

No response

cmake -B build -D FETCH_BOOST=ON does not fetch boost

Describe the bug

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)

Expected behavior

No response

To Reproduce

No response

Environment

No response

Additional Context

No response

Working with macrocycles / G atoms

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!

ccsb-scripps/AutoDock-Vina#200

unexpected very negative affinity score

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)

How to dock

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

Fail to run docking

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)

WARNING: Could not find any conformations

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.

ERROR:Empty ligland list

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”

[BUG] wrong attributes

Bug at

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):

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'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.