openforcefield / smirnoff99Frosst

A general small molecule force field descended from AMBER99 and parm@Frosst, available in the SMIRNOFF format
Creative Commons Attribution 4.0 International
28 stars 9 forks source link

Discussion on odd C~O bonds like Carbon Dioxide and Carbon Monoxide #37

Closed bannanc closed 7 years ago

bannanc commented 7 years ago

The only bond getting a generic (in my current pull request) on the filtered drugbank set is a C=O in carbon dioxide.

188052f6-f48a-424a-a9fc-30082cfad2db

All of the C=O bonds specific [#6X3] right now. Carbon dioxide is an odd corner case, I'm not sure if we should actually cover this.

davidlmobley commented 7 years ago

Can you see whether GAFF/GAFF2 cover it, @bannanc ?

On the one hand, it seems like we should cover it, because "why not?" but on the other, I'm a little worried because I don't like either of the two most logical routes forward here: a) Assign a specific CO2 bond b) Modify the generic C=O so it uses [#6] rather than [#6X3] The former seems like being too specific, whereas I worry the latter might break something else.

bannanc commented 7 years ago

Can you make C=C=O bonds?

On a similar issue there is also a C#O in the larger drugbank set (carbon monoxide) c52d9f6b-61ec-4bd7-9c5b-6aaf69a6d9c9

The parameter usage takes 15 minutes to run, I'm waiting to get the gaff2 types to make it easier to look up what it would assign.

This doesn't seem to exist in GAFF2 though, so we should probably skip it.

bannanc commented 7 years ago

GAFF2 for carbon dioxide:

c1-o   794.98   1.172             SOURCE2_SOURCE5      31    0.0068

c1 is an sp carbon

GAFF2 for the other C=O bonds:

c -o   652.57   1.218             SOURCE1_SOURCE5   27083    0.0110

c is specifically carbons in carbonyl groups

This is the only carbonyl group we have right now:

[#6X3:1]=[#8X1+0,#8X2+1:2]      570.0  1.229   parm99 carbonyl oxygen

This seems like a very different force constant anyway, so I'm not sure we should have anything specific here

davidlmobley commented 7 years ago

@bannanc - I think skipping carbon monoxide for now makes sense: No need to introduce parameter complications for just one molecule (not covered by GAFF2 anyway).

In terms of carbon dioxide, you wrote:

This seems like a very different force constant anyway, so I'm not sure we should have anything specific here

I'm not quite sure what you mean -- does "I'm not sure we should have anything specific here" mean you think we should skip carbon dioxide, or lump it together with carbonyls (by generalizing the SMIRKS for carbonyls)?

I'm still of mixed opinions here. The idea of adding specialized parameters to cover what can only over be a single molecule does not appeal to me very much. So if we cover it, I'm inclined to say we should lump it together with more general parameters. But I could be convinced to just not cover it.

bannanc commented 7 years ago

We discussed this in person, I think it makes sense to skip carbon monoxide and make the first carbonyl group more generic with [#6:1]=[#8X1:2] I'll make sure it is the first carbonyl coverage so that it doesn't over write anything.

bannanc commented 7 years ago

carbon monoxide C#O is being left out, others added in pull request #43