cxcalc java.io.IOException , but in Marvin it works

User 677b9c22ff

14-11-2006 21:50:59

Hi,


if I call cxcalc CC12CCCC1\C3=C(/CC2)C4(C)CCC(=O)CC4CC3 dreidingenergy





CC12CCCC1C3=C(CC2)C4(C)CCC(=O)CC4CC3


O=C1CCC2(C)C=3CCC4(C)CCCC4C=3CCC2C1


[H]C([H])([H])C12C([H])([H])C([H])([H])C([H])([H])C1([H])C3=C(C([H])([H])C2([H])[H])C4(C([H])([H])[H])C([H])([H])C([H])([H])C(=O)C([H])([H])C4([H])C([H])([H])C3([H])[H]


CC12CCCC1\C3=C(/CC2)C4(C)CCC(=O)CC4CC3





I get an error also for these (same) smiles, however in Marvin it works


90-95 kcal/mol:





Exception in thread "main" java.io.IOException: Unmatched ring closure number 2 in SMILES string


at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:893)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:528)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:457)


at chemaxon.formats.MolImporter.readMol(MolImporter.java:763)


at chemaxon.formats.MolImporter.read(MolImporter.java:595)


at chemaxon.formats.MolImporter.read(MolImporter.java:561)


at chemaxon.marvin.Calculator.readMol(Calculator.java:674)


at chemaxon.marvin.Calculator.run(Calculator.java:852)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


--------------------------


Marvin can read it, cxcalc + dreidingenergy


CC1=CC(=[N+]=N1)c2ccccc2








Invalid state in BuildCommand.


No regular build due to fallback.


Error at molecule: 1249 ID = 1249


java.lang.ArrayIndexOutOfBoundsException: 0


java.lang.ArrayIndexOutOfBoundsException: 0


at chemaxon.marvin.modelling.struc.MultiConformerImpl$1.isGreater(MultiConformerImpl.java:144)


at chemaxon.marvin.modules.Optimization.quickSort(Optimization.java:5039)


at chemaxon.marvin.modules.Optimization.quickSort(Optimization.java:5022)


at chemaxon.marvin.modelling.struc.MultiConformerImpl.sortByEnergy(MultiConformerImpl.java:141)


at chemaxon.marvin.modelling.build.FragClean$MultiFragBuildCommand.build(FragClean.java:676)


at chemaxon.marvin.modelling.build.FragClean.startClean(FragClean.java:98)


at chemaxon.marvin.modules.Clean3D.modfunc_0(Clean3D.java:1438)


at chemaxon.marvin.modules.Clean3D.modfunc(Clean3D.java:491)


at chemaxon.struc.MoleculeGraph.clean(MoleculeGraph.java:3114)


at chemaxon.struc.Molecule.clean(Molecule.java:598)


at chemaxon.calculations.Geometry.calculateLowestEnergyConformer(Geometry.java:110)


at chemaxon.marvin.calculations.GeometryPlugin.calculateLowestEnergyConformer(GeometryPlugin.java:310)


at chemaxon.marvin.calculations.GeometryPlugin.run(GeometryPlugin.java:515)


at chemaxon.marvin.plugin.CalculatorPluginOutput.getResult(CalculatorPluginOutput.java:208)


at chemaxon.marvin.Calculator.run(Calculator.java:880)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


'em' is not recognized as an internal or external command,








-------------------------


working example with Iron atom.





Z:\>cxcalc Fe dreidingenergy


id Dreiding energy


1 58.43





non-working example from smiles file (put Fe into iron.smi)





Z:\>cxcalc iron.smi dreidingenergy


Exception in thread "main" java.io.IOException: Unrecognized element type "e"


at chemaxon.marvin.modules.SmilesImport.readSymbolAndAddAtom(SmilesImport.java:1124)


at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:633)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:528)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:457)


at chemaxon.formats.MolImporter.readMol(MolImporter.java:763)


at chemaxon.formats.MolImporter.read(MolImporter.java:595)


at chemaxon.formats.MolImporter.read(MolImporter.java:561)


at chemaxon.marvin.Calculator.readMol(Calculator.java:674)


at chemaxon.marvin.Calculator.run(Calculator.java:852)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


--------------------------





The same problem with Fe in a smiles file refers to molconvert


Hence put Fe into iron.smi (on line) and run:


molconvert smiles -3:EP iron.smi -T Energy





ERROR:


error: Unrecognized element type "e"





If you put oxygen in, it works.


So I guess all the metals throw an exception.





Molconvert also throws an exception on this one.


CC1=[N+]=NC(C)=C1C=Cc2ccccc2





-------------------------


I think it would be nice if cxcalc is called from the batch file would


put an "error" in the list, instead of thrwoing an JAVA exception to the console. Especially if thousands of molecules are calculated and then


in the very middle it throws an exception.





So, after running some samples, it does actually what I suggested :-)


For Marvin no problem


CC(=O)N(Nc1ccc(cc1)-c2ccc(cc2)[N+]([O-])=O)c3ccccc3





For cxcalc, it says error but calculates further (good).





ERROR! Exception: 0 >= 0


This build will report FAIL, exception not thrown.


java.lang.ArrayIndexOutOfBoundsException: 0 >= 0


at java.util.Vector.elementAt(Unknown Source)


at chemaxon.marvin.modelling.build.FragFragFuser.nextFuse(FragFragFuser.java:971)


at chemaxon.marvin.modelling.build.FragFragFuser.invokeBuild(FragFragFuser.java:410)


at chemaxon.marvin.modelling.build.FragClean$FragFragFuseBuildCommand.invokeBuild(FragClean.java:289)


at chemaxon.marvin.modelling.build.BuildCommand.fetchCoordinates(BuildCommand.java:936)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1778)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1484)


at chemaxon.marvin.modelling.build.FragFragFuser.nextFuse(FragFragFuser.java:770)


at chemaxon.marvin.modelling.build.FragFragFuser.invokeBuild(FragFragFuser.java:410)


at chemaxon.marvin.modelling.build.FragClean$FragFragFuseBuildCommand.invokeBuild(FragClean.java:289)


at chemaxon.marvin.modelling.build.BuildCommand.fetchCoordinates(BuildCommand.java:936)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1778)


at chemaxon.marvin.modelling.build.FragClean$MultiFragBuildCommand.build(FragClean.java:664)


at chemaxon.marvin.modelling.build.FragClean.startClean(FragClean.java:98)


at chemaxon.marvin.modules.Clean3D.modfunc_0(Clean3D.java:1438)


at chemaxon.marvin.modules.Clean3D.modfunc(Clean3D.java:491)


at chemaxon.struc.MoleculeGraph.clean(MoleculeGraph.java:3114)


at chemaxon.struc.Molecule.clean(Molecule.java:598)


at chemaxon.calculations.Geometry.calculateLowestEnergyConformer(Geometry.java:110)


at chemaxon.marvin.calculations.GeometryPlugin.calculateLowestEnergyConformer(GeometryPlugin.java:310)


at chemaxon.marvin.calculations.GeometryPlugin.run(GeometryPlugin.java:515)


at chemaxon.marvin.plugin.CalculatorPluginOutput.getResult(CalculatorPluginOutput.java:208)


at chemaxon.marvin.Calculator.run(Calculator.java:880)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)




















Tobias

ChemAxon e08c317633

15-11-2006 18:28:48

Hi,
TobiasKind wrote:
Hi,


if I call cxcalc CC12CCCC1\C3=C(/CC2)C4(C)CCC(=O)CC4CC3 dreidingenergy





CC12CCCC1C3=C(CC2)C4(C)CCC(=O)CC4CC3


O=C1CCC2(C)C=3CCC4(C)CCCC4C=3CCC2C1


[H]C([H])([H])C12C([H])([H])C([H])([H])C([H])([H])C1([H])C3=C(C([H])([H])C2([H])[H])C4(C([H])([H])[H])C([H])([H])C([H])([H])C(=O)C([H])([H])C4([H])C([H])([H])C3([H])[H]


CC12CCCC1\C3=C(/CC2)C4(C)CCC(=O)CC4CC3





I get an error also for these (same) smiles, however in Marvin it works


90-95 kcal/mol:





Exception in thread "main" java.io.IOException: Unmatched ring closure number 2 in SMILES string


at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:893)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:528)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:457)


at chemaxon.formats.MolImporter.readMol(MolImporter.java:763)


at chemaxon.formats.MolImporter.read(MolImporter.java:595)


at chemaxon.formats.MolImporter.read(MolImporter.java:561)


at chemaxon.marvin.Calculator.readMol(Calculator.java:674)


at chemaxon.marvin.Calculator.run(Calculator.java:852)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


What was the exact call when you got this error message? I can not reproduce it. Put the SMILES strings between double quotes:





cxcalc "CC12CCCC1\C3=C(/CC2)C4(C)CCC(=O)CC4CC3" dreidingenergy
Quote:
Marvin can read it, cxcalc + dreidingenergy


CC1=CC(=[N+]=N1)c2ccccc2








Invalid state in BuildCommand.


No regular build due to fallback.


Error at molecule: 1249 ID = 1249


java.lang.ArrayIndexOutOfBoundsException: 0


java.lang.ArrayIndexOutOfBoundsException: 0


at chemaxon.marvin.modelling.struc.MultiConformerImpl$1.isGreater(MultiConformerImpl.java:144)


at chemaxon.marvin.modules.Optimization.quickSort(Optimization.java:5039)


at chemaxon.marvin.modules.Optimization.quickSort(Optimization.java:5022)


at chemaxon.marvin.modelling.struc.MultiConformerImpl.sortByEnergy(MultiConformerImpl.java:141)


at chemaxon.marvin.modelling.build.FragClean$MultiFragBuildCommand.build(FragClean.java:676)


at chemaxon.marvin.modelling.build.FragClean.startClean(FragClean.java:98)


at chemaxon.marvin.modules.Clean3D.modfunc_0(Clean3D.java:1438)


at chemaxon.marvin.modules.Clean3D.modfunc(Clean3D.java:491)


at chemaxon.struc.MoleculeGraph.clean(MoleculeGraph.java:3114)


at chemaxon.struc.Molecule.clean(Molecule.java:598)


at chemaxon.calculations.Geometry.calculateLowestEnergyConformer(Geometry.java:110)


at chemaxon.marvin.calculations.GeometryPlugin.calculateLowestEnergyConformer(GeometryPlugin.java:310)


at chemaxon.marvin.calculations.GeometryPlugin.run(GeometryPlugin.java:515)


at chemaxon.marvin.plugin.CalculatorPluginOutput.getResult(CalculatorPluginOutput.java:208)


at chemaxon.marvin.Calculator.run(Calculator.java:880)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


'em' is not recognized as an internal or external command,


We will investigate this issue.
Quote:
working example with Iron atom.





Z:\>cxcalc Fe dreidingenergy


id Dreiding energy


1 58.43





non-working example from smiles file (put Fe into iron.smi)





Z:\>cxcalc iron.smi dreidingenergy


Exception in thread "main" java.io.IOException: Unrecognized element type "e"


at chemaxon.marvin.modules.SmilesImport.readSymbolAndAddAtom(SmilesImport.java:1124)


at chemaxon.marvin.modules.SmilesImport.readMol0(SmilesImport.java:633)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:528)


at chemaxon.marvin.modules.SmilesImport.readMol(SmilesImport.java:457)


at chemaxon.formats.MolImporter.readMol(MolImporter.java:763)


at chemaxon.formats.MolImporter.read(MolImporter.java:595)


at chemaxon.formats.MolImporter.read(MolImporter.java:561)


at chemaxon.marvin.Calculator.readMol(Calculator.java:674)


at chemaxon.marvin.Calculator.run(Calculator.java:852)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


--------------------------





The same problem with Fe in a smiles file refers to molconvert


Hence put Fe into iron.smi (on line) and run:


molconvert smiles -3:EP iron.smi -T Energy





ERROR:


error: Unrecognized element type "e"





If you put oxygen in, it works.


So I guess all the metals throw an exception.





Molconvert also throws an exception on this one.


CC1=[N+]=NC(C)=C1C=Cc2ccccc2


"Fe" is not a valid SMILES string. SMILES notation of iron atom is "[Fe]".





$ cxcalc "[Fe]" dreidingenergy


id Dreiding energy


1 0.00
Quote:
I think it would be nice if cxcalc is called from the batch file would


put an "error" in the list, instead of thrwoing an JAVA exception to the console. Especially if thousands of molecules are calculated and then


in the very middle it throws an exception.





So, after running some samples, it does actually what I suggested :-)


For Marvin no problem


CC(=O)N(Nc1ccc(cc1)-c2ccc(cc2)[N+]([O-])=O)c3ccccc3





For cxcalc, it says error but calculates further (good).





ERROR! Exception: 0 >= 0


This build will report FAIL, exception not thrown.


java.lang.ArrayIndexOutOfBoundsException: 0 >= 0


at java.util.Vector.elementAt(Unknown Source)


at chemaxon.marvin.modelling.build.FragFragFuser.nextFuse(FragFragFuser.java:971)


at chemaxon.marvin.modelling.build.FragFragFuser.invokeBuild(FragFragFuser.java:410)


at chemaxon.marvin.modelling.build.FragClean$FragFragFuseBuildCommand.invokeBuild(FragClean.java:289)


at chemaxon.marvin.modelling.build.BuildCommand.fetchCoordinates(BuildCommand.java:936)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1778)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1484)


at chemaxon.marvin.modelling.build.FragFragFuser.nextFuse(FragFragFuser.java:770)


at chemaxon.marvin.modelling.build.FragFragFuser.invokeBuild(FragFragFuser.java:410)


at chemaxon.marvin.modelling.build.FragClean$FragFragFuseBuildCommand.invokeBuild(FragClean.java:289)


at chemaxon.marvin.modelling.build.BuildCommand.fetchCoordinates(BuildCommand.java:936)


at chemaxon.marvin.modelling.build.BuildCommand.build(BuildCommand.java:1778)


at chemaxon.marvin.modelling.build.FragClean$MultiFragBuildCommand.build(FragClean.java:664)


at chemaxon.marvin.modelling.build.FragClean.startClean(FragClean.java:98)


at chemaxon.marvin.modules.Clean3D.modfunc_0(Clean3D.java:1438)


at chemaxon.marvin.modules.Clean3D.modfunc(Clean3D.java:491)


at chemaxon.struc.MoleculeGraph.clean(MoleculeGraph.java:3114)


at chemaxon.struc.Molecule.clean(Molecule.java:598)


at chemaxon.calculations.Geometry.calculateLowestEnergyConformer(Geometry.java:110)


at chemaxon.marvin.calculations.GeometryPlugin.calculateLowestEnergyConformer(GeometryPlugin.java:310)


at chemaxon.marvin.calculations.GeometryPlugin.run(GeometryPlugin.java:515)


at chemaxon.marvin.plugin.CalculatorPluginOutput.getResult(CalculatorPluginOutput.java:208)


at chemaxon.marvin.Calculator.run(Calculator.java:880)


at chemaxon.marvin.Calculator.main(Calculator.java:1076)


You can use the -g, --ignore-error cxcalc option to ignore errors and continue with next molecule.





Best regards,


Zsolt

User 677b9c22ff

16-11-2006 01:05:16

Hi, thanks alot.


Yes. Using the correct syntax helps :-) But the 2nd one still gave errors.


Tobias

User 65315e6b18

17-11-2006 10:29:00

Hi Tobias,





Thanks for reporting it, this was a bug, fixed and will be available in the next release.





Ödön
TobiasKind wrote:
Hi, thanks alot.


Yes. Using the correct syntax helps :-) But the 2nd one still gave errors.


Tobias