Changelog¶
The public reproduction snapshot for the published study is archived as
v0.0.1.
Use that tag for exact reproduction of the paper results. The current workflow
release is 0.4.0.
0.4.0 - 2026-08-24¶
The pipeline now uses semantic system IDs and explicit role-based manifests.
Snapshot extraction and CP2K labeling are unified under bff label-snapshots;
all molecular and isolated-atom CP2K inputs are supplied explicitly by users;
the remaining stages are named sample-parameters, build-qoi-datasets, and
fit-lgp. This is a breaking config change; follow the
pipeline migration guide.
Build systems now include stable virtual-site-free reference assets,
label-snapshots writes a detailed results manifest, and validation can draw
samples directly from outputs/posterior.pt. Learning copies the authoritative
parameter specification into its fixed outputs/ directory.
QoI analysis now parallelizes complete training samples, processes all systems
of a sample sequentially, and treats the reference through the same execution
path. Custom routines infer file-based execution from declared inputs rather
than a separate loader setting.
Static hydrogen-bond selections now reuse their donor topology and possible labels across frames, substantially reducing reference-analysis time. QoI dataset metadata is also guaranteed to remain acyclic during serialization.
Colvars-enabled sampling and validation jobs now rewrite
colvars-configfile relative to the GROMACS working directory, fixing missing
bias files in staged local and Slurm campaigns.
The numbered examples follow the new stage contract. The self-contained
notebooks use CUDA when available and otherwise fall back to CPU. pytest is
now installed through the dev extra instead of as a runtime dependency.
See the repository changelog for the complete list of breaking changes and fixes.
0.3.0 - 2026-06-11¶
Highlights¶
- Effective observation counts are now configured during
bff learnas explicit counts, independent scalar observations, or tolerance-derived curve features. - The Gaussian likelihood uses an
n_eff-weighted mean squared residual, so posterior width is not determined by arbitrary curve binning. bff learnwritesqoi-marginals.pdfto show which QoIs support different posterior regions.- Different QoIs may use different numbers of surrogate-training rows.
- Build templates are optional when a system does not need them, and the CLI
uses the single
bff <command>entry point. - User-defined analysis routines now work with multiprocessing workers.
pytestis included in the standard installation.
Warning
The learn configuration and .lgp model format changed in 0.3.0. Refit
models created by earlier releases and migrate path-only model entries to
the nested format documented in the
learn configuration.
0.2.1 - 2026-06-01¶
Fixed¶
- Restored Python 3.10 compatibility by replacing the Python 3.11-only
typing.Selfannotation in Gaussian-process model loading.
0.2.0 - 2026-06-01¶
Reference Points¶
The code history contains two useful paper-era comparison points:
- Earlier branches used ParmEd to parse and modify GROMACS topologies.
- The later public
v0.0.1snapshot had already moved to an intermediategmxtopparser together with MDAnalysis. - The current line uses
gmxtopologyand MDAnalysis selections.
Publication Snippet¶
Relative to the paper-era implementation, Bayesic Force Fields has been
refactored into a staged, configuration-driven workflow for system preparation,
reference-data generation, force-field sampling, surrogate fitting, posterior
learning, and validation. The refactor replaces the external emcee sampling
backend with an in-package Torch MCMC implementation, moves topology handling
away from the earlier ParmEd-based path, and adds reusable quantity-of-interest
datasets, local and Slurm execution, hierarchical charge constraints, broader
GROMACS topology updates, and notebook-first examples for externally generated
data.
Architecture Changes¶
| Area | Paper-Era Implementation | 0.2.0 |
|---|---|---|
| Posterior sampling | emcee.EnsembleSampler and its HDF backend |
Torch parallel Metropolis-Hastings sampler with adaptive proposals |
| Diagnostics | Autocorrelation handling through emcee results |
Checkpoints, restart support, split R-hat, autocorrelation time, and effective sample size |
| Topologies | ParmEd in earlier branches; intermediate gmxtop in v0.0.1 |
gmxtopology with MDAnalysis selections |
| Constraints | One molecular total charge and one implicit charge parameter | Hierarchical residue- or system-level constraints with compatibility checks |
| Data model | Monolithic training arrays and YAML sidecars | Reusable serialized QoIDataset objects |
| API | Broad workflow commands | Focused stages from build through validate |
Highlights¶
- Removed the runtime
emceedependency in favor of the Torch MCMC stack. - Replaced the earlier ParmEd topology path with GROMACS-native handling.
- Split monolithic structures and inference code into focused modules.
- Reconstructable
specs.yamlfiles and hierarchical charge constraints. - CP2K snapshot collection, bias inputs, and local or Slurm campaigns.
- Reusable quantity-of-interest datasets and notebook-first examples.
- More stable Gaussian-process fitting, posterior learning, and plotting.
- Function-9 GROMACS dihedral updates using labels such as
dihedraltype9_3_180.
The repository CHANGELOG.md keeps the complete grouped history.