Repository navigation
v4.3.0
Highlights
GoodVibes v4.3.0 ships the first wave of the v5.0 roadmap — programmatic API
polish, structured outputs, and a new plotting module — while keeping the CLI
and .dat output fully backwards compatible. The v5.0 "Ensemble" keystone
(streaming conformer container) is still pending, which is why this is a
v4.x release rather than v5.0.0.
New: structured re-analysis workflow
- New
--export PATH.jsonwrites the v1.0 unified payload (every parsed QC
field + all thermo blocks), and--import PATH.jsonreads it back so
subsequent runs skip QC parsing entirely. Re-run at a new temperature,
cutoff, or quasi-RRHO scheme without touching the original.log/.out
files.--cache-save/--cache-readare kept as deprecated aliases. --spcenergies are now cached onQCData, so re-passing
--spc <suffix>after--importreuses them without re-reading the SPC
files.- New cookbook recipe in
docs/source/cookbook.mdwalks through the
parse-once / re-analyze-many workflow.
New: visualization (goodvibes.plot)
- New
goodvibes.plotmodule behind the[plot]extras. --strip-plot PATHrenders a per-species ΔG scatter for selectivity runs.--pes-plot PATHrenders a reaction-profile diagram from aPESResult,
with bezier or linear connectors, multi-pathway overlay, configurable
colors, optional point-value annotations, and optional per-conformer
scatter.- Stubs for
plot_boltzmann_histogramandplot_temperature_scanlock in
the v5.1 API.
Programmatic API (v5.0 preview)
- New
ThermoOptionsfrozen dataclass andcalc_bbe.from_options(...)
classmethod replace the 15-positional-arg constructor (which still works
but emits aDeprecationWarning; removed in v6.0). - New
docs/source/migration_v5.mdmigration guide for users embedding
GoodVibes in scripts and notebooks. - v1.0 JSON schema is now the single source of truth, defined in
goodvibes.schemawith TypedDicts, version constants, and a runtime
validator.
Selectivity & PES improvements
- New
Grelcolumn in the main results table when selectivity is active. - Selectivity terminology renamed for general N-way labels:
ee→excess,ΔΔG‡→ΔΔG. --labelpatterns now also match against the parent directory basename
(handy when conformers live in per-species sub-folders).- PES species spec accepts directory-based assignment via
dir:/dirs:
alongside the existingfiles:glob syntax.
Fixes
--spcnow requires an exact suffix match (avoids false-positive matches
on substrings).--spcCPU-time accounting now correctly sums the SPC job time.- PES YAML globs now catch all conformers (previously missed some
multi-conformer species). --graphis now wired frommain()so it fires in single-temperature
mode (previously only fired under--ti).
Internals & quality
- CLI flags grouped into argparse argument groups for readability.
- Direct unit tests added for
output.pyrenderers (overall coverage
62% → 66%). - New
msRRHOentropy benchmark suite vs NIST experimental S° data. - README + ROADMAP refreshed for the v5.0 surface; v5.1 milestone
("Ecosystem & polish": CREST/CENSO import, auto-SI generator) defined.
Upgrade notes
- CLI users: nothing to change. All v4.2.0 flags still work.
- Library users: migrate from the legacy
calc_bbe(file, QS, QH, ...)
constructor tocompute_thermo(...)orcalc_bbe.from_options(...)—
seedocs/source/migration_v5.md. The legacy form still works in v4.x
with aDeprecationWarning. - Cache files: switch from
--cache-save/--cache-readto
--export/--import. The old flags are kept as deprecated aliases
and still read legacy cache envelopes.
What's not in this release
The v5.0 keystone — the Ensemble streaming container that will refactor
selectivity, pes, and sort.deduplicate onto a lazy parsing pipeline
— is still pending, along with the conformational-entropy correction
(S_conf) and hindered-rotor treatment. These land in v5.0.0.
Full changelog: v4.2.0...v4.3.0