Skip to main content

Pytest Documentation Status Linter

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.

Installation

via pip, from PyPI

Starting with version 1.7.4, molSimplify is available on PyPI enabled by the openbabel-wheel project. It is recommended to make a new conda environment with Python 3.8, activate it, and then run the following command:

pip install molSimplify

via pip, from GitHub

To obtain the latest development version or if you plan to modify the code we recommend installation from GitHub.

  1. Clone molSimplify source from github and change into the directory.

    git clone https://github.com/hjkgrp/molSimplify.git
    cd molSimplify
    
  2. Create a new conda environment and specify the desired Python version (we currently recommend 3.8). You can change the environment name molsimp according to your preference.

    conda create --name molsimp python=3.8
    

    Then activate the environment.

    conda activate molsimp
    
  3. Locally install the molSimplify package using pip.

    pip install -e .[dev]
    

    On Mac, the command to use is instead pip install -e '.[dev]' or pip install -e .\[dev\].

  4. 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
    

via conda, from GitHub

The easiest way of installing molSimplify including optional dependencies such as xtb is via the Conda package management system.

  1. Prerequisite: have Anaconda or miniconda installed on your system. We recommend use of the libmamba solver. For M1 Macs, please use Miniforge for Mac OSX arm64. (We do not recommend simultaneously installing Anaconda and Miniforge - only install Miniforge.)

  2. Clone molSimplify source from github and change into the directory.

    git clone https://github.com/hjkgrp/molSimplify.git
    cd molSimplify
    
  3. Create a new conda environment and specify the desired Python version (we currently recommend 3.8).

    conda create --name molsimp python=3.8
    
  4. 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 file devtools/conda-envs/mols_minimal.yml.

    conda activate molsimp
    conda env update --file devtools/conda-envs/mols.yml
    
  5. Locally install the molSimplify package using pip.

    pip install -e . --no-deps
    
  6. 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
    

via conda, from Anaconda

Releases of molSimplify are also available on Anaconda on the conda-forge channel and the hjkgroup channel.

via docker

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.

Tutorials

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

Documentation for molSimplify can be found at our readthedocs page.

Citation DOI for Citing MDTraj

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://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},
}

@Article{molSimplify2.0,
author = {Terrones, Gianmarco G. and St. Michel, Roland G. and Toney, Jacob W. and Ball, Akash K. and Wang, Yiran and Garrison, Aaron G. and Nandy, Aditya and Meyer, Ralf and Edholm, Freya and Oh, Changhwan and Pujet, Sebastian G. and Chu, Daniel B. K. and Muhammetgulyyev, Davut and Kulik, Heather J.},
title = {molSimplify 2.0: Improved Structure Generation for Automating Discovery in Inorganic Molecular and Reticular Chemistry},
volume = {66},
number = {5},
pages = {2753-2767},
url = {https://doi.org/10.1021/acs.jcim.5c02733},
doi = {10.1021/acs.jcim.5c02733},
year = {2026},
}

If you use any machine learning (ML) models in molSimplify, please cite the corresponding reference in this ML model reference page. For additional reference information, please see here.

Note that we have disabled developers' supports for Python 2.7 and will only release conda builds on Python 3.

Metadata

Release files for molSimplify 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for molSimplify 2.0.0
File Size Uploaded
molsimplify-2.0.0.tar.gz 15.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for molSimplify 2.0.0
File Interpreter ABI Platform
molsimplify-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 MB

Release files / molsimplify-2.0.0.tar.gz

Download URL molsimplify-2.0.0.tar.gz
Size 15.6 MB
Tags Source
SHA-256 checksum
How to use checksums
3f5d608511aa62a91ca745431abd3cf6a790c7261103851a3ebfb475a11373de
BLAKE2b-256 checksum
How to use checksums
7418eb8323b851255bf462ab03b4b148343171b5790b42bfc8cc28876c00a782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 12, 2026.

Transparency log

Release files / molsimplify-2.0.0-py3-none-any.whl

Download URL molsimplify-2.0.0-py3-none-any.whl
Size 15.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b2d5e63efae66ef5ee7b03168d54daaabc8e52eee6cd9137fb4430683e1e8d8d
BLAKE2b-256 checksum
How to use checksums
774eacdd1152abf168be1ddd244b7fcbf7c35992a87419c7f87fe10ddc5852ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.8.0

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page