Skip to main content

python implementation of the Freezing String Method

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlfsm-1.0.1.tar.gz (8.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlfsm-1.0.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file mlfsm-1.0.1.tar.gz.

File metadata

  • Download URL: mlfsm-1.0.1.tar.gz
  • Upload date:
  • Size: 8.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for mlfsm-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a7c7a900449a85cba5e37f8f51b0006ef9fd387a49b8aed155c2a5c531e7e036
MD5 0b924baebf3bc3c2ad8fcd3ee4d392e2
BLAKE2b-256 f0834f9ccc32fa8353ef1259c9661e222da1c22241378c19f13e0a1e2ddf65e3

See more details on using hashes here.

File details

Details for the file mlfsm-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mlfsm-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for mlfsm-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1701d577238d0ac334cb3285c539b7d192b4c26a5d3a86bdad720cdf34f81649
MD5 dfc3118f17d244cc1b83d53711455878
BLAKE2b-256 7b749269fb95f5f9610fddd416c51ff00c2e25e48486b5d1cdb86bfe9c1a81e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page