Skip to content

v0.3.0

Latest

Choose a tag to compare

@t-0hmura t-0hmura released this 30 Jun 04:29

mlmm-toolkit v0.3.0

mlmm_toolkit_overview

mlmm-toolkit is an open-source CLI for ML/MM ONIOM analyses of enzymatic reactions. It replaces the QM region of conventional QM/MM with a machine-learning interatomic potential (MLIP, default: UMA) while keeping the surrounding protein under an analytical Amber force field (hessian_ff), and chains MM parameterization → ML-region selection → MEP search → TS optimization → IRC → frequencies → DFT single-point in one command. A link-atom boundary handles amino-acid residues straddling the ML/MM cut, and a microiteration scheme makes TS optimization and Hessian-based methods tractable on ~10 000-atom systems.

A useful initial reaction path is one command:

# Multi-structure MEP (R + P endpoints → MEP, with TS optimization + thermo)
mlmm all -i R.pdb P.pdb -c 'SAM,GPP' -l 'SAM:1,GPP:-3' --tsopt --thermo

What's new in v0.3.0

This is a major release. The package was refactored into a clean layered architecture (cli / workflows / domain / backends / io / core). The documentation was revised and polished throughout.

One default changed: all --refine-path now defaults to --no-refine-path — the MEP stage runs a single-pass path-opt by default; pass --refine-path for the previous recursive path-search (automatic multi-step segmentation). All other commands keep working unchanged.

Native build robustness: the hessian_ff extension now JIT-builds into a local directory by default, so first use no longer hangs on networked (NFS/Lustre) filesystems. Building requires GCC ≥ 9 (conda install -c conda-forge gxx_linux-64).

New flag: --backend-model NAME selects the MLIP model variant for the chosen --backend directly from the CLI (previously only via --config YAML), e.g. --backend uma --backend-model uma-m-1p1.

New backend option: --calc-file my_calc.py loads any ASE Calculator (e.g. GFN-xTB, DFTB+, ORCA) as the ML-region backend — across every subcommand and the all pipeline. The file exposes a get_calculator() factory; see docs/backends.md.

See CHANGELOG.md for the full list of changes.