User b7aa615db3
09-08-2005 21:37:00
The table that gives examples between EXACT and PERFECT searches on this[1] page says the the following should be a hit for EXACT but not PERFECT. The EXACT match doesn't hit for me. Should it, or is the documentation inaccurate? I'm using jcsearch 3.0.10.
jcsearch -t:e -s "C\C=C\C(C)O" -q "C\C=C/C(C)O"
[1]
http://www.chemaxon.com/jchem/doc/user/Query.html#searchtypes
ChemAxon a3d59b832c
10-08-2005 14:38:09
Actually the table is meant to be used with an mrv or molfile query.
The corresponding smarts search would be:
Code: |
$ jcsearch -t:e -s "C\C=C\C(C)O" -q "[#6][#6]=[#6][#6]([#6])[#8]"
C\C=C\C(C)O |
or SMILES: Code: |
$ jcsearch -t:e -s "C\C=C\C(C)O" -q "CC=CC(C)O{smiles:}"
C\C=C\C(C)O |
(Both of them match.)
Background:
In MDL terminology the double bond stereo information is only considered when the double bond has a stereo search flag. (It is also called stereo care flag, and is depicted as a square on the double bond.) I guess this was introduced to avoid unintentional stereo searching. (In the MDL system you draw the query, so the query inherently will hold an information about cis/trans stereochemistry based on the coordinates of the query atoms.)
On the other hand, in the Daylight systems, SMILES/SMARTS queries do not have coordinates, so the search always considers the cis/trans features of the query if specified.
As the ChemAxon searching tries to be compatible with both systems, the above behavior corresponds to the searching with setDoubleBondStereoMatchingMode(SearchConstants.DBS_MARKED) (jcsearch option: --doubleBondStereo:M). This means that the behavior depends on the format of the query.
This option can also be set to DBS_NONE (ignore all double bonds, --doubleBondStereo:N) and DBS_ALL (consider all double bonds, not just the flagged ones, --doubleBondStereo:A).
See the relevant sections of the query guide:
http://www.chemaxon.com/jchem/doc/user/Query.html#cisTrans
http://www.chemaxon.com/jchem/doc/user/Query.html#daylMDLDiff
All the best,
Szabolcs