-
Notifications
You must be signed in to change notification settings - Fork 33
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
Support for non-element for GROMACS writer #817
Comments
I found the line that is causing the issues. The atomic number needs to be zero (0) for all dummy atoms. For example, for TIP4P, that is what parmed uses to set the water settle/rigid, and if the dummy atom is not there, it will not set settle/fix rigid correctly. Simply loading the gmso printed .top file in parmed and rewriting it back out with parmed fixes the TIP4P to have the correct setup. Parmed rewriting for TIP4P, is a good place to see how the it should be setup as it does what we want, but we also need to exclude things that the parmed writer does. This is how you can see what it does:
The final gromacs output for TIP4P will be attached for both the 'flexible and 'rigid' TIP4P model (see attachments in this issue): I am not sure what all tests you want to include so I will leave it at this, unless you want me to push a PR This fixes the issue with not loading Dummy atoms or _CH3 (i.e., beads) to be written in the GMSO GROMACS .top writer:
was this (basically remove the "GMSOError" from them:
|
I am attaching a validated tip4p-ew topology here for both the 'flexible' and 'rigid' TIP4P models. From talking with @dyukovsm , the GROMACS manual says to include or do it a different way. However, @dyukovsm has tested this with Jeff and found that the below produces the correct results, not what the GROMACS manual does. @dyukovsm is creating and issue with GROMACS on this topic The 'rigid' TIP4P :
'flexible' TIP4P = Removing the below section from the 'rigid' TIP4P:
|
Attached is a mol2 and GMSO FF to recreate and test this |
python script write_gmx_tip4p.py reads TIP4.mol2 and using foyer reads TIP4P-2005.xml, and writes the UNCONSTRAINED_init.top file. It's pretty dirty and didn't have options for constraints (that I know of), so I read the UNCONSTRAINED_init.top with parmed, save it suing parmed as IFNDEF_init.top, and copy the file using native python text editor without ifndef stuff, because those seem to not run correctly. |
Thanks for all this info @bc118 @dyukovsm! This is really helpful having specific files and examples to work with when writing unit tests. I would say because the various water methods are so ubiquitous and requested for, let's make some changes in #771 for handling this case specifically, instead of a general method for non-element rigid body virtual sites. On that note, there are two things we need to be able to handle in that PR.
Again, these solutions are bandaids. Ideally this information is entirely contained in the xml file. So we'll need methods to extract a virtual site, calculate the general parameters, and port that information to different writers. Again doable, but will need an overhaul of the xml formatting that can happen at a later date. |
Current GROMACS writer didn't take into the case of system with non-element site. This leads to a wide range of errors that may not be obvious to user. The method need to be revised to take those into account + add more unit tests.
The text was updated successfully, but these errors were encountered: