Export tool-neutral ARC results and parser evidence - #917
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #917 +/- ##
==========================================
+ Coverage 63.54% 64.05% +0.51%
==========================================
Files 114 115 +1
Lines 38363 39664 +1301
Branches 10033 10329 +296
==========================================
+ Hits 24377 25406 +1029
- Misses 11066 11241 +175
- Partials 2920 3017 +97
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
alongd
left a comment
There was a problem hiding this comment.
Thanks for this well-though of contribution! I left some minor comments
| _warn_missing_tckdb_package() | ||
| return | ||
| raise | ||
| from tckdb_arc.adapter import TCKDBAdapter |
There was a problem hiding this comment.
what's tckdb_arc? do we install it in our devscripts? or is it in the env?
There was a problem hiding this comment.
It's for https://github.com/calvinp0/tckdb-adapters/
I added in the devtools installation now but it's still a WIP. Splitting the adapter from ARC has somewhat been a challenge
https://github.com/ReactionMechanismGenerator/ARC/blob/56800ae93a52f93d20d8a1017b20413a5ca6629d/devtools/install_tckdb_arc.sh
45210de to
bb36bbe
Compare
bb36bbe to
bd2a0db
Compare
Add Cartesian Hessian lower-triangle parsers for Gaussian, Orca, and QChem, a structured Gaussian IRC-path parser emitting one record per converged point, and GSM stringfile energy parsing, all exposed through the parser dispatch layer. parse_irc_path walks the log once and returns per-point energy, gradients, reaction coordinate, direction, and geometry; the TS seed carries no CURRENT STRUCTURE block and is deliberately not emitted.
Add ARC-native Hessian parser tests with an Orca H2O Hessian fixture, scan constraint parser tests, and IRC-path parser coverage including the forward/reverse direction and the failed-log path.
Consolidate ARC's results into a documented, tool-neutral output.yml: per-job calculation and rotor-scan provenance, thermo points and applied energy corrections, chosen-TS-guess attribution, spin diagnostics, and IRC/NEB/GSM log paths. ARC reports source facts, native indices, and explicit units; consumers own any database-specific enums or nesting. Torsions reference rotor-scan records through a single shared predicate, so a torsion can never name a scan_rotor_N record that was not emitted. Correction parameter tables are labelled with the native unit of the table they are read from rather than the per-species total's unit. docs/output_yml_schema.md documents the emitted shape.
Build a deterministic, tool-neutral evidence document from output.yml plus the parser layer: Hessians, IRC trajectories, and GSM paths, each reported by kind with an explicit availability status and reason. Paths are run-relative and operational fields (servers, job ids, credentials) are excluded. The sidecar is written atomically: contents are fsynced, replaced into place, and the parent directory is then synced so a completed rename survives a crash. Platforms that cannot sync a directory log and skip rather than failing a write that already succeeded.
ARC no longer implements TCKDB upload itself; it hands results to the standalone tckdb-arc package from the tckdb-adapters repo. The hook is optional: a missing package logs one warning per process and continues, while a broken install re-raises rather than being misreported as absent. Add devtools/install_tckdb_arc.sh and a make install-tckdb-arc target. The adapter is work in progress and is deliberately excluded from install_all.sh and CI. Unlike the other optional tools it is imported in-process, so the installer pip-installs into ARC's own environment and checks the Python >= 3.11 floor that it and tckdb-client require.
Retain the stringfile and per-node outputs the GSM run produces so the evidence layer can report the path and its energies, and transfer queued artifacts back from the job directory. Isolate the tests across xdist workers so they no longer share a scratch directory.
Record which TS-search method produced the selected guess and keep the NEB and GSM log paths associated with it, so the result contract can attribute a TS to its originating adapter rather than inferring it after the fact.
Surface the per-species spin information the result contract reports, so consumers receive ARC's own diagnosis rather than re-deriving it from geometry and multiplicity.
Extract the atom-energy and bond-additivity corrections Arkane actually applied, along with the thermo points, through helper scripts run in the RMG environment, so the result contract can report the correction model, total, component decomposition, and the parameter table used.
4bf5fbf to
fd0ea74
Compare
What changed
Re-homes the ARC-owned result-production pieces from the historical TCKDB integration work onto clean ARC main, without bringing the TCKDB adapter back into ARC.
output.ymltckdb_evidence.jsonsidecar bound to output schema 1.1 by document IDtckdb-arcpackage, with disabled/missing-package no-op behaviorWhy
The adapter is moving to its own repository, but ARC must continue to own parsing and publication of the scientific facts generated by ARC jobs. This creates that durable producer/consumer boundary without merging the old
tckdb-impbranch wholesale.Validation