Result is empty for both substrates.
String smirks = "[#6:3]-[#8:15]-[c;R:11]1[c:12](-[#8:2]([H]))[c:7](-[#8:1]([H]))[c;R:8]([#1,#6,#9,#17,#35,#53;A:4])[c;R:9](-[!#16:6])[c;R:10]1-[!#8!#16:5]>>[!#16:6]\\[#6:9](=[#6:10](/[!#8!#16:5])-[#6:11](-[#8:15])=O)-[#6:8]([#1,#6,#9,#17,#35,#53;A:4])-[#6:7](=[O:1])-[#6:12](-[#8-:2])=O.[#6:3]-[#8]";
String smi1 = "COC1=C2C=CC=CC2=CC(=C1O)O";
String smi2 = "C1=CC2=CC(=C(C3=C2C(=C1)CC(=O)O3)O)O";
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:
rule3743
u50144
u137948
The problem is due to the SMIRKS itself.
The reaction is not applicable for this target substarte "COC1=C2C=CC=CC2=CC(=C1O)O" since it contains two fuzed aromatic rings, but the smirk defines two substritients to the atomatic ring with single not atomatic bond:
(-[!#16:6])
-[!#8!#16:5]
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 aromatic cycle
Solution:
Use insted of '-' bond deafult bond (e.g. nothing: CC instead of C-C) which means single or atomatic bond:
([!#16:6])
[!#8!#16:5]
One working version of the smirks:
Related
Bugs:
#8Last edit: Nikolay Kochev 2016-06-27
Fixed in 3.0.3-SNAPSHOT latest revision 7696