Menu

#91 smirks reaction fails

Stereo SMIRKS
closed-fixed
None
5
2016-06-27
2016-03-24
No

results are empty

String smirks = "[#8:8]([H])-[c:2]1[c:1](-[#8:7]([H]))[c;R]([c;R:5](-[!#8,#1:11])[c;R:4](-[!#8,#1:10])[c;R:3]1-[!#8,#1:9])S([#8])(=O)=O>>[!#8,#1:11]\\\\\\[#6:5]=[#6:4](///[!#8,#1:10])-[#6:3](-[!#8,#1:9])-[#6:2](=[O:8])-[#6:1](-[#8-])=[O:7]";
String smi = "C1=C(C=CC(=C1)C2=NC3=C(C(=C(C=C3N2)S(=O)(=O)[O-])O)O)C4=NC5=C(C=C(C=C5S(=O)(=O)[O-])S(=O)(=O)[O-])N4";

Examples are also provided as short, self-contained Java Unit Test:
https://github.com/mguetlein/TestAmbitSmarts/blob/master/src/test/java/org/kramerlab/test/TestAmbit.java

envipath ids:
rule2793
u26103

Related

Bugs: #8

Discussion

  • Nina Jeliazkova

    Nina Jeliazkova - 2016-03-24
    • assigned_to: Nikolay Kochev
    • Group: SMIRKS --> Stereo SMIRKS
     
  • Nikolay Kochev

    Nikolay Kochev - 2016-06-23

    The stereo transfrormation issue is already fixed in Ambit-smarts library.

    However there is another problem with the smirks.
    The target smirks does not match the double cycle aromatic system beacuse of the following branchings (substituents):
    (-[!#8,#1:11])
    (-[!#8,#1:10])
    -[!#8,#1:9]

    According to the official SMARTS/SMIRKS syntax by default supported in Ambit,
    bond '-' means single NON AROMATIC and that is why these substituents does not match the aromatic substituent because the aromatic cycle is fuzed to another atomatic cycle

    Working solutions:

    Solution (1)
    Use insted of '-' bond deafult bond (e.g. nothing: CC instead of C-C) which means single or atomatic bond:
    ([!#8,#1:11])
    ([!#8,#1:10])
    [!#8,#1:9]

    Here is the correct smirks

    "[#8:8]([H])-[c:2]1[c:1](-[#8:7]([H]))[c;R]([c;R:5]([!#8,#1:11])[c;R:4]([!#8,#1:10])[c;R:3]1[!#8,#1:9])S([#8])(=O)=O>>[!#8,#1:11]\\\\\\[#6:5]=[#6:4](///[!#8,#1:10])-[#6:3](-[!#8,#1:9])-[#6:2](=[O:8])-[#6:1](-[#8-])=[O:7]"
    

    Solution(2)
    Activate flags:
    smrkMan.getSmartsParser().mSupportSingleBondAromaticityNotSpecified = true;
    smrkMan.getSmartsParser().mSupportDoubleBondAromaticityNotSpecified = true;

    By default these flags are 'false'. Making them 'true', the single bond '-' and double bond '=' will match aromatic systems as well as aliphatic systems.

    Generally I do not reccomend the second solution (although it seems handy) because it changes the default smarts/smirks syntax.
    And if using this approach, apply these flags only for specific reactions. Not for all reactions.

     

    Related

    Bugs: #8


    Last edit: Nikolay Kochev 2016-06-25
  • Nina Jeliazkova

    Nina Jeliazkova - 2016-06-27
    • status: open --> closed-fixed
     

Log in to post a comment.