Skip to content

Releases: ericchansen/q2mm

v5.0.0a2

21 Mar 06:28

Choose a tag to compare

v5.0.0a2 Pre-release
Pre-release

What's new in v5.0.0a2

Highlights

  • q2mm/elements.py — Single source of truth for periodic table data (masses, covalent radii, symbols) with cited provenance (NUBASE2020, Cordero 2008). All consumers import from this one module.
  • Diagnostics & benchmark CLIq2mm-benchmark entry point with streaming tables, quality-aware status, per-combo summaries, ANSI colors, and --data-dir for wheel installs.
  • JAX differentiable backend — Analytical gradients via JAX-MD for OPLSAA force fields.
  • OpenMM XML export — Export optimized force fields to OpenMM XML format.
  • Method D/E eigenvalue fitting — Seminario Method E hybrid pipeline (Lime & Norrby 2015).

DRY & maintainability (since a1)

  • Consolidated element data eliminates 4 duplicate definitions across modules
  • Generic _build_param_maps() replaces 5 near-identical functions in forcefield.py
  • Generic _match_mode() replaces 4 near-identical functions in seminario.py
  • Shared build_leaderboard_rows() used by both CLI and report modules
  • test/_shared.py consolidates 16 path constants and 3 molecule factories from 13 test files
  • Deleted dead _patterns.py module and duplicate MacroModel constants
  • Fixed from_molecules() feature drift (silently lacked eigenmatrix params)
  • Fixed 0.0 score falsiness bug in leaderboard rows

Packaging & robustness

  • [all] extras now include jax/jaxlib; [dev] includes openmm
  • Lazy scipy import — module loads without scipy installed
  • Configurable Tinker bond_tolerance (was hardcoded 1.3)

CI/CD

  • Pre-built container images for backend tests (OpenMM, Tinker, JAX, Psi4)
  • Manual Build CI Images workflow for dependency updates
  • Backend-specific CI jobs with conda environments

Full changelog

v5.0.0a1...v5.0.0a2

What's Changed

  • docs: update installation instructions for PyPI by @ericchansen in #72
  • refactor: Clean up package architecture, merge Param classes, fix critical bugs by @ericchansen in #79
  • feat(parsers): Add eq and hash to Param by @ericchansen in #80
  • test: Add end-to-end Seminario validation for ethane by @ericchansen in #81
  • test: Add parity stability tests and Seminario benchmark by @ericchansen in #82
  • feat(hessian): Implement Method D/E eigenvalue fitting by @ericchansen in #83
  • fix(hessian): Address code review findings from PRs #81-83 by @ericchansen in #84
  • feat(seminario): Add Method E hybrid pipeline (Limé & Norrby 2015) by @ericchansen in #85
  • feat(hessian): Add eigenmatrix training data pipeline by @ericchansen in #86
  • docs: Add ReferenceData factory methods and end-to-end README example by @ericchansen in #87
  • feat(export): Add OpenMM XML export for force fields by @ericchansen in #90
  • feat(backends): Add JAX differentiable MM backend with analytical gradients by @ericchansen in #92
  • feat: Diagnostics package and backend-optimizer benchmark matrix by @ericchansen in #103
  • ci: switch backend tests to pre-built container images by @ericchansen in #105
  • fix: Address code review findings (bugs, DRY, lint, docs) by @ericchansen in #106
  • refactor: Consolidate element data, DRY up codebase, fix packaging by @ericchansen in #107

Full Changelog: v5.0.0a1...v5.0.0a2

v5.0.0a1

19 Mar 20:22

Choose a tag to compare

v5.0.0a1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: https://github.com/ericchansen/q2mm/commits/v5.0.0a1