Menu

#109 smirks including degree of connections not working

ambit-3.0.3
closed-wont-fix
nobody
smirks (1)
5
2016-11-28
2016-11-07
No
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/ )

see also: https://github.com/mguetlein/TestAmbitSmarts/blob/master/src/test/java/org/kramerlab/test/TestAmbit.java

Related

Bugs: #8

Discussion

  • Nikolay Kochev

    Nikolay Kochev - 2016-11-14

    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
  • Martin Gütlein

    Martin Gütlein - 2016-11-16

    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

    [#8:4]([H,!H])-,=[#6;D3,D4H1;R0:1]([H,!H])(-[#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]
    

    otherwhise the product will be C([CH](=O)[O-])Cl instead of C(C(=O)[O-])Cl

     

    Last edit: Martin Gütlein 2016-11-16
  • Nina Jeliazkova

    Nina Jeliazkova - 2016-11-28
    • status: open --> closed-wont-fix
     

Log in to post a comment.