/dockstring

A Python package for molecular docking with an extensive, highly-curated dataset and a set of realistic benchmark tasks for drug discovery.

Primary LanguagePythonApache License 2.0Apache-2.0

dockstring

CI Tests Code Style: yapf

A Python package for easy molecular docking and docking benchmarking. We can dock molecules in a few lines of code from just a SMILES string! For details, see our paper and our website:

García-Ortegón, Miguel, et al. "DOCKSTRING: easy molecular docking yields better benchmarks for ligand design." Journal of Chemical Information and Modeling (2021).

Installation

To ensure compatibility with the dockstring dataset, the package has very strict versioning requirements for its main dependencies (rdkit and openbabel). As such, we recommend you install it in the following way.

  1. Clone this repository.
  2. Choose whether to install into an existing environment or create a new environment.
    • To install into an existing environment, install the correct version of openbabel and rdkit:
      conda install -c conda-forge rdkit=2021.03.3 openbabel=3.1.1
    • To install into a new environment, run:
      conda env create -f environment.yml
      conda activate dockstring
  3. Install the dockstring package with pip from this repository:
    pip install .
  4. Check whether the installation was successful by running a test script. Running without error inducates a successful install.
    python tutorials/simple_example.py

If this method of installation does not work for you, please raise a github issue and we will try to help.

Optional

Install PyMol for target, search box and ligand visualization:

conda install -c conda-forge pymol-open-source 

Tutorials

  • See dockstring's basic usage here.
  • Learn how to visualize docking poses here

See our website for linkks to tutorials for our dataset and benchmarks.

Development

We use pre-commit to enforce code formatting and style. Install by running:

conda install -c conda-forge pre-commit
pre-commit install

We use pytest to test our code. You can install pytest by running conda install -c conda-forge pytest. Before committing, please run the following to make sure that all tests pass:

python -m pytest tests/

Alternatively, to skip a variety of slow tests, run:

python -m pytest -m "not slow" tests/

Citation

If you use the dockstring package/dataset/benchmark in your work, please use the following citation:

@article{garciaortegon2022dockstring,
    author = {García-Ortegón, Miguel and Simm, Gregor N. C. and Tripp, Austin J. and Hernández-Lobato, José Miguel and Bender, Andreas and Bacallado, Sergio},
    title = {DOCKSTRING: Easy Molecular Docking Yields Better Benchmarks for Ligand Design},
    journal = {Journal of Chemical Information and Modeling},
    volume = {62},
    number = {15},
    pages = {3486-3502},
    year = {2022},
    doi = {10.1021/acs.jcim.1c01334},
    URL = {https://doi.org/10.1021/acs.jcim.1c01334}
}