Releases: ericchansen/q2mm
Releases · ericchansen/q2mm
v5.0.0a2
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 CLI —
q2mm-benchmarkentry point with streaming tables, quality-aware status, per-combo summaries, ANSI colors, and--data-dirfor 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.pyconsolidates 16 path constants and 3 molecule factories from 13 test files- Deleted dead
_patterns.pymodule and duplicate MacroModel constants - Fixed
from_molecules()feature drift (silently lacked eigenmatrix params) - Fixed
0.0score falsiness bug in leaderboard rows
Packaging & robustness
[all]extras now includejax/jaxlib;[dev]includesopenmm- Lazy
scipyimport — 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
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
What's Changed
- Syncing up ericchansen/q2mm and q2mm/q2mm by @ericchansen in #26
- Fixed bug associated with torsion check error by @arosale4 in #27
- Sync with Q2MM/q2mm by @ericchansen in #29
- Many changes to help with issue #22 by @ericchansen in #37
- Iss22 by @ericchansen in #38
- Added more ligands by @jesswahlers in #45
- Update Param Tethering by @arosale4 in #43
- Create README.md by @egulotty in #46
- Merge Tony's changes by @ericchansen in #47
- Pull updates from q2mm/q2mm by @ericchansen in #48
- refactor: Modernize packaging, fix imports, add CI by @ericchansen in #50
- test: fix broken tests and add parser tests (1 to 28 passing) by @ericchansen in #51
- refactor: restructure into modular subpackages (v5 architecture) by @ericchansen in #52
- feat: add Psi4 and Tinker backend engines with SN2 test data by @ericchansen in #53
- feat: add clean data models and Seminario/QFUERZA pipeline by @ericchansen in #54
- feat: Modernize Q2MM with clean models, OpenMM backend, and Seminario parity by @ericchansen in #55
- feat(optimizers): Add scipy-based FF optimizer by @ericchansen in #56
- feat(validation): Cross-backend optimization validation with OpenMM + Tinker by @ericchansen in #57
- refactor(parsers): Split monolithic files into focused modules by @ericchansen in #58
- chore: delete legacy plumbing files (-9,254 lines) by @ericchansen in #59
- fix: Address multi-model architecture review findings by @ericchansen in #60
- fix: Address multi-model architecture review findings by @ericchansen in #61
- docs: Add MkDocs Material documentation site by @ericchansen in #62
- docs: Improve tutorial, fix benchmarks, add molecule constructors by @ericchansen in #66
- chore: Python 3.10+, remove legacy code, clean repo by @ericchansen in #67
- chore: remove legacy Schrodinger screening code by @ericchansen in #70
- ci: add PyPI publishing on tag push by @ericchansen in #71
New Contributors
- @jesswahlers made their first contribution in #45
- @egulotty made their first contribution in #46
Full Changelog: https://github.com/ericchansen/q2mm/commits/v5.0.0a1