feat: add ring planarity benchmark - #681
Open
lwalew wants to merge 3 commits into
Open
Conversation
lwalew
force-pushed
the
feat/add-ring-planarity
branch
from
July 8, 2026 11:22
7f4a5dc to
0b74b47
Compare
joehart2001
reviewed
Jul 9, 2026
| Computational cost | ||
| ------------------ | ||
|
|
||
| High: one MD simulation per molecule, each 1,000,000 steps. Faster inference can be achieved |
Author
There was a problem hiding this comment.
Very similar to Bond Length Distribution . 6 molecules of <20 atoms for 1M steps so again we can expect a couple of hours.
Collaborator
|
Thanks for the pr! same as #658 could you send the data + have a look at the element filtering? docs: https://ddmms.github.io/ml-peg/developer_guide/filter.html |
ElliottKasoar
left a comment
Collaborator
There was a problem hiding this comment.
This is looking really nice, @lwalew, thanks! Would you be able to share the input data so I can test this end-to-end?
| Name of model and model object to get calculator. | ||
| """ | ||
| model_name, model = mlip | ||
| calc = model.get_calculator() |
Collaborator
There was a problem hiding this comment.
Suggested change
| calc = model.get_calculator() | |
| calc = model.get_calculator(precision="low") |
I expect we want to default to float32?
# Conflicts: # ml_peg/app/utils/frameworks.yml # ml_peg/calcs/utils/mlipaudit.py
Guard the module-level `mlipaudit` imports with `pytest.importorskip` so collection skips instead of erroring when the optional `mlipaudit` extra is not installed. Placed ahead of the `ml_peg.calcs.utils.mlipaudit` import, which pulls in `mlipaudit` unconditionally. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Save the downloaded input data to the calculation outputs and read it from there during analysis, so the analysis no longer re-downloads from S3. Raise a clear error if the calculation has not been run. Store elements as one list per structure rather than a single union, so individual structures can be excluded once partial filtering is supported. Report a failed model as NaN rather than None. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
lwalew
force-pushed
the
feat/add-ring-planarity
branch
from
August 3, 2026 11:47
bc3b880 to
d1bd192
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-review checklist for PR author
PR author must check the checkboxes below when creating the PR.
Summary
Migrates the ring planarity benchmark from the MLIP Audit suite. For each of a set of small organic molecules with aromatic rings, an NVT molecular dynamics simulation is run at 300 K starting from a QM-optimised reference geometry (selected from QM9), and the deviation of the ring atoms from their best-fit plane is measured over the trajectory. Aromatic rings are planar, so a lower average deviation is better. The mean planarity deviation per model is reported in the metrics table, and the distribution of sampled deviations is shown as a histogram.
This is the first MLIP Audit migration to include the shared mlipaudit wiring (the
mlipauditoptional extra and git source inpyproject.toml, themlip_auditframework badge, andml_peg/calcs/utils/mlipaudit.py), which overlaps with the bond length distribution PR (#666) and Leon's PRs (#660, #644); whichever lands first introduces this wiring and the others can drop it.Linked issue
Resolves #680
Progress
The benchmark input data still needs to be uploaded to the ML-PEG S3 bucket at
inputs/molecular_dynamics/ring_planarity/ring_planarity.zip(layoutring_planarity/ring_planarity_data.json) before it can run end-to-end.Testing
Not yet run end-to-end. Style checks (
pre-commit) pass locally.New decorators/callbacks
None required.