From: Craig J. <cj...@em...> - 2014-10-21 20:07:10
|
On Tue, Oct 21, 2014 at 6:12 AM, John May <joh...@gm...> wrote: > > That's all I know about that key definition. > > Likewise - I’ve seen in a few places but not aware if it’s truly correct. > > Extending OB SMARTS to handle component level grouping shouldn’t be too > much work. The parser just needs to label the components of the pattern. > The matcher can then check this post match (same as stereochem is > implemented) by labelling the connected components. There is a design flaw way down deep in the SMARTS parser that makes it segfault when you give it a dot-disconnected SMARTS of any sort. My recollection is that when I discovered this bug, it was so fundamental to the matching algorithm that fixing it required a pretty major rewrite. So we decided to just reject SMARTS with dots in them until someone had lots of time to rewrite the SMARTS matching algorithm. As a crude and very dissatisfying work-around, I recently wrote a wrapper that breaks a SMARTS apart, does individual matches, then uses bit vectors to find non-overlapping results. It works but is very slow. Craig |