|
From: Andrew D. <da...@da...> - 2009-03-07 00:14:44
|
On Mar 6, 2009, at 9:29 AM, Andreas Maunz wrote:
>> It's possible to enumerate all maximum common substructure
>> between the two SMARTS
> How can that be done?
"It's possible" means "with some non-trivial programming."
Here's a sketch of how to do it:
- parse the SMARTS into a graph data structure
- apply normalizations so that, for example, [#6] and [C,c] are
the same
(though you really only need to know if a node paring or
edge pairing is valid, so it's not quite that complicated)
(And if you control how the SMARTS are generated, then this
step might not be needed.)
- implement an MCS algorithm on those graphs
I don't think OpenBabel has code that can easily be adapted to
this. OEChem might, but it's a corner I don't know about. I
don't think RDKit nor CDK make it easy either.
Andrew
da...@da...
|