User a54d4c89af
18-10-2007 09:13:12
Hi,
I was using a configuration file for standardizer that worked with version 3.2.3. When upgrading to 3.2.10, the following two rules appeared as broken:
<Transformation ID="sulphate" Structure="[C,c:1](=[O:3])(=[O:4])[O;H1:5]>>[C,c:1](=[O:3])(=[O:4])[O-:5]" Type="string"/>
<Transformation ID="carboxylate" Structure="[C,c:1][C:2](=[O:3])[O;H1:4]>>[C,c:1][C:2](=[O:3])[O-:4]" Type="string"/>
I believe this is because of the carbon that can be either aromatic or not. Nonetheless, trying to repair these rules in MarvinSketch 4.1.12 lead to the following error:
java.lang.nullPointerException
Is this a bug or did I miss an official change in the new version?
Thanks in advance for your help
Gilles Marcou
ChemAxon e08c317633
18-10-2007 11:37:06
Hi,
We can not reproduce the error with JChem 3.2.10.
Code: |
standardize -c config.xml "OC(=O)C(CCC1=CC(=CC(=C1)S(O)(=O)=O)C(O)=O)CS(O)(=O)=O"
[O-]C(=O)C(CCC1=CC(=CC(=C1)S([O-])(=O)=O)C([O-])=O)CS([O-])(=O)=O |
Can you post a few input molecules which we can use to reproduce the error?
How did you try to repair the rules? They are OK.
Zsolt
User a54d4c89af
18-10-2007 12:25:10
Hi,
the problem was not molecule dependent on my computer. I could see that the rules I have posted were broken because it appeared as a yellow triangle warning sign in the standardize GUI and I could not edit them.
In fact I have the same error also with your example using 3.2.10 and no error with 3.2.3.
I post the complete configuration file I am using. Your example seems just fine. If I remove the two rules I have posted from this file, your example can be processed. If those rules are present the command line exits with this error:
sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:262)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:314)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:364) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:250)
at java.io.InputStreamReader.read(InputStreamReader.java:212)
at java.io.BufferedReader.fill(BufferedReader.java:157)
at java.io.BufferedReader.readLine(BufferedReader.java:320)
at java.io.BufferedReader.readLine(BufferedReader.java:383)
at chemaxon.struc.PeriodicSystem.readElements(PeriodicSystem.java:108)
at chemaxon.struc.PeriodicSystem.<clinit>(PeriodicSystem.java:84)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:192)
at chemaxon.marvin.modules.SmartsAtomQuerifier.getAtomList(SmartsAtomQuerifier.java:788)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomList(SmartsAtomQuerifier.java:695)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomSymbol(SmartsAtomQuerifier.java:641)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomSymbol(SmartsAtomQuerifier.java:633)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processNode(SmartsAtomQuerifier.java:126)
at chemaxon.marvin.modules.SmartsAtomQuerifier.querify(SmartsAtomQuerifier.java:114)
at chemaxon.marvin.modules.SmartsAtomQuerifier.callback(SmartsAtomQuerifier.java:897)
at chemaxon.struc.MolAtom.setQuerystr(MolAtom.java:3819)
at chemaxon.marvin.modules.SmilesImport.readSmartsAtom(SmilesImport.java:1944)
at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:677)
at chemaxon.marvin.modules.SmilesImportX.readReac(SmilesImportX.java:105)
at chemaxon.marvin.modules.SmilesImport.readReac(SmilesImport.java:2511) at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:533)
at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:465)
at chemaxon.formats.MolImporter.readMol(MolImporter.java:776)
at chemaxon.formats.MolImporter.read(MolImporter.java:608)
at chemaxon.formats.MolImporter.read(MolImporter.java:574)
at chemaxon.util.ConfigTools.getMolecule(ConfigTools.java:460)
at chemaxon.util.ConfigTools.getQueryMolecule(ConfigTools.java:424)
at chemaxon.reaction.ReactorConfiguration.getReactionMolecule(ReactorConfiguration.java:565)
at chemaxon.reaction.ReactorConfiguration.getReaction(ReactorConfiguration.java:752)
at chemaxon.reaction.ReactorConfiguration.getReaction(ReactorConfiguration.java:728)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:180)
at chemaxon.reaction.StandardizerConfiguration.readXML(StandardizerConfiguration.java:138)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:82)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:100)
at chemaxon.reaction.Standardizer.<init>(Standardizer.java:362)
at chemaxon.reaction.Standardizer.main(Standardizer.java:2036)
Exception in thread "main" java.lang.NullPointerException
at chemaxon.struc.PeriodicSystem.getAtomicNumber(PeriodicSystem.java:475)
at chemaxon.marvin.modules.SmartsAtomQuerifier.getAtomList(SmartsAtomQuerifier.java:788)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomList(SmartsAtomQuerifier.java:695)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomSymbol(SmartsAtomQuerifier.java:641)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processAtomSymbol(SmartsAtomQuerifier.java:633)
at chemaxon.marvin.modules.SmartsAtomQuerifier.processNode(SmartsAtomQuerifier.java:126)
at chemaxon.marvin.modules.SmartsAtomQuerifier.querify(SmartsAtomQuerifier.java:114)
at chemaxon.marvin.modules.SmartsAtomQuerifier.callback(SmartsAtomQuerifier.java:897)
at chemaxon.struc.MolAtom.setQuerystr(MolAtom.java:3819)
at chemaxon.marvin.modules.SmilesImport.readSmartsAtom(SmilesImport.java:1944)
at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:677)
at chemaxon.marvin.modules.SmilesImportX.readReac(SmilesImportX.java:105)
at chemaxon.marvin.modules.SmilesImport.readReac(SmilesImport.java:2511) at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:533)
at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:465)
at chemaxon.formats.MolImporter.readMol(MolImporter.java:776)
at chemaxon.formats.MolImporter.read(MolImporter.java:608)
at chemaxon.formats.MolImporter.read(MolImporter.java:574)
at chemaxon.util.ConfigTools.getMolecule(ConfigTools.java:460)
at chemaxon.util.ConfigTools.getQueryMolecule(ConfigTools.java:424)
at chemaxon.reaction.ReactorConfiguration.getReactionMolecule(ReactorConfiguration.java:565)
at chemaxon.reaction.ReactorConfiguration.getReaction(ReactorConfiguration.java:752)
at chemaxon.reaction.ReactorConfiguration.getReaction(ReactorConfiguration.java:728)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:180)
at chemaxon.reaction.StandardizerConfiguration.readXML(StandardizerConfiguration.java:138)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:82)
at chemaxon.reaction.StandardizerConfiguration.read(StandardizerConfiguration.java:100)
at chemaxon.reaction.Standardizer.<init>(Standardizer.java:362)
at chemaxon.reaction.Standardizer.main(Standardizer.java:2036)
For sake of completeness, I use a SLED 10 SP1 linux system. Here is the output of the command java -v:
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32dev-20070511(SR5))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20070426 (JIT enabled)
J9VM - 20070420_12448_lHdSMR
JIT - 20070419_1806_r8
GC - 200704_19)
JCL - 20070511
I download jchem 3.2.11 and install it. Maybe the problem will disapear...
Thanks for your help,
Gilles Marcou
User a54d4c89af
18-10-2007 12:48:56
Hi,
I did install jchem 3.2.11 and got the same results.
But I tried on an Ubuntu with java 1.6 and Java HotSpot client VM. And the bug did not showed up. I guess my troubles are linked to my JVM, no?
Ciao,
Gilles Marcou
User a54d4c89af
18-10-2007 13:28:28
Hi,
effectively, your work around is working just fine.
Thanks a lot,
Gilles Marcou
PS: How did you know that you could replace C,c in the SMART string by #6? Is there a table somewhere to find such correspondance?