Introduction
alchemrs is a CLI-first tool for alchemical free energy analysis.
The project is organized as a Cargo workspace with a core Rust package, a CLI binary, and a Python extension package. Inside the library, the code is split into focused modules for:
- parsing supported AMBER and GROMACS outputs into typed Rust data structures
- preprocessing time series by trimming and decorrelation
- estimating free energies with TI, BAR, MBAR, IEXP, DEXP, NES, UWHAM, and ATM
- computing overlap diagnostics
- computing schedule advice for
u_nk, TI, and NES workflows - exposing the workflow through a CLI, a clean top-level Rust API, and Python bindings
The intended user journey is:
- Start with the
alchemrsCLI for the standard workflows. - Drop to the Rust API when you need embedding, scripting, tighter control, or integration into a larger application.
- Use the existing Python package when you want the same core implementation from Python or OpenMM-driven workflows.
At the moment, the practical workflow is:
- Parse supported engine outputs into
DhdlSeries,UNkMatrix, orSwitchingTrajectory, or constructAtmSampleSet/AtmLogQMatrixdirectly for ATM workflows. - Trim and decorrelate those data if needed.
- Apply an estimator.
- Inspect uncertainties, overlap diagnostics, or schedule advice.
This can be done from the CLI or the library API, but the CLI is the default front door.
This book documents the current codebase rather than a future roadmap.