Reactor website crashes!

User 7a4bd58ff0

03-12-2010 03:06:46

I wanted to test Reactor so I went to the ChemAxon reactor webpage: http://www.chemaxon.com/jchem/examples/reactor/jsp/reactants.jsp


I entered Paal-Knorr pyrrole synthesis with "[#1A]N([#1A])CC[C@@H](O)C[C@@H](O)CC(O)=O" as Reactant 0 and "[#6]C([#6])C(=O)C(C(=O)Nc1ccccc1)=C(C(=O)c1ccc(F)cc1)c1ccccc1" as Reactant 1.  The webpage draws pictures for the strings, so that part seems to be working.  I did not change any of the Reactor options but, when I click on the React button, I get the following error.  


What is wrong here?  Should I be able to run this reaction?


 



HTTP Status 500 -




type
Exception report


message


description The
server encountered an internal error () that prevented it from
fulfilling this request.


exception


org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 55 in the jsp file: /examples/reactor/jsp/result.jsp
MoleculeSet cannot be resolved to a type
52: String modformat = format.equalsIgnoreCase("smiles") ? "cxsmiles" : format;
53: int count = Integer.parseInt(request.getParameter("count"));
54: String[] userReactants = new String[count];
55: MoleculeSet[] rsets = new MoleculeSet[count];
56: for (int i=0; i < rsets.length; ++i) {
57: rsets = new MoleculeSet(new MemSetContent());
58: String rstr = request.getParameter("reactant"+i);


An error occurred at line: 55 in the jsp file: /examples/reactor/jsp/result.jsp
MoleculeSet cannot be resolved to a type
52: String modformat = format.equalsIgnoreCase("smiles") ? "cxsmiles" : format;
53: int count = Integer.parseInt(request.getParameter("count"));
54: String[] userReactants = new String[count];
55: MoleculeSet[] rsets = new MoleculeSet[count];
56: for (int i=0; i < rsets.length; ++i) {
57: rsets = new MoleculeSet(new MemSetContent());
58: String rstr = request.getParameter("reactant"+i);


An error occurred at line: 57 in the jsp file: /examples/reactor/jsp/result.jsp
MoleculeSet cannot be resolved to a type
54: String[] userReactants = new String[count];
55: MoleculeSet[] rsets = new MoleculeSet[count];
56: for (int i=0; i < rsets.length; ++i) {
57: rsets = new MoleculeSet(new MemSetContent());
58: String rstr = request.getParameter("reactant"+i);
59: if ((rstr == null) || (rstr.length() == 0)) {
60: throw new ReactionException("No reactant "+i+" is specified.");


An error occurred at line: 57 in the jsp file: /examples/reactor/jsp/result.jsp
MemSetContent cannot be resolved to a type
54: String[] userReactants = new String[count];
55: MoleculeSet[] rsets = new MoleculeSet[count];
56: for (int i=0; i < rsets.length; ++i) {
57: rsets = new MoleculeSet(new MemSetContent());
58: String rstr = request.getParameter("reactant"+i);
59: if ((rstr == null) || (rstr.length() == 0)) {
60: throw new ReactionException("No reactant "+i+" is specified.");


An error occurred at line: 94 in the jsp file: /examples/reactor/jsp/result.jsp
MultiMolSetCounter.MODE_COMBINATORIAL cannot be resolved to a type
91: }
92:
93: int mode = "comb".equalsIgnoreCase(processingMode) ?
94: MultiMolSetCounter.MODE_COMBINATORIAL :
95: MultiMolSetCounter.MODE_SEQUENTIAL;
96:
97: MultiMolSetCounter counter = new MultiMolSetCounter(mode);


An error occurred at line: 95 in the jsp file: /examples/reactor/jsp/result.jsp
MultiMolSetCounter.MODE_SEQUENTIAL cannot be resolved to a type
92:
93: int mode = "comb".equalsIgnoreCase(processingMode) ?
94: MultiMolSetCounter.MODE_COMBINATORIAL :
95: MultiMolSetCounter.MODE_SEQUENTIAL;
96:
97: MultiMolSetCounter counter = new MultiMolSetCounter(mode);
98: counter.init(rsets);


An error occurred at line: 97 in the jsp file: /examples/reactor/jsp/result.jsp
MultiMolSetCounter cannot be resolved to a type
94: MultiMolSetCounter.MODE_COMBINATORIAL :
95: MultiMolSetCounter.MODE_SEQUENTIAL;
96:
97: MultiMolSetCounter counter = new MultiMolSetCounter(mode);
98: counter.init(rsets);
99:
100: int resultCount = 0;


An error occurred at line: 97 in the jsp file: /examples/reactor/jsp/result.jsp
MultiMolSetCounter cannot be resolved to a type
94: MultiMolSetCounter.MODE_COMBINATORIAL :
95: MultiMolSetCounter.MODE_SEQUENTIAL;
96:
97: MultiMolSetCounter counter = new MultiMolSetCounter(mode);
98: counter.init(rsets);
99:
100: int resultCount = 0;


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:319)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

 


note The full stack trace of the root cause is
available in the Apache Tomcat/5.5.28 logs.


ChemAxon e08c317633

03-12-2010 08:51:21

Hi,


The Reactor JSP example is not supported any more; we also removed the links pointing to the example. How did you find it? The JSP example was a demo for Reactor, but since then we have the Reactor (GUI) application, so the JSP example was deprecated.


There is a simple JSP example, which is still supported: http://www.chemaxon.com/jchem/examples/reactor/jsp/react.jsp.


Zsolt

User 7a4bd58ff0

03-12-2010 17:25:22

How did you find it? 


It's the first hit when you Google the words 'ChemAxon' and 'Reactor': www.google.com/search?q=chemaxon+reactor


 


I took your advice and tried the GUI (Reactor.app, Reactor 5.4.0.0 on Mac OSX 10.6.5).  When I try to run the same reaction from the GUI, it also doesn't run, producing following output but nothing in the output file.  Running it with the setting "Generate Unsuccesful reactions"[1] checked and ignoring all reaction rules also leaves the output file blank.  Flipping which reactant is 0 and which is 1 makes no difference.  The exclude rules don't match either reactant.  


 


Am I running Reactor incorrectly or is there some understanding I'm missing about why this reaction won't go?


Thank you!


 


"Process completed.


 


Reactions done: 0


Produtcs exported: 0


Time elapsed: 0h 0m 1s" [2]


 


[1] Note that you've got a typo: 'Unsuccessful' should be spelled with three 's's.


[2] Another typo.  Switch the 't' and the 'c' in 'Produtcs exported'.

User 7a4bd58ff0

03-12-2010 20:11:10

Also, is there a way of getting "debugging" information out of Reactor?  For example, an explanation for why a reaction didn't produce a product?

ChemAxon d76e6e95eb

04-12-2010 08:35:58

Thank you for the typo report, how we did not notice them!


Regarding the reaction. On the basis of the reaction scheme, Reactor looks for two oxo groups in the first reactant that are separated by three single bonds. In your reactant, there is no such functionality. One pair of oxo groups are connected by two single bonds only, another pair is in three bond length distance, but it involves a double bond between.


You can certainly modifiy the reaction scheme as you like depending on your expectation.


Just two notes:
- The order of the reactants is important indeed, it must follow the order in the reaction scheme. The Exclude rule is executed before processing the reaction scheme, and it failed first when the reactant order was not correct.
- Your reactants here are copied as SMARTS, but it is a query format, SMILES is for molecules, anyway, it was understandable.

User 7a4bd58ff0

04-12-2010 15:53:41

Thank you, Gyuri, you've been very helpful.  I do have one more question, though.


 


I did not come up with these reactants; Reactor did.  If you run Reactor's Paal-Knorr pyrrole synthesis in reverse, using atorvastatin [1] as the product, Reactor suggests the two reactants we've been discussing.  Then, if you try to run the same reaction forward, Reactor doesn't produce a product (because, as you pointed out, the two oxo groups are separated by a double bond).  I was expecting to get atorvastatin back out.


 


So, my question: what do I need to do to ensure that reactions are reversible?  That is, if I run a reaction backwards to go from product to reactants, then use those reactants to run a reaction forward, get the original product back out (possibly along with other minor products).


 


[1] O=C(O)C[C@H](O)C[C@H](O)CCn2c(c(c(c2c1ccc(F)cc1)c3ccccc3)C(=O)Nc4ccccc4)C(C)C

ChemAxon e08c317633

06-12-2010 16:54:05

We updated the "Paal-Knorr pyrrole synthesis" in ChemAxon reaction library. The pyrrole in the reaction scheme is now in aromatized form, and the reactant standardization was removed (not required). The reverse direction works now.


Example (command line):


$ react -r Paal_Knorr_pyrrole_synthesis.mrv -s "O=C(O)C[C@H](O)C[C@H](O)CCn2c(c(c(c2c1ccc(F)cc1)c3ccccc3)C(=O)Nc4ccccc4)C(C)C"
CC(C)C(=O)C(C(C(=O)c1ccc(F)cc1)c1ccccc1)C(=O)Nc1ccccc1
[H]N([H])CC[C@@H](O)C[C@@H](O)CC(O)=O

$ react -r Paal_Knorr_pyrrole_synthesis.mrv "CC(C)C(=O)C(C(C(=O)c1ccc(F)cc1)c1ccccc1)C(=O)Nc1ccccc1" "[H]N([H])CC[C@@H](O)C[C@@H](O)CC(O)=O"
CC(C)c1c(C(=O)Nc2ccccc2)c(c(-c2ccc(F)cc2)n1CC[C@@H](O)C[C@@H](O)CC(O)=O)-c1ccccc1

I attached the modified reaction file (Paal_Knorr_pyrrole_synthesis.mrv).


Zsolt