Package: dockstring
dockstringA 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, seeour paperand ourwebsite:García-Ortegón, Miguel, et al. "DOCKSTRING: easy molecular docking yields better benchmarks for ligand design." Journal of Chemical Information and Modeling (2021).InstallationSupported platforms:This package is primarily intended for Linux, but we have some support for Mac.
Please note that the scores from the Mac version do not always perfectly match the Linux version,
so we encourage the use of the Linux version whenever possible.Package versions:When installing dockstring, please be mindful of which package versions you install.
The dockstring dataset was created using:rdkit=2021.03.3openbabel=3.1.1python=3.7.10If you want to reproduce the calculations of the dockstring dataset exactly
(or calculate docking scores completely consistent with the dataset)
then ideally install these versions of the packages above.
However, python 3.7 has reached end of life, so we have tested higher versions of the packages:
It appears thatpython<=3.10, openbabel=3.1.1, rdkit<=2022.03will also work.
Ultimately we just suggest being mindful of which version you install,
and test whether it matches the dataset values after installation (instructions on this below).
If in doubt, use ourenvironment.ymlfile.
Note that if you do not care about consistency with our pre-computed dataset then any package version is ok.Installation instructions:Dockstring is on PyPI and can be installed into an existing environment by running:python3-mpipinstalldockstringAlternatively, install from this repository directly:Clone this repository.Choose whether to install into an existing environment or create a new environment.To install into a new environment, run:condaenvcreate-fenvironment.yml
condaactivatedockstringTo install into an existing environment, simply install the desired versions ofopenbabelandrdkit.Install the dockstring package withpipfrom this repository:pipinstall.Check whether the installation was successful by running a test script.
Running without error inducates a successful install.pythontutorials/simple_example.py(optional)InstallPyMolfor target, search box and ligand visualization:condainstall-cconda-forgepymol-open-source(optional)Check whether your local version of dockstring matches the dockstring dataset.
This is only necessary if you plan to mix pre-computed docking scores from the dockstring dataset
with locally-computed scores, or if you want to compare results with the dockstring paper.We have created apytesttest which randomly docksNmolecules from the dockstring dataset
and checks whether they match. The value ofNcan be changed by setting the environment variablenum_dockstring_test_molecules. We recommend starting withN=50, then progressing toN=1000to do a full test. The test can be run with the following commands:condainstall-cconda-forgepytest# only if not installed alreadynum_dockstring_test_molecules=1000python-mpytesttests/test_dataset_matching.py# change "1000" to the number you wish to dockIf the test passes then your local version of docktring matches the dataset exactly! 🥳
If the test does not pass, we encourage you to look how the error rate (this will be displayed in the error messages).
If 99%+ of scores match then it is probably ok to use dockstring in the benchmarks, but there will of course be some error
and this should be noted.If this method of installation does not work for you, please raise a github issue and we will try to help.TutorialsSee dockstring's basic usagehere.Learn how to visualize docking poseshereSeeour websitefor linkks to tutorials for
our dataset and benchmarks.DevelopmentWe usepre-committo enforce code formatting and style.
Install by running:condainstall-cconda-forgepre-commit
pre-commitinstallWe usepytestto test our code.
You can install pytest by runningconda install -c conda-forge pytest.
Before committing, please run the following to make sure that all tests pass:python-mpytesttests/Alternatively, to skip a variety of slow tests, run:python-mpytest-m"not slow"tests/CitationIf 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}}