使用open babel产生小分子多重构象的方法有两种:
1. 使用遗传算法(Genetic algorithm)进行构象搜索,属于系统式搜索最低能量构象的方法
obabel -L conformer 命令可以详细查看conformer插件的使用方法
以下命令可以为小分子产生30个小分子构象,然后使用 -writeconformers 参数将所有的构象写成输出结构文件:
obabel startingConformer.mol2 -O ga_conformers.sdf --conformer --nconf 30 --score rmsd --writeconformers
2. 使用Confab进行构象搜索,属于随机性搜索方法
obabel -L confab 命令可以查看confab的详细用法
obabel <inputfile> -O <outputfile> --confab [confab options]
以下为几个参数的用法信息
--rcutoff <rmsd> | RMSD cutoff (default 0.5 Angstrom) |
--ecutoff <energy> | Energy cutoff (default 50.0 kcal/mol) |
--conf <#confs> | Max number of conformers to test (default is 1 million) |
--original | Include the input conformation as the first conformer |
--verbose | Verbose - display information on torsions found |
以下命令会产生至多10000个构象,并包含初始构象( --original ):
obabel TZD.sdf -O confs.sdf --confab --conf 10000 --original
3. 使用confabreport format
obabel <inputfile> [-O <outputfile>] -o confabreport -xf <reference_file> [-xr <rmsd>]
obabel -L confabreport 输出帮助信息
Once a file containing conformers has been generated by Confab, the result can be compared to the original input structures or a set of reference structures using this output format. Conformers are matched with reference structures using the molecule title. For every conformer, there should be a reference structure (but not necessarily vice versa).
-f <filename> | File containing reference structures |
-r <rmsd> |
RMSD cutoff (default 0.5 Angstrom) The number of structures with conformers within this RMSD cutoff of the reference will be reported. |
详细的使用方法就是如上,但是有的时候,你运行 obabel -L conformer 命令和 obabel -L confab 命令会报没有此插件的错误:
$ obabel -L --confab --confab is not a recognized plugin type. Those with instances of sub-types loaded are: charges descriptors fingerprints forcefields formats loaders ops
并且运行产生构象命令时发现只产生一个构象,出现这个错误的原因我在网上查了很久,终于解决了这个问题!
详细查看obabel的安装说明时,发现obabel安装需要以下几个条件:
libxml2 development headers are required to read/write CML files and other XML formats (the libxml2-dev package in Ubuntu) zlib development libraries are required to support reading gzipped files (the zlib1g-dev package in Ubuntu) Eigen version 2 is required if using the language bindings in the release. In addition, if it not present, some API classes (OBAlign, OBConformerSearch) and plugins (the QEq and QTPIE charge models, the conformer operation) will not be available. Eigen may be available through your package manager (the libeigen2-dev package in Ubuntu). Alternatively, Eigen is available from http://eigen.tuxfamily.org. It doesn’t need to be compiled or installed. Just unzip it and specify its location when configuring cmake (see below) using -DEIGEN2_INCLUDE_DIR=whereever. Cairo development libraries are required to support PNG depiction (the libcairo2-dev package in Ubuntu) If using GCC 3.x to compile (and not GCC 4.x), then the Boost headers are required for certain formats (CML, Chemkin, Chemdraw CDX, MDL RXN and RSMI)
发现使用构象搜索功能时,需要安装Eigen2 or Eigen3,如果这两个软件没有安装,将用不了conformers和confab功能。
解决方法:
所以,要解决这个问题的关键,在于安装Eigen2 or Eigen3,下载地址在http://eigen.tuxfamily.org,我下载的是Eigen3
下载得到eigen-eigen-5a0156e40feb.tar.bz2
tar jxvf eigen-eigen-5a0156e40feb.tar.bz2 # 解压 mv eigen-eigen-5a0156e40feb <directory> # 移动解压后的文件夹到自己的目录
解压后的Eigen3就可以使用,无需安装。
得到Eigen3后,重新编译安装openbabel,
$ tar zxvf openbabel-2.4.1.tar.gz # 解压 $ cd openbabel-2.4.1 $ mkdir build $ cd build $ cmake .. -DCMAKE_INSTALL_PREFIX=<your openbabel installation directory> -DEIGEN3_INCLUDE_DIR=<your directory prefix>/eigen-eigen-5a0156e40feb $ make -j2 $ make test $ make install
添加环境变量后就可以使用。