https://github.com/bytedance/protenix-dock

An accurate and trainable end-to-end protein-ligand docking framework

https://github.com/bytedance/protenix-dock

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

molecular-docking research
Last synced: 10 months ago · JSON representation

Repository

An accurate and trainable end-to-end protein-ligand docking framework

Basic Info
  • Host: GitHub
  • Owner: bytedance
  • License: gpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 6.32 MB
Statistics
  • Stars: 71
  • Watchers: 6
  • Forks: 7
  • Open Issues: 4
  • Releases: 0
Topics
molecular-docking research
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct

README.md

Protenix-Dock

This repository hosts the source code for our work "Protenix-Dock: An accurate and trainable end-to-end protein-ligand docking framework using empirical scoring functions".

For more information about the implementation and the performance of Protenix-Dock, see our technical report.

🔍 Protenix-Dock is a classical protein-ligand docking method designed for rigid docking tasks. For our deep learning complex structure prediction model, see Protenix.

Features

✨ Advanced docking conformation sampling.

✨ Accurate and interpretable scoring functions incorporating force field and empirical terms.

✨ Independent scoring functions for geometry minimization, pose selection and affinity ranking.

✨ Easy-to-use Python API and command-line tools.

Work in progress

🚧 Affinity-ranking score checkpoint and screening power evaluation result.

🚧 Traninig code.

Installation

1. Create a conda environment:

To minimize environment setup cost, it is recommended to create an Conda environment.

```bash git clone https://github.com/bytedance/Protenix-Dock.git cd protenix-dock

sudo apt-get update && sudo apt-get install -y libxrender1 libxext6 conda env create -f environment.yml ```

2. Install the Python package:

For better compatibility between packages, it is safe to install Protenix-Dock from source.

bash python3 setup.py install

If your CPU is equiped with AVX2 instructions, you can build a faster one. bash export PXDOCK_ENABLE_AVX2=1 python3 setup.py install

3. Install command-line tools (Optional):

If receptors & ligands are already prepared and only docking/optimizatioin/evaluation is required, you can install command-lines tools from source.

```bash pushd engine

mkdir build cd build

destdir=~/pxdock cmake .. \ -DCMAKEBUILDTYPE=Release \ -DCMAKEINSTALLPREFIX=$destdir \ -DBDOCK_AVX2=OFF # If your CPU supports AVX2, turn on it for better speed make -j8 install

confdir=$destdir/conf mkdir $confdir cp ../../pxdock/data/pscore-v7andbscore-fake.json $confdir

popd ```

Docking

Usage

Run with Python (recommended):

```python from pxdock import ProtenixDock receptorpdb = "path/to/receptor.pdb" ligandsdf = "path/to/ligand.sdf"

boxcenter = [0., 0., 0.] # box center for receptor boxsize = [10., 10., 10.] # box size for receptor dockinstance = ProtenixDock(receptorpdb) dockinstance.setbox(boxcenter, boxsize)

Optional: you can generate cache maps for receptor, and then you can load it for next docking.

In our tests, setting this parameter to 0.175 can achieve a balance between effect and performance.

outdir = dockinstance.generatecachemaps(spacing=0.175)

and in next run:

dockinstance.loadcachemaps(outdir)

the dockingresfiles is in json format.

dockingresfiles = dockinstance.rundocking(ligand_sdf) ```

Run tests

```bash

In these tests, we set the spacing to 0.5 in order to quickly complete the functional test.

cd test

performing preare ligand, receptor and docking separately.

python3 testdataprepare.py

run docking or pose_opt by ProtenixDock class.

python3 testprotenixdock.py

calculate pose rmsd.

python3 test_rmsd.py ```

Contribution

Please check Contributing for more details. If you encounter problems using Protenix—Dock, feel free to create an issue! We also welcome pull requests from the community.

Code of Conduct

Please check Code of Conduct for more details.

Security

If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our security center or vulnerability reporting email.

Please do not create a public GitHub issue.

License

The Protenix-Dock project is made available under the GPLv3 License

Portions of the source code are based on the Meeko and posebusters project.

Portions of the SMARTS patterns used in Protenix-Dock are derived from the ProLIF and OpenFF project.

Contact

We welcome inquiries and collaboration opportunities for advanced applications of our framework, such as developing new features and more. Please feel free to contact us at ai4s-bio@bytedance.com.

Owner

  • Name: Bytedance Inc.
  • Login: bytedance
  • Kind: organization
  • Location: Singapore

GitHub Events

Total
  • Issues event: 19
  • Watch event: 97
  • Member event: 1
  • Issue comment event: 15
  • Push event: 7
  • Public event: 1
  • Pull request event: 7
  • Fork event: 11
Last Year
  • Issues event: 19
  • Watch event: 97
  • Member event: 1
  • Issue comment event: 15
  • Push event: 7
  • Public event: 1
  • Pull request event: 7
  • Fork event: 11

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 13
  • Total pull requests: 5
  • Average time to close issues: 8 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 9
  • Total pull request authors: 1
  • Average comments per issue: 0.92
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 5
  • Average time to close issues: 8 days
  • Average time to close pull requests: 2 days
  • Issue authors: 9
  • Pull request authors: 1
  • Average comments per issue: 0.92
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sky1ove (4)
  • Bruce410526 (2)
  • Jason-Han-Hu (1)
  • JUrban64 (1)
  • Furaxixi (1)
  • zengdashi (1)
  • Amshoreline (1)
  • rongfengzou (1)
  • CLG68 (1)
Pull Request Authors
  • thalahors (5)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • MDAnalysis *
  • PyYaml *
  • func-timeout *
  • meeko *
  • pandas >=1.3.5
  • parmed *
  • pdb2pqr *
  • pdb4amber *
  • pytest *
  • tos >=2.6.0
setup.py pypi
environment.yml conda
  • ambertools 23.*
  • boost 1.82.*
  • cmake
  • curl
  • numpy
  • openssl
  • pandas
  • pip
  • python >=3.9,<3.12
  • sphinx
  • sphinx_rtd_theme
  • swig