怎么使用openbabel的pybel?
创始人
2025-05-30 21:58:00
0

Open Babel GUI 安装:http://openbabel.org/wiki/Category:Installation

另外,下载好openbabel之后并不能直接使用pybel,我在国外的一个网站上看到一个提议,但是听说这个不是openbabel的pybel,而是另一个工具包PyBEL:

python -m pip install pybel_tools

Molecule(OBMol)

Molecules有以下属性特征: atoms, charge, data, dim, energy, exactmass, formula, molwt, spin, sssr, title and unitcell (晶体数据)。atoms 特征提供了分子中所有Atoms的列表。data 特征返回字典对象,可用来获得和编辑与分子相关的数据 ( 是MoleculeData对象,但可当作普通的字典对象)。unitcell 特征可获得任何与分子有关的“unit cell”数据(OBUnitCell)。

Molecule

  • OBMol: 就是OB的分子,内含相应的C++方法
  • atoms: 原子对象的列表
  • charge: 分子电荷
  • conformers: 构象?返回的是c++ vector.
  • data: 返回分子一些属性信息的字典,用于构造MoleculeData.
  • dim: 返回Long型?! 的整数,0/2/3维
  • energy: 返回分子的能量
  • exactmass: 精确分子量
  • formula: 分子式
  • molwt: 分子量
  • spin: 自旋度
  • sssr: 最小环的集合(C++)
  • title: 分子名
  • unitcell: 晶胞信息,有的话.
  • addh(): 加氢
  • removeh(): 去氢
  • calcfp(fptype='FP2'): 计算指纹返回指纹对象Fingerprint.指纹类型参考全局变量
  • calcdesc(descnames=[]): 计算相应描述符, 如果不指名就会全部计算.描述符参考全局变量.
  • draw(show=True, filename=None, update=False, usecoords=False): 产生2维分子描述.show是否在屏幕显示, filename可以指定写到图像文件,后两者是否更新以及使用现有坐标.
  • localopt(forcefield='mmff94', steps=500): 局部优化,力场和优化步数.如果没有坐标会优先使用make3D().需要分子有H.
  • make3D(forcefield='mmff94', steps=50): 先产生3维坐标再调用局部优化,参数是局部优化参数.
  • write(format='smi', filename=None, overwrite=False): 将文件写到文件,格式,文件名以及是否覆盖已有文件. 如果不指名文件名, 返回文件内容的字符串.

MoleculeData(obmol)

使用ob的分子产生相应附加数据的对象(字典),其实用途不大,更常用mol.data。

>>> mol=readfile("sdf","calculatedprops.sdf").next()# (readfile is described below)

>>> print mol.molwt100.1

>>> print len(mol.atoms)

16

>>> print mol.data.keys()

{'Comment': 'Created by CDK', 'NSC': 1, 'Hydrogen Bond Donors': 3, 'Surface Area': 342.43, .... }

>>> print mol.data['Hydrogen Bond Donors']

3

>>> mol.data['Random Value']=random.randint(0,1000)# 添加一个噪音描述符

SMARTS matching

用法:Smarts(smartspattern)

Pybel 提供了一个简单的 API 用来链接 Open Babel SMARTS pattern 匹配.。A Smarts object is created, and the findall() method is then used to return a list of the matches to a given Molecule.

Here is an example of its use:

>>> mol = readstring("smi","CCN(CC)CC") # 创造一个三乙胺基团
>>> smarts = Smarts("[#6][#6]") # 匹配乙基基团
>>> print smarts.findall(mol)
[(1, 2), (4, 5), (6, 7)]

相关内容

热门资讯

安卓系统双清详图解,恢复出厂设... 你有没有遇到过手机卡顿、运行缓慢的问题?别急,今天就来给你详细解析一下安卓系统的“双清”操作,让你的...
召唤抽奖系统安卓直装,轻松体验... 你知道吗?现在市面上有一种特别火的玩意儿,那就是召唤抽奖系统安卓直装。是不是听起来就让人心动不已?没...
系统工具箱安卓2.3,深度解析... 你有没有发现,手机里的那些小工具,有时候就像是个神奇的百宝箱呢?今天,就让我带你一探究竟,看看安卓2...
华硕平板安卓刷机系统,解锁性能... 亲爱的数码爱好者们,你是否曾为你的华硕平板安卓系统感到厌倦,想要给它来一次焕然一新的体验呢?那就跟着...
鸿蒙系统与安卓怎么区别,差异解... 你有没有发现,最近手机圈子里有个大热门,那就是鸿蒙系统和安卓系统的区别。这两位“系统大侠”各有各的绝...
红帽系统怎么刷回安卓,红帽系统... 你是不是也和我一样,对红帽系统刷回安卓充满了好奇?别急,今天就来给你详细揭秘这个过程,让你轻松上手,...
ios安卓联想三系统,全面解析... 你有没有发现,现在的手机市场真是热闹非凡呢!各种操作系统轮番登场,让人眼花缭乱。今天,就让我带你来聊...
安卓调用系统相机并存盘,And... 你有没有想过,手机里的照片和视频,是怎么被我们随手拍下,又神奇地存到手机里的呢?今天,就让我带你一探...
安卓4.0原生系统下,引领智能... 你有没有发现,安卓4.0原生系统下,手机的使用体验简直就像打开了新世界的大门?今天,就让我带你一起探...
安卓c13系统,创新功能与性能... 你知道吗?最近安卓系统又来了一次大更新,那就是安卓C13系统。这可不是一个小打小闹的更新,而是带来了...
鸿蒙3.0脱离安卓系统,开启全... 你知道吗?最近科技圈可是炸开了锅,因为华为的新操作系统鸿蒙3.0横空出世,竟然宣布要脱离安卓系统,这...
安卓怎么应对苹果系统,安卓系统... 你知道吗?在智能手机的世界里,安卓和苹果就像是一对相爱相杀的恋人。安卓系统,这位多才多艺的“大众情人...
安卓系统如何开橱窗教程,安卓系... 你有没有想过,你的安卓手机里也能开个橱窗,展示那些你心爱的宝贝?没错,就是那种可以随时翻看、随时分享...
安卓系统软件APK,深入探究安... 你有没有发现,手机里的那些好玩的应用,其实都是靠一个小小的文件来“住”进去的?没错,就是安卓系统里的...
css安卓系统line-hei... 你有没有发现,在使用安卓手机的时候,有时候文字看起来会有些挤,不够舒展呢?这可真是让人头疼的小问题。...
如何换桌面安卓系统,轻松切换个... 你是不是也和我一样,对安卓系统的桌面换换口味,想要来点新鲜感呢?那就跟我一起探索如何轻松给安卓桌面来...
安卓移动到系统目录lib,An... 你有没有想过,你的安卓手机里那些神秘的系统目录里藏着什么秘密?今天,就让我带你一探究竟,揭开安卓移动...
安卓系统神器软件下载,畅享智能... 你有没有发现,手机里装满了各种应用,但总有一些神器级的软件,让你的生活和工作变得轻松愉快呢?今天,就...
安卓系统怎么创小号教程,安卓系... 你是不是也和我一样,对安卓系统的小号功能充满了好奇?想要在同一个设备上玩转多个账号,但又不知道怎么操...
华为安卓9.0系统图库,探索创... 你知道吗?最近华为出了一款搭载安卓9.0系统的手机,那叫一个火啊!这款手机不仅外观时尚,性能强大,而...