pybel 可以使用的力场

pybel是Python中用于化学信息学的库,能够进行化学结构转换、力场优化和指纹计算。本文介绍了如何安装pybel及其依赖的openbabel,并展示了如何利用UFF力场对分子进行初步结构优化。

pybel是一种常用的python库,提供化学信息学常用的功能,如转换SMILE编码,生成化学结构式,使用某种力场、算法进行初步结构优化,计算fingerprints等。


1. 安装

a. 首先安装openbabel (http://openbabel.org/docs/2.3.1/Installation/install.html)

如果是windows下,直接下载安装包http://sourceforge.net/projects/openbabel/files/openbabel/2.3.1/OpenBabel2.3.1_Windows_Installer.exe/download

如果是linux下,下载源码编译,见压缩包内介绍。需要使用cmake,如果系统没有,要事先安装。在编译时指明激活python库接口:

configure --prefix=/usr/local

cmake -DPYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=DEBUG

make && make install


b. 安装pybel库http://openbabel.org/docs/2.3.1/UseTheLibrary/PythonInstall.html

如果是linux则可省略这一步,只需要在安装时激活python库借口即可。

windows版本则需要安装:python2.7版本:http://sourceforge.net/projects/openbabel/files/openbabel-python/1.7/openbabel-python-1.7.py27.exe/download

python3.2版本:http://sourceforge.net/projects/openbabel/files/openbabel-python/1.7/openbabel-python-1.7.py32.exe/download


c. 测试

C:\Documents and Settings\Noel> obabel -V
Open Babel 2.3.1 -- Oct  9 2011 -- 17:57:01

C:\Documents and Settings\Noel> obabel -Hsdf
sdf  MDL MOL format
Reads and writes V2000 and V3000 versions

Read Options, e.g. -as
 s  determine chirality from atom parity flags
...
...

C:\Documents and Settings\Noel> dir "%BABEL_DATADIR%"\mr.txt
 Volume in drive C has no label.
 Volume Serial Number is 68A3-3CC9

 Directory of C:\ProgramData\OpenBabel-2.3.1\data

26/10/2010  16:37             4,295 mr.txt
               1 File(s)          4,295 bytes
               0 Dir(s)  58,607,575,040 bytes free

C:\Documents and Settings\Noel> C:\Python26\python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pybel
>>> mol = pybel.readstring("smi", "CC(=O)Br")
>>> mol.make3D()
>>> print(mol.write("sdf"))

 OpenBabel01010918183D

  7  6  0  0  0  0  0  0  0  0999 V2000
    1.0166   -0.0354   -0.0062 C   0  0  0  0  0
    2.5200   -0.1269    0.0003 C   0  0  0  0  0
    3.0871   -1.2168    0.0026 O   0  0  0  0  0
    3.2979    1.4258    0.0015 Br  0  0  0  0  0
    0.6684    1.0007    0.0052 H   0  0  0  0  0
    0.6255   -0.5416    0.8803 H   0  0  0  0  0
    0.6345   -0.5199   -0.9086 H   0  0  0  0  0
  1  2  1  0  0  0
  1  5  1  0  0  0
  1  6  1  0  0  0
  1  7  1  0  0  0
  2  4  1  0  0  0
  2  3  2  0  0  0
M  END
$$$$

2.  初步优化

目前版本提供的力场包括:

使用 : 

print(pybel.forcefileds)

查询,给出:

gaff

ghemical

mmff94

mmff94s

uff



从SMILE生成初步分子结构的过程:


import pybel

SMILE_code="C=CC=C"

molecule=pybel.readstring("smi",SMILE_code)

molecule.make3D(forcefield='UFF',steps=100)

生成Gaussian 输入文件,略过前面软件声明部分

print (molecule.write("gjf")[55:])


也可以使用最陡降线算法优化http://openbabel.org/docs/2.3.1/UseTheLibrary/Python_Pybel.html

molecule_descent=molecule.calcdesc()

molecule.data.update(molecule_descent)

print


或者局部最优法http://openbabel.org/docs/2.3.1/UseTheLibrary/Python_PybelAPI.html#pybel.Molecule.localopt

localopt(forcefield='mmff94'steps=500)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值