openforcefield/smarty

Discussing the importance of 3D structure and stereochemistry

Opened this issue · 5 comments

In issue #223 I introduced concerns about lacking 3-dimensional structures. The actual issue is that when you do a SMARTS or SMIRKS search on molecules without specified stereochemistry it complains with a warning (not an error) such as the one shown below.

Warning: OE3DToAtomStereo is unable to perceive atom stereo from a flat geometry on atom 7 of molecule 'MiniDrugBank_0'
Warning: OE3DToAtomStereo had a problem during OEMolToSmiles when writing 'MiniDrugBank_0'

It seems to be an issue with ambiguous stereochemistry and not just 3D coordinates. Although if it has 3D coordinates shouldn't that take care of the stereochemistry? Should we be checking for coordinates or specified stereochemistry? What tools is that important for?

If you have 3D coordinates, you also have the stereochemistry. So, it's sufficient to just check that the coordinates are 3D (at least within the OpenEye tools, this means you have everything you need...).

I'm not aware of specific "tools" where this is a problem, but, as I see it, it's a workflow issue -- if you put together a workflow that generates a molecule from some source, then tries to assign force field parameters and use it in a simulation, it's not going to make any sense to do so if the molecule isn't 3D. Specific places where this should fail:
a) Attempting to assign parameters via smarty.forcefield to a molecule without a 3D geometry should fail
b) Attempting to label parameters via the labeler in smarty.forcefield for a molecule without a 3D geometry should fail
c) Possibly, running SMARTY or SMIRKY on a molecule without a 3D geometry should fail? Presumably one can use chirality in SMARTS/SMIRKS (??) so 3D presumably should be needed first...

Also, charging molecules that don't have 3D geometries should fail, but that's basically covered under (a) and (b).

Basically, what I'm saying is that people will try to put molecules in from all sorts of origins, with and without 3D geometries, and we should stop them from shoving them through without 3D geometries, or what they will get later will make no sense and waste a lot of time.

@bannanc - did that answer your question? Was there a specific problem we need to solve? Perhaps we should be updating the code to check for 3D coordinates before proceeding?

@davidlmobley
Yes, that answers my question, I think having the forcefield tools check for 3D coordinates seems the best option. SMIRKY uses the same tools so it would fail if there are no 3D coordinates.

Did we find a way to check for 3D coordinates with openeye? I was google searching for a way to do it and this was about the 4th result.