User 677b9c22ff
14-05-2009 18:18:07
Hi,
I have some legacy mol and SDF files and always have errors opening them with
Mview or MSketch or cxcalc. They contain multiple long strings with, sometimes longer than
72 chars.
Is there a way to circumvent that, except parsing the mols and sdfs externally?
Example file (creates error below):
dsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsa
dsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsa
dsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsa
12 13 0 0 0 0 999 V2000
-0.7661 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7661 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 -0.0295 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 3.2705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 2 0 0 0 0
3 4 1 0 0 0 0
4 5 2 0 0 0 0
5 6 1 0 0 0 0
7 8 2 0 0 0 0
8 9 1 0 0 0 0
9 10 2 0 0 0 0
1 6 2 0 0 0 0
1 10 1 0 0 0 0
6 7 1 0 0 0 0
5 11 1 0 0 0 0
10 12 1 0 0 0 0
M END
OK, the following code is allowed:
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
12 13 0 0 0 0 999 V2000
-0.7661 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7661 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 -0.0295 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 3.2705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 2 0 0 0 0
3 4 1 0 0 0 0
4 5 2 0 0 0 0
5 6 1 0 0 0 0
7 8 2 0 0 0 0
8 9 1 0 0 0 0
9 10 2 0 0 0 0
1 6 2 0 0 0 0
1 10 1 0 0 0 0
6 7 1 0 0 0 0
5 11 1 0 0 0 0
10 12 1 0 0 0 0
M END
The following code is also allowed (see middle line)
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
X
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
12 13 0 0 0 0 999 V2000
-0.7661 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7661 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 -0.0295 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 3.2705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 2 0 0 0 0
3 4 1 0 0 0 0
4 5 2 0 0 0 0
5 6 1 0 0 0 0
7 8 2 0 0 0 0
8 9 1 0 0 0 0
9 10 2 0 0 0 0
1 6 2 0 0 0 0
1 10 1 0 0 0 0
6 7 1 0 0 0 0
5 11 1 0 0 0 0
10 12 1 0 0 0 0
M END
However the following code with the middle line extended abit is not allowed
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
adsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsdsadsadsadsadsadsaadsdsadsadsadsadsadsadsadsadsadsadsadsadsadsads
12 13 0 0 0 0 999 V2000
-0.7661 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-2.1951 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7661 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 0.7955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 1.2080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.6629 2.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 2.4455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4805 -0.0295 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
-0.0516 3.2705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 2 0 0 0 0
3 4 1 0 0 0 0
4 5 2 0 0 0 0
5 6 1 0 0 0 0
7 8 2 0 0 0 0
8 9 1 0 0 0 0
9 10 2 0 0 0 0
1 6 2 0 0 0 0
1 10 1 0 0 0 0
6 7 1 0 0 0 0
5 11 1 0 0 0 0
10 12 1 0 0 0 0
M END
Only when that middle line is less than 30 chars or so it will import in MSKetch/MView?
Thats weird (maybe by definition). I am working with with MSketch 5.1.3.2
The resulting error below follows. I am not sure what the rules are but I am quitye sure,
not only the length but also special chars may not be allows (country specific?).
Cheers
Tobias
Error from msketch:
chemaxon.formats.MolFormatException: Invalid energy specification in molfile header: "adsadsadsads"
at chemaxon.marvin.io.formats.mdl.MolImport.readHeader(MolImport.java:696)
at chemaxon.marvin.io.formats.mdl.MolImport.readMol0(MolImport.java:630)
at chemaxon.marvin.io.formats.mdl.MolImport.readMol(MolImport.java:304)
at chemaxon.marvin.io.MRecordImporter.readDoc(MRecordImporter.java:170)
at chemaxon.marvin.common.swing.modules.EditMolfileFrame.doImport(EditMolfileFrame.java:624)
at chemaxon.marvin.common.swing.modules.ImportDialog$1.run(ImportDialog.java:78)
at java.lang.Thread.run(Unknown Source)
at chemaxon.marvin.common.swing.modules.ImportDialog.doImport(ImportDialog.java:76)
at chemaxon.marvin.common.swing.modules.ImportDialog.apply(ImportDialog.java:209)
at chemaxon.marvin.uif.util.swing.AbstractDialog.doOk(AbstractDialog.java:153)
at chemaxon.marvin.common.swing.modules.ImportDialog$ImportAction.actionPerformed(ImportDialog.java:234)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at chemaxon.marvin.uif.util.swing.AbstractDialog.open(AbstractDialog.java:160)
at chemaxon.marvin.common.swing.modules.EditMolfileFrame$ImportAsAction.actionPerformed(EditMolfileFrame.java:892)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(Unknown Source)
at javax.swing.JMenuItem.fireMenuDragMouseReleased(Unknown Source)
at javax.swing.JMenuItem.processMenuDragMouseEvent(Unknown Source)
at javax.swing.JMenuItem.processMouseEvent(Unknown Source)
at javax.swing.MenuSelectionManager.processMouseEvent(Unknown Source)
at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(Unknown Source)
at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
at java.awt.Toolkit.notifyAWTEventListeners(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)