foyer icon indicating copy to clipboard operation
foyer copied to clipboard

double bonds

Open richardjgowers opened this issue 6 years ago • 2 comments

So adding double bonds (ie C=O)

I guess this is low priority because by defining the coordination of atoms this is implicit?

If we wanted to add this, from what I can see:

  • add rules to the parser so it can expect a bond symbol in branches
  • add labels to edges in the nx.Graph denoting single/double/etc
  • make sure the rules check for degree of bonds

And I'm guessing these rules might have to be "soft" so that molecules with single bonds everywhere (even where double is appropriate) still get typed. So something like how types give higher precedence, bondedness should do similar?

richardjgowers avatar Dec 14 '18 21:12 richardjgowers

I guess UA systems are the case in which this is relevant? In atomistic systems we implicitly do this based on hybridization (3 vs 4 bonds to a carbon, etc.) and don't really have the concept of single vs double vs etc. bonds. In the example of a UA carbonyl, a string like [O;X1]C would be able to type it but would have trouble deciding if it's a carbonyl or an alcohol.

Do you need different atomtyping rules for double and single bonds, apply different bond parameters, or both? We don't support it yet (#63) but SMARTS has the concept of bond types.

Something else to think about is that the input parmed.Structure/mb.Compound/OpenMM equivalent would needs its bonds to be labelled as double bonds. I think ParmEd and OpenMM support this but mBuild may not.

mattwthompson avatar Dec 14 '18 21:12 mattwthompson

Yeah I’m playing with ua. I think I can get away without for now if I always specify number of bonds, but the smarts are less intuitive imho. More just wanted to start the discussion and roadmap what would need doing. On Fri, Dec 14, 2018 at 3:49 PM, Matt Thompson [email protected] wrote:

I guess UA systems are the case in which this is relevant? In atomistic systems we implicitly do this based on hybridization (3 vs 4 bonds to a carbon, etc.) and don't really have the concept of single vs double vs etc. bonds. In the example of a UA carbonyl, a string like [O;X1]C would be able to type it but would have trouble deciding if it's a carbonyl or an alcohol.

Do you need different atomtyping rules for double and single bonds, apply different bond parameters, or both? We don't support it yet (#63 https://github.com/mosdef-hub/foyer/issues/63) but SMARTS has the concept of bond types.

Something else to think about is that the input parmed.Structure/ mb.Compound/OpenMM equivalent would needs its bonds to be labelled as double bonds. I think ParmEd and OpenMM support this but mBuild may not.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mosdef-hub/foyer/issues/196#issuecomment-447489411, or mute the thread https://github.com/notifications/unsubscribe-auth/AI0jByVrJFtZTc31Ol87f2GycvuCydblks5u5Bz9gaJpZM4ZUTSX .

richardjgowers avatar Dec 16 '18 19:12 richardjgowers