Standardizer 3.2.10 bug?

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

ChemAxon e08c317633

18-10-2007 13:15:29

g.marcou wrote:
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?
Yes, the problems seems to be related to your JVM.





Try replacing the two rules that doesn't work with the following:


Code:
<Transformation ID="sulphate" Structure="[#6:1][S:2]([OH1:5])(=[O:3])=[O:4]>>[#6:1][S:2]([O-:5])(=[O:3])=[O:4]" Type="string"/>


<Transformation ID="carboxylate" Structure="[#6:1][C:2]([OH1:4])=[O:3]>>[#6:1][C:2]([O-:4])=[O:3]" Type="string"/>






It means the same, but from your config file it seems that "[#6]" works also on your system. Maybe this workaround will work.





Zsolt

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?

ChemAxon e08c317633

20-10-2007 08:26:19

Hi,
g.marcou wrote:
effectively, your work around is working just fine.


Good to hear. We still recommend you using Sun's JRE.
Quote:
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?
It is in the SMARTS language specification.





Zsolt