The VOID: Voronoi Organic-Inorganic Docker package (VOID
) is a software designed to create conformations of molecules docked inside crystal structures. The package provides a library and scripts that include:
- Sampling of the space using Voronoi diagrams
- Geometrical fitness functions
- Batched docking using tensorial operations
- Monte Carlo docking
This software requires the following packages:
conda upgrade conda
conda create --name VOID python=3.6.8 cython=0.29.5
You need to activate the VOID
environment to install the dependencies for the VOID
package and the package itself:
conda activate VOID
Zeo++ and its interface to pymatgen are required to use the Voronoi sampler. The following instructions for their installation are based off the original instructions at the pymatgen documentation.
The original code retrieval with svn checkout –username anonsvn https://code.lbl.gov/svn/voro/trunk
(password anonsvn) no longer works. Instead, we suggest using these mirrors for Voro++ and Zeo++:
git clone https://github.com/chr1shr/voro.git
git clone https://github.com/richardjgowers/zeoplusplus.git
Please note that there may be differences between the Zeo++ code in the Github repository and the stable version available for download in this link.
After retrieving the code, make the following edits to the Makefiles and config.mk files to point the code towards the correct directory paths (reading all the Makefiles and config.mk files in both packages is highly recommended for understanding of the installation process).
Add -fPIC
to CFLAGS in config.mk
in the Voro++ directory. Also, if you do not have permissions to access the default PREFIX
path, change it to your desired directory.
Run these commands:
make
make install
You should notice the creation of several folders in the PREFIX
directory you specified earlier. Edit the Makefile in the Zeo++ directory to include the correct paths in VOROINCLDIR
and VOROLINKDIR
.
Run make dylib
within the Zeo++ directory.
Navigate to cython_wrapper/
in the Zeo++ directory and edit setup_alt.py
to point the variables includedirs
and libdirs
to the correct Voro++ directory. Run python setup_alt.py develop
to install Zeo++ python bindings.
If you have problems compiling this library, please try contacting the Zeo++ developers. We do not offer support for compilation of Zeo++, Voro++ or other dependencies.
Finally, install the VOID
package by navigating to the VOID directory and running:
pip install .
The simplest way to use the VOID
package is to use the premade script dock.py
(in the scripts
) folder. As an example, we provide a molecule and a zeolite in VOID/tests/files. With VOID
installed, you can dock the molecule to the zeolite using the following command:
dock.py VOID/tests/files/{AFI.cif,molecule.xyz} -o ~/Desktop/docked -d batch -s voronoi_cluster -f min_distance
This will dock the molecule contained in molecule.xyz
to the zeolite in AFI.cif
using the batch docker, Voronoi sampler with predefined number of clusters and a fitness function that considers the minimum distance between the host and the guest. All output files are saved in the folder ~/Desktop/docked
. All input files for crystals and molecules supported by pymatgen can be given as inputs, including xyz, Gaussian inputs and outputs for molecules and CIF, VASP inputs and outputs, CSSR and others for crystals.
For more information on the dockers, samplers and fitness functions available, run dock.py --help
. Help on further commands are available once the choice of dockers, samplers and fitness functions are made, e.g. dock.py -d batch -s voronoi_cluster -f min_distance --help
.
Further examples can be seen in the examples folder.
The nomenclature of the variables in this software follows (mostly) the traditional molecular docking terminology
The publication describing the algorithm and the software is the following:
D. Schwalbe-Koda and R. Gómez-Bombarelli. J. Phys. Chem. C 125 (5), 3009–3017 (2021). DOI 10.1021/acs.jpcc.0c10108
If you use this software, please cite the paper above. The bibtex for the citation is the following:
@article{schwalbe2021supramolecular,
title={Supramolecular recognition in crystalline nanocavities through Monte Carlo and Voronoi network algorithms},
author={Schwalbe-Koda, Daniel and G{\'o}mez-Bombarelli, Rafael},
journal={The Journal of Physical Chemistry C},
volume={125},
number={5},
pages={3009--3017},
year={2021},
publisher={ACS Publications}
}