-
Notifications
You must be signed in to change notification settings - Fork 86
Update Amber force fields with latest versions from AmberTools 24 #368
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
Conversation
* Read CMAP terms from FRCMOD files and add to relevant force fields. * Specify atom types to keep even when unused (required ParmEd patch, but necessary to allow splitting of phospho files without completely reworking generation). * Amber bug leading to different atom names between phospho10 and phospho14 fixed, so these test files can be the same: merged into one directory.
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #368 +/- ##
=======================================
Coverage 71.41% 71.41%
=======================================
Files 5 5
Lines 822 822
=======================================
Hits 587 587
Misses 235 235 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This turns out to be not quite ready to merge yet so I'll revert it to a draft for now. In particular, the main README and some docstrings and tests need to be updated, and GAFF 2.2.20 needs to be registered in the openmmforcefields code. Maybe this should be changed at some point to happen automatically based on what's in Annoyingly, the code and tests that are trying to parse a "major" and "minor" version number from GAFF aren't valid here because 2.2.20 is a different format from all of the other GAFF versions and has 3 components. Maybe "2" can be the major version number and "2.20" can be the minor, since they look like strings? |
|
Alright, this should be ready for review now. The GAFF-specific tests aren't turned on yet as I have a separate PR #371 for that. |
|
This looks ok as far as I can tell, which once again isn't very far. Hopefully @mattwthompson and @mikemhenry can provide additional feedback. Is there any risk that replacing the |
|
In most cases it shouldn't, as ParmEd outputs |
|
I'm not able to really review this at the comprehensive level that's probably necessary. From the notes at the top of this page, it looks like the unresolved questions relate to several hacks that may or may not be necessary to work with ... odd things that already exist in Amber infrastructure. And bugs, unreleased code, etc. These smell collectively like a Sophie's choice - there are, putting it generously, compromises that need to be made to support all of these force fields, but just not supporting them is not without downsides. What sort of things are you looking for feedback on? How could Mike, myself, and/or others best contribute to this situation? |
|
Your assessments there are correct. Both this and the CHARMM update have involved increasing numbers of convoluted hacks to work around (1) idiosyncrasies in the source force fields and (2) shortcomings in ParmEd. (2) was the main pain point for CHARMM and (1) has been the main problem with Amber, but both of these issues have contributed to difficulties in both updates. My main concern in asking for review of these updates is avoiding changes that cause the force fields to successfully parameterize a system but result in incorrect parameters getting assigned. As far as I can tell, based on the existing tests for the Amber conversion, the updates I have made to support the new force fields haven't generated any problems yielding these silent wrong answers. Having not looked at this code before, however, there's always the chance that I have missed something obvious that has introduced a subtle bug. Ideally, someone who knows how this conversion worked for the existing force fields would be able to take a look at these changes. At this point, though, assuming that the people in John's group who originally worked on this conversion are no longer available, I think we can just hope for an additional set of eyes on the code to try to prevent any obvious issues from getting introduced. |
|
After getting some help from the AmberTools mailing list, I was able to verify that the aforementioned CMAP issue was in fact a LEaP bug, and to find a workaround that allows validation of GLYCAM with ff19SB. Also, the Amber manual shows in an example that GLYCAM should be loaded by LEaP before a protein force field. It doesn't mention at all that getting this the other way around can generate bogus dihedrals with in ff19SB. Getting the order right in LEaP produces sensible output, specifically for the HYP residues that were causing problems, and I've updated the override levels on HYP and CHYP so that the protein force field versions take precedence over the GLYCAM versions. Now ff19SB should work correctly with GLYCAM. That should be all of the remaining outstanding issues that I am aware of. |
Featuring these new additions:
Fixes:
lipid17.xmlhas unmerged lipids andlipid17_merged.xmlhas merged lipids. Previouslylipid17.xmlhad merged lipids andlipid17_merged.xmlhad no residues at all. I think that was wrong and that how it is now is right, but please correct if needed.A few notes:
merge_lipids.pyis removed since the one function in that script is in the main conversion script.