您的位置:首页 > 编程语言 > Python开发

pybel 可以使用的力场

2014-01-06 08:52 141 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 化学信息学
相关文章推荐