Skip to content
This repository has been archived by the owner on Mar 3, 2024. It is now read-only.

Update Readme Files #41

Merged
merged 8 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Even better, you can submit a Pull Request with a patch.
## Feature requests

We highly appreciate your contributions, and would like to help you crafting the changes and making contributions to the community.
If you would like to implement a new feature, please **submit a feature requesting issue with a proposal for your work first**.
If you would like to implement a new feature, please **submit a feature requesting issue with a proposal for your work first**.
This help fitting your ideas and work with the development road map well, coordinating our efforts, and avoiding duplication of work.

## Submitting a Pull Request
Expand All @@ -35,7 +35,7 @@ This help fitting your ideas and work with the development road map well, coordi
```

5. On GitHub, create a pull request (PR) from your bug-fix branch targeting `dptech-corp/Uni-Dock`.

6. After your pull request is merged, you can safely delete your branch and sync the changes from the main (upstream) repository:

- Delete the remote branch on GitHub either [through the GitHub web UI](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/deleting-and-restoring-branches-in-a-pull-request#deleting-a-branch-used-for-a-pull-request) or your local shell as follows:
Expand Down
31 changes: 7 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,26 @@
<picture><source media="(prefers-color-scheme: dark)" srcset="./unidock/assets/logo-dark.svg"><source media="(prefers-color-scheme: light)" srcset="./unidock/assets/logo.svg"><img alt="Uni-Dock logo" src="./unidock/assets/logo.svg"></picture>

[![DeepModeling](https://img.shields.io/badge/DeepModeling-Incubating_Project-blue)](https://github.com/deepmodeling)
## Introduction

**Uni-Dock** is a GPU-accelerated molecular docking program developed by DP Technology.
It supports various scoring functions including vina, vinardo, and ad4. Uni-Dock achieves more than 1000-fold speed-up on V100 GPU with high-accuracy compared with the AutoDock Vina running in single CPU core.
The [paper](https://pubs.acs.org/doi/10.1021/acs.jctc.2c01145) has been accepted by JCTC (doi: 10.1021/acs.jctc.2c01145).

![Runtime performance of Uni-Dock on different GPUs in three modes](./unidock/assets/gpu_speeds.png)
**Uni-Dock** joins the DeepModeling community, a community devoted of AI for science, as an incubating level project. [Learn more about DeepModeling](https://github.com/deepmodeling/community)

Check this [subfolder](./unidock/) for instructions on installing Uni-Dock.
![Runtime performance of Uni-Dock on different GPUs in three modes](./unidock/assets/gpu_speeds.png)

**Uni-Dock** joins the DeepModeling community, a community devoted of AI for science, as an incubating level project. To learn more about the DeepModeling community, see the [introduction of community](https://github.com/deepmodeling/community).
## UniDockTools
Please check [`unidock` folder](./unidock/) for installing instructions, source codes, and usage.

**UniDockTools** is a python package developed to handle the inputs and outputs of Uni-Dock.
In the future, UniDockTools will support more input formats and scoring functions. We hope it could be an easy-to-use virtual screening workflow for all users.
**Uni-Dock Tools** is a Python package developed to handle the inputs and outputs of Uni-Dock.
It is committed to support more input formats and scoring functions. We hope it could be an easy-to-use virtual screening workflow for users with diversed backgrounds.

Check this [subfolder](./unidock_tools/) for more details.
Please check [`unidock_tools` folder](./unidock_tools/) for installing instructions, source codes, and usage.

## Changelog

- 2023-08-21: Upload source codes of Uni-Dock.
- 2023-08-14: Add unidock_tools to support SDF format input for vina and vinardo scoring functions.
- 2023-08-14: Add Uni-Dock Tools to support SDF format input for vina and vinardo scoring functions.

## Citation

Expand All @@ -34,18 +32,3 @@ 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
44 changes: 27 additions & 17 deletions unidock/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,6 @@ The [paper](https://pubs.acs.org/doi/10.1021/acs.jctc.2c01145) has been accepted

![Runtime performance of Uni-Dock on different GPUs in three modes](assets/gpu_speeds.png)

## Changelog

- 2023-08-14: Add `unidock_tools` to support SDF format input for vina and vinardo scoring functions.

## License

This project is licensed under the terms of the GNU Lesser General Public License v3.0. See [LICENSE](./LICENSE) for details.

Developed by [DP Technology](https://dp.tech/en), [Hermite®](https://dp.tech/en/product/hermite) is a new-generation drug computing design platform which integrates artificial intelligence, physical modeling and high-performance computing to provide a one-stop computing solution for preclinical drug research and development. It integrates the features of Uni-Dock, along with virtual screening workflow for an efficient drug discovery process.

Uni-Dock is now available on the new-generation drug computing design platform [Hermite®](https://dp.tech/en/product/hermite) for ultralarge virtual screening.

For further cooperations on developing Uni-Dock and trying out Hermite®, please contact us at <[email protected]> .

## Installation

Uni-Dock officially supports NVIDIA GPUs with [compute capability](https://en.wikipedia.org/wiki/CUDA#GPUs_supported) >= 7.0 on Linux platform.
Expand Down Expand Up @@ -57,7 +43,7 @@ The performance is not guaranteed on legacy GPU models. To build Uni-Dock with a
# Otherwise, prepend the building directory to your `PATH` environment variable.
```

code foramt
To format codes if changes are made:

```shell
cd ./build/
Expand Down Expand Up @@ -195,9 +181,33 @@ python run_dock.py

If you want to use search mode presets, specify the parameter `search_mode` in `config.json` and delete `nt` and `ns` in `config.json`.

## Bug Report
## Contributing

We warmly welcome contributions from the open source community. Your bug reports, feature requests, and pull requests helps Uni-Dock improve.

Please submit bug reports and feature requests to the Github [issue tracker](https://github.com/dptech-corp/Uni-Dock/issues/new/choose).

Please report bugs to [Issues](https://github.com/dptech-corp/Uni-Dock/issues) page.
If you would like to improve the codes, please refer to the [contributing guide](../.github/CONTRIBUTING.md) for details.

## Changelog

Major changes are documented. For the detailed changes, please refer to the commit history.

### v1.1

- Optimize 1:1 ligand docking.
- Optimize Monte-Carlo simulation speed.
- Generate compute kernels for various ligands sizes.

## License

This project is licensed under the terms of the GNU Lesser General Public License v3.0. See [LICENSE](./LICENSE) for details.

Developed by [DP Technology](https://dp.tech/en), [Hermite®](https://dp.tech/en/product/hermite) is a new-generation drug computing design platform which integrates artificial intelligence, physical modeling and high-performance computing to provide a one-stop computing solution for preclinical drug research and development. It integrates the features of Uni-Dock, along with virtual screening workflow for an efficient drug discovery process.

Uni-Dock is now available on the new-generation drug computing design platform [Hermite®](https://dp.tech/en/product/hermite) for ultralarge virtual screening.

For further cooperations on developing Uni-Dock and trying out Hermite®, please contact us at <[email protected]> .

## Ackowledgement

Expand Down
4 changes: 2 additions & 2 deletions unidock_tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Main features are:

## Dependency

- Uni-Dock
- [Uni-Dock](../unidock/README.md#installation)
- Python >= 3.6
- RDKit
- networkx
Expand Down Expand Up @@ -92,4 +92,4 @@ See [MCDock Usage](./MCDOCK.md#usage)

# License

This project is licensed under the terms of Apache license 2.0. See [LICENSE](./LICENSE) for additional details.
This project is licensed under the terms of Apache license 2.0. See [LICENSE](./LICENSE) for additional details.
4 changes: 2 additions & 2 deletions unidock_tools/tests/applications/test_ligprep.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def input_ligand():

def test_ligprep_app_ligand_file(input_ligand):
results_dir = "prepared_ligands"
cmd = f"unidocktools ligprep -l {input_ligand} -sd {results_dir}"
cmd = f"unidocktools ligandprep -l {input_ligand} -sd {results_dir}"
print(cmd)
resp = subprocess.run(cmd, shell=True, capture_output=True, encoding="utf-8")
print(resp.stdout)
Expand All @@ -25,7 +25,7 @@ def test_ligprep_app_ligand_index(input_ligand):
with open(index_file, "w") as f:
f.write(input_ligand)
results_dir = "prepared_ligands"
cmd = f"unidocktools ligprep -i {index_file} -sd {results_dir}"
cmd = f"unidocktools ligandprep -i {index_file} -sd {results_dir}"
print(cmd)
resp = subprocess.run(cmd, shell=True, capture_output=True, encoding="utf-8")
print(resp.stdout)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ def pdb_file():

def test_pdb2pdbqt_app(pdb_file):
pdbqt_file = "protein.pdbqt"
cmd = f"unidocktools pdb2pdbqt -r {pdb_file} -o {pdbqt_file}"
cmd = f"unidocktools proteinprep -r {pdb_file} -o {pdbqt_file}"
print(cmd)
resp = subprocess.run(cmd, shell=True, capture_output=True, encoding="utf-8")
print(resp.stdout)
assert resp.returncode==0, f"run pdb2pdbqt app err:\n{resp.stderr}"
assert resp.returncode==0, f"run proteinprep app err:\n{resp.stderr}"
Path(pdbqt_file).unlink(missing_ok=True)
6 changes: 3 additions & 3 deletions unidock_tools/tests/applications/test_unidock.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def read_scores(sdf_file, score_name):

def test_unidock_pipeline_default(receptor, ligand, pocket):
results_dir = "unidock_results"
cmd = f"unidocktools unidock -r {receptor} -l {ligand} -sd {results_dir} \
cmd = f"unidocktools unidock_pipeline -r {receptor} -l {ligand} -sd {results_dir} \
-cx {pocket[0]} -cy {pocket[1]} -cz {pocket[2]} -sx {pocket[3]} -sy {pocket[4]} -sz {pocket[5]} \
-sf vina -nm 1"
print(cmd)
Expand All @@ -55,7 +55,7 @@ def test_unidock_pipeline_ligand_index(receptor, ligand, pocket):
with open(index_file, "w") as f:
f.write(str(ligand))
results_dir = "unidock_results_input_index"
cmd = f"unidocktools unidock -r {receptor} -i {index_file} -sd {results_dir} \
cmd = f"unidocktools unidock_pipeline -r {receptor} -i {index_file} -sd {results_dir} \
-cx {pocket[0]} -cy {pocket[1]} -cz {pocket[2]} -sx {pocket[3]} -sy {pocket[4]} -sz {pocket[5]} \
-sf vina -nm 1"
print(cmd)
Expand Down Expand Up @@ -95,7 +95,7 @@ def test_unidock_pipeline_ligand_index(receptor, ligand, pocket):

def test_unidock_pipeline_multi_pose(receptor, ligand, pocket):
results_dir = "unidock_results_multi_pose"
cmd = f"unidocktools unidock -r {receptor} -l {ligand} -sd {results_dir} \
cmd = f"unidocktools unidock_pipeline -r {receptor} -l {ligand} -sd {results_dir} \
-cx {pocket[0]} -cy {pocket[1]} -cz {pocket[2]} -sx {pocket[3]} -sy {pocket[4]} -sz {pocket[5]} \
-sf vina -nm 4"
print(cmd)
Expand Down