Skip to content

feat(cv): support inline H5 RMSD references with end-to-end coverage - #74

Open
xiaoxuan-yu wants to merge 3 commits into
SPONGEMM:lab/sidereus-aifrom
xiaoxuan-yu:feat/inline-rmsd-reference
Open

xiaoxuan-yu wants to merge 3 commits into
SPONGEMM:lab/sidereus-aifrom
xiaoxuan-yu:feat/inline-rmsd-reference

Conversation

@xiaoxuan-yu

Copy link
Copy Markdown
Contributor

This pull request introduces comprehensive support for native inline RMSD reference coordinates in the H5 protocol format, improves validation and error handling for RMSD collective variables, and adds robust end-to-end and unit tests to ensure compatibility and correctness across both native and legacy H5 input formats. The changes also update documentation and test instructions to reflect the new features and workflows.

Support for native inline RMSD references and improved validation:

  • Refactored the ProtocolCVH5Reader to support reading RMSD reference coordinates directly from the protocol dataset (/cv/<name>/coordinate) in addition to the legacy restart path, with validation for shape, finiteness, and CV type. Conflicting references are detected and rejected. [1] [2]

Documentation updates:

  • Updated the input reference documentation to describe the new native RMSD reference workflow, including dataset requirements, compatibility, and conflict handling between native and legacy references.
  • Expanded the H5 bundle test README to explain the new end-to-end RMSD CV test suite and its requirements for both Xponge and XpongeCPP producers.

Testing enhancements:

  • Added an end-to-end test (test_rmsd_cv_e2e.py and rmsd_cv_e2e_producer.py) that generates native and legacy RMSD H5 input using both Xponge and XpongeCPP, runs SPONGE, and independently verifies RMSD values and bias forces against a NumPy/Kabsch oracle. Also tests restart behavior for reproducibility. [1] [2]
  • Added a unit test to validate all combinations of inline and restart RMSD references, including error cases for shape, finiteness, and conflicts, directly in the protocol reader. [1] [2] [3]

@xiaoxuan-yu

Copy link
Copy Markdown
Contributor Author

@codex review

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants