Skip to content

livaschar/mofsynth_adv

Repository files navigation

MOFSynth-Advanced

Logo

Requires Python 3.10+ Read the Docs PyPI Licensed under GPL-3.0-only

Online App

🔔 Release Note

We are excited to announce the release of MOFSynth-ADV, a significant leap forward in our commitment to speed, accessibility, and scientific reproducibility.

This new version is fully powered by open-source software, eliminating dependencies on proprietary packages and streamlining deployment across systems.

  • Multiple Calculators: Seamlessly switch between xTB and MACE Machine Learning Potentials (mace_mp, mace_off)for rapid energy calculations.

  • Choice of Optimizers: Select from a range of leading geometry optimizers including LBFGS, FIRE, BFGS, and Sella.

  • Global Config: Set up your SLURM templates once with our new ~/.mofsynth/slurm_template.sh approach and run anywhere.

  • Open Science Ready: All dependencies are now open source, making MOFSynth-ADV fully transparent and reproducible.

Open source, and faster!

What is MOFSynth?

MOFSynth is a Python package for MOF synthesizability evaluation, with emphasis on reticular chemistry.

In materials science, especially in the synthesis of metal-organic frameworks (MOFs), a significant portion of time and effort is spent on the experimental process of synthesizing and evaluating the viability of MOFs.

MOFSynth aims to provide a simple and efficient interface for evaluating the synthesizability of metal-organic frameworks (MOFs) in an experiment-ready format, minimizing the time and labor traditionally required for these experimental preprocessing steps. This allows researchers to focus more on innovative synthesis and experimental validation rather than on preparatory tasks.

⚙️ Installation

Because MOFSynth-ADV relies on computational chemistry tools that require compiled Fortran and C libraries (like tblite), it is strongly recommended to use Conda to manage your environment. Using a standard Python venv with pure pip may result in missing Fortran runtime errors.

Method 1: Using environment.yml (Recommended)

If you are installing from the source repository, we provide an environment file that perfectly configures all complex dependencies.

# Clone the repository
git clone https://github.com/livaschar/mofsynth_adv.git
cd mofsynth_adv

# Create the environment and install all dependencies
conda env create -f environment.yml

# Activate the environment
conda activate mofsynth_adv_env

Method 2: Manual Installation via Conda + Pip

If you are installing directly from PyPI, please ensure you install tblite via conda-forge before running pip.

# 1. Create and activate a new conda environment
conda create -n mmofsynth_adv_env python=3.13
conda activate mofsynth_adv_env

# 2. Install tblite via conda-forge to ensure Fortran libraries are linked
conda install -c conda-forge tblite tblite-python

# 3. Install MOFSynth-ADV and the rest of the dependencies
pip install mofsynth_adv

Requires

To run MOFSynth-ADV, the following modules and tools must be present in your system:

  1. mofid: A Python library for MOF identification and characterization.

Make sure to check installation document if you encounter any problems.

💻 Browser-Based MOFSynth

Easy to use Web version of the tool.

📖 Usage example

Check the tutorial.

Also check the examples folder for ready to use python scripts.

⚠️ Problems?

You can start by opening an issue or communicate via email.

📰 Citing MOFSynth

Please consider citing this publication or use the following BibTex.

Show BibTex entry
@article{doi:10.1021/acs.jcim.4c01298,
  author = {Livas, Charalampos G. and Trikalitis, Pantelis N. and Froudakis, George E.},
  title = {MOFSynth: A Computational Tool toward Synthetic Likelihood Predictions of MOFs},
  journal = {Journal of Chemical Information and Modeling},
  volume = {64},
  number = {21},
  pages = {8193-8200},
  year = {2024},
  doi = {10.1021/acs.jcim.4c01298},
  note ={PMID: 39481084},
  URL = {https://doi.org/10.1021/acs.jcim.4c01298},
  eprint = {https://doi.org/10.1021/acs.jcim.4c01298}
  }

🛠️ Developer Information & Contributions

We welcome contributions to expand the capabilities of MOFSynth-ADV! Whether you are fixing bugs, adding new features, or integrating new physics engines, your help is appreciated.

To add a new model:

  1. Open src/mofsynth_adv/modules/ase_worker.py.
  2. Find the get_calculator(name) function.
  3. Add a new elif block to initialize your desired ASE calculator.
  4. Ensure any additional Python dependencies (like fairchem-core for UMA) are installed in your environment.

Submitting Changes

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/NewCalculator).
  3. Commit your changes.
  4. Push to the branch and open a Pull Request

📑 License

MOFSynth-ADV is released under the GNU General Public License v3.0 only.

About

Python package for automated, high-throughput MOF synthesizability evaluation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages