molSimplify is an open source toolkit for the automated, first-principles screening and discovery of new inorganic molecules and intermolecular complexes. molSimplify is developed by the Kulik Group in the Department of Chemical Engineering at MIT. The software can generate a variety of coordination complexes of metals coordinated by ligands in a mono- or multi-dentate fashion. The code can build a coordination complex directly from a central atom or functionalize a more complex structure (e.g. a porphyrin or other metal-ligand complex) by including additional ligands or replacing existing ones. molSimplify also generates inter-molecular complexes for evaluating binding interactions and generating candidate reactants and intermediates for catalyst reaction mechanism screening. molSimplify also ships neural network models that can predict the metal-ligand bond lengths, spin-splitting energy, frontier orbital energies, spin-state dependent reaction energies, and simulation outcomes for octahedral transition metal complexes. See the Tutorials at the Kulik group webpage for a more complete list of jobs molSimplify can do.
Starting with version 1.7.4
molSimplify is available on PyPI enabled by the openbabel-wheel project.
pip install molSimplify
To obtain the latest development version or if you plan to modify the code we recommend installation from GitHub.
-
Clone molSimplify source from github and change into the directory.
git clone https://github.com/hjkgrp/molSimplify.git cd molSimplify
-
Locally install the molSimplify package using pip.
pip install -e .[dev]
-
To test your installation, you can run the command below at the root directory of molSimplify. You are good to go if all the tests are passed! Note, some test will be skipped because none of the optional dependencies are installed this way.
pytest
The easiest way of installing molSimplify including optional dependencies such as xtb is via the Conda package management system.
-
Prerequisite: have Anaconda or miniconda installed on your system. For M1 Macs, please use Miniforge for Mac OSX arm64. (We do not recommend simultaneously installing Anaconda and Miniforge - only install Miniforge.)
-
Clone molSimplify source from github and change into the directory.
git clone https://github.com/hjkgrp/molSimplify.git cd molSimplify
-
Create a new conda environment and specify the desired Python version (we currently recommend 3.8).
conda create --name molsimp python=3.8
-
Activate the conda environment you just created and update using one of the provided environment yaml files. In case you are experiencing problems using the full environment file in
devtools/conda-envs/mols.yml
(some packages might not be available on all architectures such as M1 Macs) try commenting the lines marked optional or switch to the minimal environment filedevtools/conda-envs/mols_minimal.yml
.conda activate molsimp conda env update --file devtools/conda-envs/mols.yml
-
Locally install the molSimplify package using pip.
pip install -e . --no-deps
-
To test your installation, you can run the command below at the root directory of molSimplify. You are good to go if all the tests are passed!
pytest
Releases of molSimplify are also available on Anaconda on the conda-forge channel and the hjkgroup channel.
We also maintain an active docker image on dockerhub for plug-and-play use.
For line by line instructions on an installation via docker, please visit molSimplify installation webpage of Kulik group.
A set of tutorials covering common use cases is available at the Kulik group webpage. Note that the GUI is no longer supported, so users are encouraged to generate structures through the command line or using the Python command startgen_pythonic.
Documentation for molSimplify can be found at our readthedocs page.
molSimplify is research software. If you use it for work that results in a publication, please cite the following reference:
@Article {molSimplify,
author = {Ioannidis, Efthymios I. and Gani, Terry Z. H. and Kulik, Heather J.},
title = {molSimplify: A toolkit for automating discovery in inorganic chemistry},
journal = {Journal of Computational Chemistry},
volume = {37},
number = {22},
pages = {2106--2117},
issn = {1096-987X},
url = {http://dx.doi.org/10.1002/jcc.24437},
doi = {10.1002/jcc.24437},
year = {2016},
}
@Article{Nandy2018IECR,
author = {Nandy, Aditya and Duan, Chenru and Janet, Jon Paul and Gugler, Stefan and Kulik, Heather J.},
title = {Strategies and Software for Machine Learning Accelerated Discovery in Transition Metal Chemistry},
journal = {Industrial {\&} Engineering Chemistry Research},
volume = {57},
number = {42},
pages = {13973-13986},
issn = {0888-5885},
url = {https://doi.org/10.1021/acs.iecr.8b04015},
doi = {10.1021/acs.iecr.8b04015},
year = {2018},
}
If you use any machine learning (ML) models in molSimplify that results in a publication, please cite the corresponding reference in this ML model reference page.
Note that we have disabled developers' supports for Python 2.7 and will only release conda builds on Python 3.