Hi George et al,

flexmatch(... 'all') is the most strict exact match that the Symyx/Accelrys cartridge has. You can relax the matching behavior to varying degrees by passing it different options, e.g. using 'tau' instead of 'all' will make the identity check tautomer-agnostic (to the extent that the cartridge will perceive tautomers "correctly" - an interesting discussion topic in itself).

The various options to flexmatch() are well documented in the Accelrys documentation for the cartridge, but I don't know if that is publicly available.

The short answer in my opinion: Yes, @= should be the equivalent of flexmatch(m1, m2, 'all'). To emulate flexmatch(..., 'all') with rdkit, I find a small gotcha with regards to chiral matching:

-- Clearly not identical.
postgres=# select mol('CCC') @= mol('CCF');
 ?column?
----------
 f
(1 row)

-- Clearly identical.
postgres=# select mol('CCC') @= mol('CCC');
 ?column?
----------
 t
(1 row)

-- Ala versus dAla - should *not* be identical ?
postgres=# select mol('C[C@H](N)C(=O)O') @= mol('C[C@@H](N)C(=O)O');
 ?column?
----------
 t
(1 row)

To get the expected behavior of @= you need to turn on chiral matching. Even though the parameter says that is controls SSS behavior it apparently also has an effect on exact matching:

postgres=# set rdkit.do_chiral_sss=true;
SET
-- Ala versus dAla - no longer identical.
postgres=# select mol('C[C@H](N)C(=O)O') @= mol('C[C@@H](N)C(=O)O');
 ?column?
----------
 f
(1 row)

-- Ala versus Ala - phew, identical.
postgres=# select mol('C[C@H](N)C(=O)O') @= mol('C[C@H](N)C(=O)O');
 ?column?
----------
 t
(1 row)

Cheers
-- Jan


On 2014-02-20 13:46, George Papadatos wrote:
Hi there,
Wouldn't that be (at least partly) possible with an exact structure search?

  * @= : returns whether or not two molecules are the same.

Cheers,
George


On 20 February 2014 11:59, Greg Landrum <[email protected] <mailto:[email protected]>> wrote:

    Sounds interesting. Can anyone provide a pointer to a doc with
    more specific info about what this actually does?


    On Thursday, February 20, 2014, Micha? Nowotka <[email protected]
    <mailto:[email protected]>> wrote:

        Hi,

        Symix cartridge defines something called flexmatch - "Finds
        records that are an exact match of the 2D or 3D structure that
        you specify in the query."
        Is there anything similar in RDKit cartridge? I looked into
        documentation and couldn't find this feature.

        Regards,
        Michal Nowotka


    
------------------------------------------------------------------------------
    Managing the Performance of Cloud-Based Applications
    Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
    Read the Whitepaper.
    http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
    _______________________________________________
    Rdkit-discuss mailing list
    [email protected]
    <mailto:[email protected]>
    https://lists.sourceforge.net/lists/listinfo/rdkit-discuss




------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to