-
Notifications
You must be signed in to change notification settings - Fork 745
ENH: tpx 137 (GROMACS 2025.0) support #4919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: tpx 137 (GROMACS 2025.0) support #4919
Conversation
| elif i in [setting.F_ENNPOT]: | ||
| # TODO: handle the new neural network potentials | ||
| # supported from GROMACS 2025.0 | ||
| pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this and other new v2025.0 bells and whistles, cc @al42and for possible generation of new test files that have the new bells and whistles.
I don't now if we really need a new test file with i.e., the new PyTorch potential handling + reference coordinate scaling with multiple centers of mass + init-histogram-counts to enable continuation of expanded ensemble runs.
Probably would be good to have eventually, if only to make sure we don't need to skip over any other bits of information when "seeking" through the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we think there are attributes we will be missing if we're not properly parsing the NN potential things? i.e. what I'm asking is if we need a warning here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this and other new v2025.0 bells and whistles, cc @al42and for possible generation of new test files that have the new bells and whistles.
I can make a TPR with a bunch of things turned on, but there are issues if we want to stick with existing test sets:
- 2lyz: they only have TPR, which is neither editable nor "decompilable" into parts; can't change settings there (and looks like the original receipt is lost in time, since the new are just converted from the old ones, per 336ff1d).
- bonded/dummy: currently, for NN, we need something with "physical" element names.
If that's ok, I can create a new TPR roughly based on GROMACS's own tests.
Reconstructing 2lyz and making a test based on it is doable, but I'd rather avoid that as long as you're ok with adding a new test system.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #4919 +/- ##
===========================================
- Coverage 93.64% 93.61% -0.04%
===========================================
Files 177 189 +12
Lines 21857 22925 +1068
Branches 3077 3078 +1
===========================================
+ Hits 20469 21461 +992
- Misses 938 1013 +75
- Partials 450 451 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
IAlibay
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not very versed in the new 2025 changes, but this looks reasonable to me, thanks!
@al42and I think making a new |
|
Hi! Here's an example file + test. The NN potential is stored as a reference, so there's not really much to test except that it does not screw up anything else. Also enabled a few other random features in the MDP. The file size is 11KiB (that's just ALA dipeptide in vacuum) |
orbeckst
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having the capability to read the basic features for the new format (as demonstrated in the PR on the converted TPR files) is "good enough" for getting this into the 2.9.0 release #4939 . Given the time constraints I'd suggest to follow up with further work in additional PRs.
If we're worried that other things really won't work well then we could add a note to docs/release notes. @tylerjereddy I'll leave this to your judgement.
* Add support for GROMACS `2025.0` `.tpr` version 137, which mostly involves accounting for the new PyTorch neural network potential field, `F_ENNPOT`. Most of the other changes are similar to the approach I previously used for bumping `.tpr` version support in MDAnalysisgh-4866. * Some other `.tpr` additions are noted at MDAnalysis#4888, but we don't appear to need to use those within the context of our current `.tpr` parsing tests. It may be sensible to occasionally generate `.tpr` test files that use those extra bells and whistles to see how we fare, though as a first pass here the full testsuite passes for us if we simply do the usual `gmx convert-tpr` at the latest stable GROMACS release tag `v2025.0` and propagate our current TPR testing to additionally use the converted files.
* Generated input file with random set of features enabled Using inputs from gromacs/src/testutils/simulationdatabase/ `gmx grompp -f tt6710474.mdp -c ala.gro -n ala.ndx -p ala.top -o ala_nnpot_gmx_2025_0.tpr` * Add Andrey to `CHANGELOG`
2504fd8 to
2522224
Compare
|
I'm at the airport in Austin, but just pulled in Andrey's commit and the testsuite seems to be happy locally even with the fancy new TPR, so I went ahead and pushed that up alongside Andrey's addition to the CHANGELOG. So, no known reservations on my end, may even be able to remove the residual |
|
Amazing, thanks @al42and and @tylerjereddy ! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
black linting (couldn't push from the CLI for some reason)
|
CI was passing earlier and now that linters are I'm going to go ahead with the merge. |
* ENH: tpx 137 support * Add support for GROMACS `2025.0` `.tpr` version 137, which mostly involves accounting for the new PyTorch neural network potential field, `F_ENNPOT`. Most of the other changes are similar to the approach I previously used for bumping `.tpr` version support in MDAnalysisgh-4866. * Some other `.tpr` additions are noted at MDAnalysis#4888, but we don't appear to need to use those within the context of our current `.tpr` parsing tests. It may be sensible to occasionally generate `.tpr` test files that use those extra bells and whistles to see how we fare, though as a first pass here the full testsuite passes for us if we simply do the usual `gmx convert-tpr` at the latest stable GROMACS release tag `v2025.0` and propagate our current TPR testing to additionally use the converted files. * TST: Add GROMACS 2025.0 TPR with NNpot * Generated input file with random set of features enabled Using inputs from gromacs/src/testutils/simulationdatabase/ `gmx grompp -f tt6710474.mdp -c ala.gro -n ala.ndx -p ala.top -o ala_nnpot_gmx_2025_0.tpr` * Add Andrey to `CHANGELOG` * Apply suggestions from code review --------- Co-authored-by: Andrey Alekseenko <al42and@gmail.com>
Add support for GROMACS
2025.0.tprversion 137, which mostly involves accounting for the new PyTorch neural network potential field,F_ENNPOT. Most of the other changes are similar to the approach I previously used for bumping.tprversion support in ENH: support tpx 134 (GMX 2024.4) #4866.Some other
.tpradditions are noted at GROMACS 2025 TPR support #4888, but we don't appear to need to use those within the context of our current.tprparsing tests. It may be sensible to occasionally generate.tprtest files that use those extra bells and whistles to see how we fare, though as a first pass here the full testsuite passes for us if we simply do the usualgmx convert-tprat the latest stable GROMACS release tagv2025.0and propagate our current TPR testing to additionally use the converted files.PR Checklist
package/CHANGELOGfile updated?package/AUTHORS? (If it is not, add it!)Developers Certificate of Origin
I certify that I can submit this code contribution as described in the Developer Certificate of Origin, under the MDAnalysis LICENSE.
📚 Documentation preview 📚: https://mdanalysis--4919.org.readthedocs.build/en/4919/