求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
各位好!
我是化学信息学的初学者, 最近正在研究如何将mol转化为svg图的问题,我是初学者,对svg不太熟悉,希望和请教以下,
1. 如何将mol中的原子坐标与键转化为svg的点和边?
2. 如何着色处理? 还有一些特殊的化学键如何处理?
3. 可有现成的mol2svg转化工具,我想学习一下, 各位高手可否给予一些知识和帮助?
万分感谢您!
我是化学信息学的初学者, 最近正在研究如何将mol转化为svg图的问题,我是初学者,对svg不太熟悉,希望和请教以下,
1. 如何将mol中的原子坐标与键转化为svg的点和边?
2. 如何着色处理? 还有一些特殊的化学键如何处理?
3. 可有现成的mol2svg转化工具,我想学习一下, 各位高手可否给予一些知识和帮助?
万分感谢您!
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
自己看描述。
● as ~dmolfile~dchem
p jmol - Molecular Viewer
p jmol-applet - Jmol Java applet
p libchemistry-openbabel-perl - Chemical toolbox library (perl bindings)
p libopenbabel-dev - Chemical toolbox library (development file
p libopenbabel-doc - Chemical toolbox library (documentation)
p libopenbabel4 - Chemical toolbox library
p openbabel - Chemical toolbox utilities (cli)
p pymol - Molecular Graphics System
p python-openbabel - Chemical toolbox library (python bindings)
● as ~dmolfile~dchem
p jmol - Molecular Viewer
p jmol-applet - Jmol Java applet
p libchemistry-openbabel-perl - Chemical toolbox library (perl bindings)
p libopenbabel-dev - Chemical toolbox library (development file
p libopenbabel-doc - Chemical toolbox library (documentation)
p libopenbabel4 - Chemical toolbox library
p openbabel - Chemical toolbox utilities (cli)
p pymol - Molecular Graphics System
p python-openbabel - Chemical toolbox library (python bindings)
● 鸣学
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
谢谢楼上的详细资料, 我正在逐个尝试,
看来论坛里藏龙卧虎阿 都是对化学信息学很有研究的高手
看来论坛里藏龙卧虎阿 都是对化学信息学很有研究的高手
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
用Indigo吧
代码: 全选
from indigo import *
from indigo_renderer import *
import os
class Mol2pic():
def __init__(self, mol_string = '', width = 600, height = 600):
self.idg = Indigo()
self.renderer = IndigoRenderer(self.idg)
self.idg.setOption("render-comment-position", "top")
self.idg.setOption("render-image-size", width, height)
# self.idg.setOption("render-background-color", 1.0, 1.0, 1.0)
self.idg.setOption('render-label-mode', 'forcehide')
self.idg.setOption('render-margins', 5, 5)
self.idg.setOption('render-coloring', True)
self.idg.setOption('render-stereo-old-style', True)
if mol_string:
self.set_mol(mol_string)
def set_mol(self, string, fmt = 'mol'):
#print string
string = string.replace('\\n', '\n')
if os.path.exists(string):
self.mol = self.idg.loadMoleculeFromFile(string)
else:
self.mol = self.idg.loadMolecule(string)
self.mol.foldHydrogens()
def to_pic(self, out_fmt = 'svg', auto_layout = False, filename = None):
self.idg.setOption("render-output-format", out_fmt)
if auto_layout:
self.mol.layout()
if filename:
try:
self.renderer.renderToFile(self.mol, filename)
return filename
except Exception, e:
print e
pass
return self.renderer.renderToBuffer(self.mol).tostring()
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
请教一个很棘手的问题,我现在通过调用openbabel,生成化合物SVG图, 经常出现化学键手性的错误问题,这是不是openbabel的bug?eexpress 写了:自己看描述。
● as ~dmolfile~dchem
p jmol - Molecular Viewer
p jmol-applet - Jmol Java applet
p libchemistry-openbabel-perl - Chemical toolbox library (perl bindings)
p libopenbabel-dev - Chemical toolbox library (development file
p libopenbabel-doc - Chemical toolbox library (documentation)
p libopenbabel4 - Chemical toolbox library
p openbabel - Chemical toolbox utilities (cli)
p pymol - Molecular Graphics System
p python-openbabel - Chemical toolbox library (python bindings)
另外,jmol如何生成svg图片?我找了半天 没有找到.. 麻烦您说详细些?
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
Indigo是什么工具?我搜了很久,找不到 可否给个链接?谢谢!xiooli 写了:用Indigo吧
代码: 全选
from indigo import * from indigo_renderer import * import os class Mol2pic(): def __init__(self, mol_string = '', width = 600, height = 600): self.idg = Indigo() self.renderer = IndigoRenderer(self.idg) self.idg.setOption("render-comment-position", "top") self.idg.setOption("render-image-size", width, height) # self.idg.setOption("render-background-color", 1.0, 1.0, 1.0) self.idg.setOption('render-label-mode', 'forcehide') self.idg.setOption('render-margins', 5, 5) self.idg.setOption('render-coloring', True) self.idg.setOption('render-stereo-old-style', True) if mol_string: self.set_mol(mol_string) def set_mol(self, string, fmt = 'mol'): #print string string = string.replace('\\n', '\n') if os.path.exists(string): self.mol = self.idg.loadMoleculeFromFile(string) else: self.mol = self.idg.loadMolecule(string) self.mol.foldHydrogens() def to_pic(self, out_fmt = 'svg', auto_layout = False, filename = None): self.idg.setOption("render-output-format", out_fmt) if auto_layout: self.mol.layout() if filename: try: self.renderer.renderToFile(self.mol, filename) return filename except Exception, e: print e pass return self.renderer.renderToBuffer(self.mol).tostring()
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
我用java调用,类似self.idg.setOption("render-comment-position", 这一类的参数设置,一律不能通过编译,也找不到相关的使用说明,ispotato 写了:Indigo是什么工具?我搜了很久,找不到 可否给个链接?谢谢!xiooli 写了:用Indigo吧
代码: 全选
from indigo import * from indigo_renderer import * import os class Mol2pic(): def __init__(self, mol_string = '', width = 600, height = 600): self.idg = Indigo() self.renderer = IndigoRenderer(self.idg) self.idg.setOption("render-comment-position", "top") self.idg.setOption("render-image-size", width, height) # self.idg.setOption("render-background-color", 1.0, 1.0, 1.0) self.idg.setOption('render-label-mode', 'forcehide') self.idg.setOption('render-margins', 5, 5) self.idg.setOption('render-coloring', True) self.idg.setOption('render-stereo-old-style', True) if mol_string: self.set_mol(mol_string) def set_mol(self, string, fmt = 'mol'): #print string string = string.replace('\\n', '\n') if os.path.exists(string): self.mol = self.idg.loadMoleculeFromFile(string) else: self.mol = self.idg.loadMolecule(string) self.mol.foldHydrogens() def to_pic(self, out_fmt = 'svg', auto_layout = False, filename = None): self.idg.setOption("render-output-format", out_fmt) if auto_layout: self.mol.layout() if filename: try: self.renderer.renderToFile(self.mol, filename) return filename except Exception, e: print e pass return self.renderer.renderToBuffer(self.mol).tostring()
可有java调用的例子?setOption的这些参数从哪里可以看到如何设置呢?初学者,还请您详细指点了,谢谢!
-
- 帖子: 11
- 注册时间: 2012-05-10 14:03
Re: 求助! 如何把化学结构的文件mol格式,转化为SVG矢量图格式?
问题已经解决,java用Indigo
非常感谢各位牛人的大力协助!学到了不少东西!
谢谢!
非常感谢各位牛人的大力协助!学到了不少东西!
谢谢!