Skip to content
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

Possible mis-ordering in carbonyl bond parameters #62

Closed
bannanc opened this issue Nov 9, 2017 · 11 comments
Closed

Possible mis-ordering in carbonyl bond parameters #62

bannanc opened this issue Nov 9, 2017 · 11 comments
Assignees

Comments

@bannanc
Copy link
Collaborator

bannanc commented Nov 9, 2017

Here is an e-mail correspondence considering how parameters are assigned to C=O bonds in protonated carboxylic acids compared to carboxylate groups.

Hi Chris,
Does the “[#6X3:1](~[#8X1])~[#8X1:2]” string represent the C-O bond in carboxylic group? Also is "[#6X3:1]=[#8X1+0,#8X2+1:2]" the corresponding string for the carbonyl bond C=O?
If so, it seems to me that using your paradigm “last wins” the first string should go after the second one, otherwise the parameters of one C-O bond will be overwritten by the parameters for C=O bond, and the carboxylic group will be asymmetric.
Do you agree?
Stan

Hi Stan,
The first string “[#6X3:1](~[#8X1])~[#8X1:2]” os for a carboxylate and the second "[#6X3:1]=[#8X1+0,#8X2+1:2]" is for a carbonyl group or a protonated carbonyl group.
You are right the second would overwrite the carboxylate C=O of the first, and reorodering it like you say would remove that bad behavior. You are probably right... I would like to try out your suggestion and see if it is better everywhere.
Christopher

David and I agreed that this seemed reasonable. Note, this sparked two discussions one for the parameters for carboxylate groups and how we evaluate changes to a SMIRNOFF file. This issue will address the former and the latter will be addressed in its own issue (potentially in the openforcefield repository as that is a test we will want for any SMIRNOFF formatted force field now or in the future).

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

I had a memory of us making changes to this section before, but I think it was pull request #11 which addressed the difference is C-O bonds in carboxylic acids and esters.

@davidlmobley
Copy link
Collaborator

This also raises a larger question of how we test a change like this. Any thoughts? It seems to me we might ultimately be interested in two levels of tests:
a) Scan a set of molecules and see which molecules it affects and check (manually?) they are those we expect it to affect
b) Repeat our validation work for the affected compounds (e.g. dielectric constants, densities, hydration free energies)

Thoughts?

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

@davidlmobley

I agree we need to also discuss that part, I was going to write a separate issue for how to validate changes.

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

Here's some details as a part of the carboxylate groups:

Here is the section that is relevant part of the smirnoffishFrcmod.parm99Frosst.txt file:

[#6X3:1](=[#8X1])-[#8X2H0:2]  320.0    1.340   Frosst C_-OS force ff94 CT-OS ; R0 xray. SMIRKS updated by DLM to not match C_-OH
[#6:1]=[#8X1+0,#8X2+1:2]      570.0  1.229   parm99 carbonyl oxygen
[#6X3:1](~[#8X1])~[#8X1:2]      656.0  1.250   parm99 carboxylate C~O

This looks like it is in the correct order, as Stan noted [#6X3:1](~[#8X1])~[#8X1:2] should be after [#6:1]=[#8X1+0,#8X2+1:2] so the two C~O bonds in a carboxylate group will be treated identically.

Here are the corresponding lines in smirnoff99frosst.ffxml:

    <Bond smirks="[#6X3:1](=[#8X1])-[#8X2H0:2]" id="b20" k="640.0" length="1.340"/>
    <Bond smirks="[#6:1]=[#8X1+0,#8X2+1:2]" id="b21" k="1140.0" length="1.229"/>
    <Bond smirks="[#6X3:1](~[#8X1])~[#8X1:2]" id="b22" k="1312.0" length="1.250"/>

@davidlmobley and @cbayly13 could you confirm that is this the order we want things in? I'll run a couple of example molecules, but I think this is what it should be.

@davidlmobley
Copy link
Collaborator

I'm slightly confused. So you're saying that the order is already correct? So Stan may have been looking at an outdated file with incorrect order?

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

I haven't looked too far back, but yes, I think the order is already correct (and in the order Stan suggested it should be).

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

Since I'm looking at this section, I think [#6X3:1](=[#8X1])-[#8X2H0:2] should be [#6X3:1](=[#8])-[#8X2H0:2] or [#6X3:1](=[#8X1+0,#8X2+1])-[#8X2H0:2] so that it would match the corresponding bond if the carbonyl oxygen was protonated. @cbayly13 do you agree?

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

I'm trying to find when this was changed:

Order was incorrect when this repository was made (first commit)

It was updated in PR #43 where there were a lot of changes

You can see our full discussion on this same topic in issue #38!

@davidlmobley
Copy link
Collaborator

Haha, excellent, so we fixed it before Stan caught it -- basically just an outdated version of the file -- which means all the validation work was done with the correct FF. :)

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 9, 2017

yep, I would like to think about the other parameter I brought up:

Since I'm looking at this section, I think [#6X3:1](=[#8X1])-[#8X2H0:2] should be [#6X3:1](=[#8])-[#8X2H0:2] or [#6X3:1](=[#8X1+0,#8X2+1])-[#8X2H0:2] so that it would match the corresponding bond if the carbonyl oxygen was protonated. @cbayly13 do you agree?

It is definitely a corner case, but I think our general rule is to have the earlier SMIRKS patterns as general as they can be.

@bannanc
Copy link
Collaborator Author

bannanc commented Nov 18, 2017

I'm going to close this since the ordering was fixed and put my smaller protonated carbonyl question in its own issue.

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

No branches or pull requests

2 participants