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.
To install the latest stable release:
pip install mlfsm
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.
- 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.
- 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.
- Some ML potentials do not offer a native ASE interface. To accommodate these, a minimal example of custom
ase.Calculatorwrappers is provided in theexamples/folder. This serves as templates for integrating arbitrary NNPs with ML-FSM
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
This project is licensed under the MIT License. See the LICENSE file for details.
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.
This package was created with Cookiecutter and the jevandezande/pixi-cookiecutter project template.