案例教程:g_mmpbsa工具的安装(Python模块缺失解决方法)

2018年3月21日

结合自由能及其相关计算一直是分子动力学模拟中的一个重要方法,特别是在药物设计中。MMPB(GB)SA方法是一个公认准确、高效的计算方法,但GROMACS软件包中并不包含这个分析工具,第三方提供的g_mmpbsa工具恰好弥补这一不足。下面简要介绍下g_mmpbsa工具的安装方法。g_mmpbsa工具为基于python编写的脚本工具,而在python脚本的使用过程中,模块缺失是一个非常常见的报错,在本次教程中,将演示如何解决这一问题。

 

操作系统:CentOS 6.8 x64

待安装软件:g_mmpbsa

 

1. 获取安装文件

g_mmpbsa的网站上下载安装文件,这里下载的是内置APBS功能的预编译版本(For Gromacs-5.1.x)。由于在g_mmpbsa的使用过程中,还会用到一些数据处理的python脚本工具,因此还需要下载g_mmpbsa的源代码文件,用于提取需要的脚本。点击超链接,得到文件g_mmpbsa.tar.gz和RashmiKumari-g_mmpbsa-v1.1.0-11-g160f685.tar.gz。

 

2. 安装g_mmpbsa工具

解压g_mmpbsa.tar.gz包,并将其中bin文件夹下的g_mmpbsa和energy2bfac程序放置到/usr/local/bin/目录下。

tar -zxvf g_mmpbsa.tar.gz

cp ./g_mmpbsa/bin/* /usr/local/bin/

说明:解压得到的g_mmpbsa/bin目录下只有g_mmpbsa和energy2bfac两个文件,因此使用通配符“*”代替;/usr/local/bin/为系统默认的用户自定义可执行文件目录,系统会自动检索放置到此目录下的可执行文件,并依据指令调用,不需要额外设置PATH路径(实际上,在系统中已经指定/usr/local/bin/位置)。如果您想将程序放置到其他非默认位置,则需要手动修改环境变量文件,添加PATH路径。

解压 RashmiKumari-g_mmpbsa-v1.1.0-11-g160f685.tar.gz包,并将里面tools文件夹下的工具脚本都放置到/usr/local/bin/目录下

tar -zxvf RashmiKumari-g_mmpbsa-v1.1.0-11-g160f685.tar.gz

cp ./RashmiKumari-g_mmpbsa-160f685/tools/* /usr/local/bin/

上面安装的g_mmpbsa为预编译版本,即已经编译好并打包为可执行文件,可直接运行;从源文件包中复制的工具脚本也可直接使用Python调用。因此,下面开始测试安装的程序及脚本能否正常运行。

 

3. 测试及修复

在任意目录打开终端,输入g_mmpbsa并运行,如下:

提示“Error in user input”,即缺少用户输入数据,表示程序可正常运行。

输入MmPbSaStat.py并运行,如下:

提示“No module named builtins”,缺少builtins模块。表示当前Python版本中缺少模块。因为我使用的是CentOS 6系统,自带Python版本(2.6.6)过低,经常出现缺少Python模块的情况。为了在以后的学习工作中更方便的使用Python,我先安装最新的Python 3.6,您也可以选择手动安装这些缺少的模块。因为CentOS自带的yum工具使用的是Python 2.6,所以切记保留原来的Python 2.6,额外安装Python 3.6。

 

安装Python 3.6

下载Python 3.6源文件,得到文件Python-3.6.4.tar.xz。

tar -xf Python-3.6.4.tar.xz

cd Python-3.6.4

./configure --prefix=/usr/local/Python-3.6.4 --enable-shared

make

make install

ln -s /usr/local/Python-3.6.4/bin/python3.6 /usr/local/bin/python3.6

步骤make install出现报错

缺少zlib包,在yum库中搜索含有zlib的包:

yum search zlib

输出如下:

安装其中的zlib、zlib-devel和zlib-static。

yum -y install zlib zlib-devel zlib-static

安装成功后,重试make install安装,成功!

运行python3.6,检测是否能正确运行程序。出现如下报错:

即,缺少库文件libpython3.6m.so.1.0,此文件可在下载的Python-3.6.4.tar.xz包中找到。先使用ldd命令查看python3.6程序链接的库文件:

因为python3.6程序运行时在/lib64/目录下找不到libpython3.6m.so.1.0文件,所以出现上述报错。在之前解压的压缩包中找到libpython3.6m.so.1.0文件,并将其复制到/lib64/目录下。重新运行python3.6,成功!

 

现在修改MmPbSaStat.py脚本的第一行,将调用的python程序指定为新安装的python3.6,如下:

#!/usr/local/bin/python3.6

重新运行MmPbSaStat.py脚本,出现如下报错。

缺少numpy模块!还是要扩展Python模块啊。 o(╯□╰)o,之前我也是直接扩展Python2.6的模块,后来解决不了,也没有找到该脚本有关python版本的说明,所以才选择先升级到Python3.6。若要扩展Python模块,需要先安装扩展工具,我选择pip3,并安装之。

 

安装pip3

先安装setuptools包,点击这里下载,使用以下命令安装:

unzip setuptools-38.5.2.zip

cd setuptools-38.5.2

python3.6 setup.py build

python3.6 setup.py install

顺利通过!现在安装pip3,点击这里下载,安装步骤如下:

tar -zxvf pip-9.0.1.tar.gz

cd pip-9.0.1

python3.6 setup.py build

python3.6 setup.py install

ln -s /usr/local/Python-3.6.4/bin/pip3 /usr/local/bin/pip3

输入pip3并运行,出现用法说明,说明程序无异常,pip3安装成功!

 

现在安装Python3.6中缺失的numpy包。

pip3 install numpy

出现如下报错:

即Python中缺少ssl包,所以需要安装ssl模块,并重新编译安装Python3.6。

yum -y install openssl-devel

重新编译安装Python3.6后。重试pip3 install numpy命令,OK,顺利安装numpy包。

重试运行MmPbSaStat.py脚本,成功!现在修改其他几个g_mmpbsa的工具脚本的第一行,并测试。若缺少包,则使用pip3工具安装。

好运~

版权声明:本文由Seif Joe于2018/03/21原创发表

转载请注明:案例教程:g_mmpbsa工具的安装(Python模块缺失解决方法) | Seif Joe

分享: