Skip to content

Library to dock molecules in crystal structures, including nanoporous materials

License

Notifications You must be signed in to change notification settings

learningmatter-mit/VOID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VOID: Voronoi Organic-Inorganic Docker

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

Installation

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++ dependency

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 .

Usage

Command line

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.

Examples

Further examples can be seen in the examples folder.

Nomenclature

The nomenclature of the variables in this software follows (mostly) the traditional molecular docking terminology

Citing

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}
}

About

Library to dock molecules in crystal structures, including nanoporous materials

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages