E/Z isomers representation

User 3af65074b3

21-10-2010 15:28:05

[H]\C(C)=C(\[H])C and [H]\C(C)=C(/[H])C are the SMARTS representation for E/Z isomers of alkene by Chemaxon. But when i use this in PLP protocol for $(chemtermquery), it is not able to recognize the SMARTS.


I tried this [CX3:1](\[CX4:2])([H])=[CX3:3](/[H])[CX4:4] but again no luck. The error i am getting is 'found "[" after "\"'


Both of these works in chemaxon but not in PLP. Is there any other way of representing the E/Z isomer besides use of \ and / slashes.

ChemAxon 9c0afc9aaf

25-10-2010 15:17:17

Hi,


Could you clarify if you are using the ChemAxon Component collection for PLP, and exactly which component you are having problems with / which parameter are you trying to set.


Also, please let us know the versions:


Components -> ChemAxon -> Utilities -> Show ChemAxon Environment


Please paste the output of this protocol here.


Best regards,


Szilard

User 3af65074b3

25-10-2010 16:51:12

Yes I am using chemaxon component (v5.3.8) for PLP (v8.0.1) and I am using ‘Filtering
by Chemaxon Chemical Terms’ component. I am trying to use SMARTS defined to search
the database of compounds which contains cis and trans isomers. The MarvinSketch can read the same SMARTS and Jchem is able to
filter compounds based on them but 'Chemaxon Chemical Terms
component' in PLP gives error. The error that i get using the protocol is:


used SMARTS: [H]\[CX3:1]([CX4:2])=[CX3:3](\[H])[CX4:4]


[H]\[CX3:1]([CX4:2])=[CX3:3](/[H])[CX4:4]     OR     [CX3:1](\[CX4:2])([H])=[CX3:3](/[H])[CX4:4]


Lexical error at line 1, column 17.  Encountered: "C" (67), after : "\"[CX3:1](\\"
JChem version : 5.3.6
Component collection version : 1.7_j53
JVM: Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM 1.6.0_01
Memory: 227.0 MB maximum 24.0 MB total 11.0 MB free
OS: amd64 Linux 2.6.18-92.1.18.el5
Exception ID: E97459230
Current input structure:
null
Please find detailed report in log file: "/...
chemaxon.nfunk.jep.TokenMgrError: Lexical error at line 1, column 17. Encountered: "C" (67), after : "\"[CX3:1](\\"
at chemaxon.nfunk.jep.ParserTokenManager.getNextToken(Unknown Source)
at chemaxon.nfunk.jep.Parser.getToken(Unknown Source)
at chemaxon.nfunk.jep.Parser.jj_3_4(Unknown Source)
at chemaxon.nfunk.jep.Parser.jj_3R_23(Unknown Source)
at chemaxon.nfunk.jep.Parser.jj_3R_11(Unknown Source)
at chemaxon.nfunk.jep.Parser.jj_3_10(Unknown Source)
at chemaxon.nfunk.jep.Parser.jj_2_10(Unknown Source)
at chemaxon.nfunk.jep.Parser.ArgumentList(Unknown Source)
at chemaxon.nfunk.jep.Parser.Function(Unknown Source)
at chemaxon.nfunk.jep.Parser.UnaryExpressionNotPlusMinus(Unknown Source)
at chemaxon.nfunk.jep.Parser.PowerExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.UnaryExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.MultiplicativeExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.AdditiveExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.RelationalExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.EqualExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.AndExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.OrExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.MultipleExpression(Unknown Source)
at chemaxon.nfunk.jep.Parser.Expression(Unknown Source)
at chemaxon.nfunk.jep.Parser.Start(Unknown Source)
at chemaxon.nfunk.jep.Parser.parseStream(Unknown Source)
at chemaxon.nfunk.jep.JEP.parseExpression(Unknown Source)
at chemaxon.jep.ChemJEP.compile(Unknown Source)
at chemaxon.jep.Evaluator.compile(Unknown Source)
at chemaxon.jep.Evaluator.compile(Unknown Source)
at chemaxon.pp.ChemicalTermsFilter.onInitializeBody(ChemicalTermsFilter.java:22)
at chemaxon.pp.ChemAxonComponent.onInitialize(ChemAxonComponent.java:40)
at com.scitegic.pilot.Pilot.callOnInitialize(Pilot.java:280)
CComponentJavaPlugin::onInitialize: Pipeline Pilot exception rethrown
-> ChemAxon Chemical Terms Filter (Chemaxon Chemical Terms Filter) - error during Initialization phase
CProtocolBaseImpl::PassDataDownstream: Pipeline Pilot exception rethrown
CProtocolRtc::onProcess: Pipeline Pilot exception rethrown
CProtocol::onProcess: Pipeline Pilot exception rethrown
-> Subprotocol 3 (Subprotocol) - error during Data Record Processing phase
CProtocolStd::onProcess: Pipeline Pilot exception rethrown
CProtocol::onProcess: Pipeline Pilot exception rethrown
-> Subprotocol 5 (Subprotocol) - error during Data Record Processing phase
CProtocolStd::onProcess: Pipeline Pilot exception rethrown
CProtocol::onProcess: Pipeline Pilot exception rethrown
Protocol Functional Group Matching ACD Individual Reactant Definitions 1a, user : Pipeline Pilot exception caught
Protocol Functional Group Matching ACD Individual Reactant Definitions 1a, user : Protocol failed: Pipeline Pilot error
Server OS: Linux pilot 2.6.18-92.1.18.el5 #1 SMP Wed Nov 5 09:00:19 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

ChemAxon 9c0afc9aaf

26-10-2010 22:26:44

Hi,


Thank you for the more detailed information and the bug report.


The problem is not specific to the Pipeline Pilot component, but rather to the Evaluator API, which evaluates Chemical Terms expressions.


For some reason the parser senses an error when encountering "\" instead of passing it "blindly" to SMARTS import as it should.


My colleagues will investigate this problem in detail, and let you know if we have a bugfix.


Unfortunately one cannot specify double bond stereo in other ways. (If all you have is "\" you can change all to "/" since all is relative, but no solution when they are mixed)


Also we have accidentally found that using "\\" instead of "\" seemingly solves the problem, e.g.:


match("[H]\\C(C)=C(\\[H])C")


HOWEVER the SMARTS is actually interpreted with "\\" which may change the meaning of the query depending on the structure (one can check in MarvinSketch importing as SMARTS).


Meanwhile we have also increased the priority of implementing a structure search component for PP which is more naturally suitable for this kind of task. It will be able to perform graph search without a DB and can easily use any format as query.


Best regards,


Szilard 

User 3af65074b3

25-01-2011 20:32:22

'My colleagues will investigate this problem in detail, and let you know if we have a bugfix.'


Is it fixed now? Please update.

ChemAxon e08c317633

26-01-2011 12:39:04

Hi,


In fact it's not a bug. Escape characters have to be used in strings in CT.


So this is the correct syntax:


$ evaluate -e 'match("[H]\\C(C)=C(\\[H])C")' "[H]\C(C)=C(\[H])C"
1

$ evaluate -e 'match("[H]\\C(C)=C(\\[H])C")' "[H]\C(C)=C(/[H])C"
0

I used Chemical Terms Evaluator in the example.


Zsolt

User 3af65074b3

26-01-2011 15:59:01

I agree. i saw it works for ChemTerm Evaluator but in Scitegic PLPilot's ChemAxon Chemical Terms Filter 'chemtermquery' it gives me error. When used [H]\\C(C)=C(\\[H])C for E Alkene, the error is:


Lexical error at line 1, column 12.  Encountered: "C" (67), after : "\"[H]\\"
JChem version : 5.3.6
Component collection version : 1.7_j53
JVM: Sun Microsystems Inc.  Java HotSpot(TM) 64-Bit Server VM  1.6.0_01
Memory:  227.0 MB maximum  21.0 MB total  15.0 MB free
OS: amd64 Linux 2.6.18-92.1.18.el5
Exception ID: E95232187
Current input structure:
null
Please find detailed report in log file: log.txt"
chemaxon.nfunk.jep.TokenMgrError: Lexical error at line 1, column 12.  Encountered: "C" (67), after : "\"[H]\\"

ChemAxon 9c0afc9aaf

26-01-2011 18:02:37

Hi,


 


As a general remark: please always copy the full stack trace.


I have set up an environment (PP, JChem and component collection) and tried the following expression in ChemAxon Chemical Terms Filter:


match("[H]\\C(C)=C(\\[H])C")


It runs without an error for me.


Could you paste the exact string you have used for the filter expression ?


Thank you,


Szilard

User 3af65074b3

26-01-2011 19:08:46

I also tried the same string as provided.


EAlkene    [H]\\C(C)=C(\\[H])C
ZAlkene    [H]\\C(C)=C(//[H])C


Is there some version update i have to do. Others i have tried (same error as there isn't any difference) are
EAlkene    [H]\\C([CX3])=C(\\[H])[CX4]
ZAlkene    [H]\\C([CX3])=C(//[H])[CX4]


and


[#6X3](\\[#6])=[#6X3:3](//[#6:6])


The full error detail :


Lexical error at line 1, column 12.  Encountered: "C" (67), after : "\"[H]\\"
JChem version : 5.3.6
Component collection version : 1.7_j53
JVM: Sun Microsystems Inc.  Java HotSpot(TM) 64-Bit Server VM  1.6.0_01
Memory:  227.0 MB maximum  21.0 MB total  15.0 MB free
OS: amd64 Linux 2.6.18-92.1.18.el5
Exception ID: E95232187
Current input structure:
null
Please find detailed report in log file: ".chemaxon/logs/pp_error_2011_01_26.txt"
chemaxon.nfunk.jep.TokenMgrError: Lexical error at line 1, column 12.  Encountered: "C" (67), after : "\"[H]\\"
    at chemaxon.nfunk.jep.ParserTokenManager.getNextToken(Unknown Source)
    at chemaxon.nfunk.jep.Parser.getToken(Unknown Source)
    at chemaxon.nfunk.jep.Parser.jj_3_4(Unknown Source)
    at chemaxon.nfunk.jep.Parser.jj_3R_23(Unknown Source)
    at chemaxon.nfunk.jep.Parser.jj_3R_11(Unknown Source)
    at chemaxon.nfunk.jep.Parser.jj_3_10(Unknown Source)
    at chemaxon.nfunk.jep.Parser.jj_2_10(Unknown Source)
    at chemaxon.nfunk.jep.Parser.ArgumentList(Unknown Source)
    at chemaxon.nfunk.jep.Parser.Function(Unknown Source)
    at chemaxon.nfunk.jep.Parser.UnaryExpressionNotPlusMinus(Unknown Source)
    at chemaxon.nfunk.jep.Parser.PowerExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.UnaryExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.MultiplicativeExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.AdditiveExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.RelationalExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.EqualExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.AndExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.OrExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.MultipleExpression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.Expression(Unknown Source)
    at chemaxon.nfunk.jep.Parser.Start(Unknown Source)
    at chemaxon.nfunk.jep.Parser.parseStream(Unknown Source)
    at chemaxon.nfunk.jep.JEP.parseExpression(Unknown Source)
    at chemaxon.jep.ChemJEP.compile(Unknown Source)

ChemAxon 9c0afc9aaf

26-01-2011 19:50:15

Hi,


I'm afraid we still could not reproduce the problem.


When using the string:


match("[H]\\C(C)=C(\\[H])C")

everything is fine.


Only when using unescaped single "\" at first position:


match("[H]\C(C)=C(\\[H])C")

we get the very same error message you get.


The only difference is out test / development servers run on Windows at the moment, but it should not matter at all. (we might try later on Linux as well)


As a random tip you might want to try single quotes:


match('[H]\\C(C)=C(\\[H])C')

Please also attach (or send us) the file (or whatever is mentioned in the exception text, the file name changes daily):


"/nethome/bbhhatarai/.chemaxon/logs/pp_error_2011_01_26.txt"


 


Best,


 


Szilard

ChemAxon 9c0afc9aaf

27-01-2011 18:41:49

The was being handled off-line.


Looks like our PP component (ChemAxon Chemical Terms Filter) is getting an incorrect expression as parameter inside a protocol (generated): apparently there is nothing wrong with the component itself.