String smirks_4297 = `[#8:4]-,=[#6;D3R0:1](-[#6:2])!@-[#6:3]-[#6:8](=[O:10])-[#6:7](-[#8-:6])=[O:9]>>[#6:3]-[#6:8](=[O:10])-[#6:7](-[#8-:6])=[O:9].[#6:2]-[#6:1](-[#8-])=[O:4]`; String smi_c1248 = "OC(CCl)CC(=O)C([O-])=O";
Expected: "CC(=O)C(=O)[O-]" and "C(C=O)Cl"
When removing the D3 from the smirks it works.
The smarts [#8]-,=[#6;D3R0] does match the smiles with CDK (tried with http://cdkdepict-openchem.rhcloud.com/ )
In SMARTS syntax: D3 primitive matches an atom that has 3 explicit connections.
If the mololecule is with explicit H atoms and the carbons atom is of sp3 type then it will have 4 explicit connections (including the one explicit H atom) and it will not be matched so the result is correct actually.
Two possoble solutions to this case:
(1) Target molecule has to be with impplicit H atoms (Needed to check is other reaction artefacts appear due to implicit H atoms)
(2) Use [#6;D3,D4H1;R0:1] insted of original atom expression [#6;D3R0:1]
This way the new expresion logic takes both cases when there is H atoms neighbour and there is not one
Buy the way [#6;D3,D4H1;R0:1] is logically equivalent to [#6;D3H0,D3H1,D4H1;R0:1]
The latter two expressions handle the situation regardless of H atoms representation (explicit or implicit).
Last edit: Nikolay Kochev 2016-11-14
just for completion
the second expected product is
C(C(=O)[O-])Cl
this smirks should map possible Hs on the left to remove them
otherwhise the product will be
C([CH](=O)[O-])Cl
instead ofC(C(=O)[O-])Cl
Last edit: Martin Gütlein 2016-11-16