基于Open Babel将SDF转为MOL2格式

基于Open Babel将SDF转为MOL2格式

SDF转为MOL2的格式转化步骤很简单,但是需要安装 Open Babel 软件,因为常用Python,索性Openbabel也支持Python,因此通过conda安装。Open Babel 总共包含了两个 Python 模块openbabelPybel,可用于访问 Open Babel 工具包的功能。

  • openbabel:openbabel 模块允许 Python 直接访问 C++ 的Open Babel 库。这种绑定是通过SWIG软件包生成的,它几乎提供了Open Babel所有接口的Python访问权限,包括基础类OBMol、OBAtom、OBBond 和OBResidue,以及转换框架 OBConversion。因此,C++ API中的几乎所有调用都可以在Python脚本中使用,且语法差异极小,详见:The openbabel module
  • Pybel:一个轻量级的封装,围绕openbabel模块中的类和方法。Pybel 提供了一些方便的函数和类,使得从Python中使用 Open Babel 库变得更加简单,尤其是在文件的输入/输出以及访问原子和分子属性方面。Pybel 使用的 Atom和 Molecule 类可以与openbabel模块使用的OBAtom和OBMol类相互转换,详见:Pybel

1. 安装Openbebel (On Linux)

使用conda安装。

conda install conda-forge::openbabel

2. 转格式(SDF→MOL2)

使用 Open Babel 的 Python 接口 Pybel 模块,用于处理化学分子文件的读取和格式转换,将一个 SDF 格式的文件中读取第一个分子,并将其转换为 MOL2 格式后保存。

from openbabel import pybel

# read compound (sdf fromat) 
cmd_1=next(pybel.readfile("sdf", "./cmd-1-3d.sdf"))

# convert to mol2 format
cmd_1.write("mol2", "./cmd-1-3d.mol2")

‼️尽管cmd-1-3d.sdf文件中只保存了一个化学分子,仍然使用了 next()> 来访问文件中的第一个(也可能是唯一一个)分子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值