Skip to main content

ML-FSM

License Powered by: Pixi Code style: ruff GitHub Workflow Status Documentation Status codecov Contributing Changelog

Open In Colab

This repository provides an implementation of the Freezing String Method (FSM) for double-ended transition state searches with internal coordinates interpolation with ML-based potentials.

Installation

Install via PyPI

To install the latest stable release:

pip install mlfsm

Install from source (development version)

If you want the latest development version:

git clone https://github.com/thegomeslab/ML-FSM.git
cd ML-FSM
pip install .

Perform a test run with default parameters and the EMT calculator:

python examples/fsm_example.py data/sharada/06_diels_alder/ --calculator emt

Note the EMT calculator should only be used for quick demonstrations/tests.

Tutorials

  1. A Google Colab notebook example is available at:
examples/FSM_Colab_AIMNet2.ipynb

This notebook demonstrates how to run a full FSM calculation on a Diels–Alder reaction using the AIMNet2 potential.

  1. Example Script

The script:

examples/fsm_example.py

is a comprehensive and flexible tool that supports most ML-FSM functionality.

Note: Users are responsible for installing their desired quantum chemistry backend, current calculators supported in fsm_example.py are AIMNet2, MACEOFF23, FAIR UMA, TensorNet, xTB, QChem.

  1. Some ML potentials do not offer a native ASE interface. To accommodate these, a minimal example of custom ase.Calculator wrappers is provided in the examples/ folder. This serves as templates for integrating arbitrary NNPs with ML-FSM

Usage

For projects referencing algorithmic improvements to the FSM please cite:

Marks, J., & Gomes, J. (2025). Incorporation of Internal Coordinates Interpolation into the Freezing String Method. Journal of Chemical Theory and Computation. https://doi.org/10.1021/acs.jctc.5c01492

For projects using the FSM with ML-based potentials please cite:

Marks, J., & Gomes, J. (2025). Efficient Transition State Searches by Freezing String Method with Graph Neural Network Potentials. http://arxiv.org/abs/2501.06159

Contributing

Contributions are welcome! Please read the Contributing Guide before opening a pull request. We ask that you open an issue or reach out to the maintainer first to discuss proposed changes.

See the Changelog for a history of notable changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Third-Party Licenses and Attribution

This project depends on several third-party open-source Python packages. These dependencies are not bundled with this repository and must be installed separately by the user.

Below is a list of direct dependencies and their respective licenses:

Package License Link
ASE LGPL-2.1 https://gitlab.com/ase/ase
geomeTRIC BSD 3-Clause https://github.com/leeping/geomeTRIC
NumPy BSD 3-Clause https://numpy.org/
SciPy BSD 3-Clause https://scipy.org/
NetworkX BSD 3-Clause https://networkx.org/

These licenses are all compatible with the MIT license under which this project is distributed. Please refer to each package’s own repository for the full license text.

Credits

This package was created with Cookiecutter and the jevandezande/pixi-cookiecutter project template.

Metadata

Release files for mlfsm 1.0.1

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

Source distribution (sdist)

Source distribution for mlfsm 1.0.1
File Size Uploaded
mlfsm-1.0.1.tar.gz 8.8 MB Details

Built distribution (wheel)

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

Total release size: 8.8 MB

Release files / mlfsm-1.0.1.tar.gz

Download URL mlfsm-1.0.1.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
a7c7a900449a85cba5e37f8f51b0006ef9fd387a49b8aed155c2a5c531e7e036
BLAKE2b-256 checksum
How to use checksums
f0834f9ccc32fa8353ef1259c9661e222da1c22241378c19f13e0a1e2ddf65e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / mlfsm-1.0.1-py3-none-any.whl

Download URL mlfsm-1.0.1-py3-none-any.whl
Size 22.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1701d577238d0ac334cb3285c539b7d192b4c26a5d3a86bdad720cdf34f81649
BLAKE2b-256 checksum
How to use checksums
7b749269fb95f5f9610fddd416c51ff00c2e25e48486b5d1cdb86bfe9c1a81e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

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