Bioinfo: LEfSe 安装问题及解决办法 (Linux)

下载软件

wiki
install from source
具体看第四步,将文件下载到Linux上并解压缩

前置要求

  • R
  • R libraries: splines, stats4, survival, mvtnorm, modeltools, coin, MASS
  • python libraries: rpy2 (v. 2.1 or higher), numpy, matplotlib (v. 1.0 or higher), argparse

在运行LEfSe之前请确保安装了以上这些软件/包/模块

安装rpy2

rpy2官网
软件环境:Linux, Python 2.7, R 3.3.3
pip install rpy2
报错:

rpy2 is no longer supporting Python < 3. Consider using an older rpy2 release when using an older Python release.

虽然官方documentation中提到rpy2支持python2.7,然而在实际操作中,却出现了上述版本不支持的问题。于是,我下载了最新版本的python 3.6.3 并再次下载rpy2:
pip3 install rpy2
这时,又出现了报错

R was not built as a library

rpy2安装使用中的问题
Linux安装R记要
百度+Bing+Google之后,参考上面两篇博文,终于发现问题所在:原来在R编译的过程中,必须选择--enable-R-shlib 选项,将R编译成lib模式!
因此,我重新下载最新版本的R 3.4.2并编译安装:
./configure --prefix= --enable-BLAS-shlib --with-blas --with-lapack
make && make install
最重要的是如果R安装到个人路径下,记得添加环境变量:

export R_HOME=path-to-R
export R_LIBS=$R_HOME/lib64/R/library
export LD_LIBRARY_PATH=$R_HOME/lib:$LD_LIBRARY_PATH
export PATH=$R_HOME/bin:$PATH

这时,再安装rpy2就可以成功安装了:
pip3 install rpy2


测试运行LEfSe example

在下载并解压好软件后,进入软件文件夹下的example文件夹,run这个例子:
cd nsegata-lefse-54694b4b0d9e/example
sh run.sh
这时,报错如下:

ImportError: No module named rpy2.robjects

错误是Python没有安装rpy2这个模块
然而,我们这时已经安装了rpy2,让我们来仔细看看run.sh这个文件:

../run_lefse.py hmp_aerobiosis_small.in hmp_aerobiosis_small.res

系统默认用python 2.7来运行,而我们的rpy2下载在python 3.6的模块里,因此系统用python 2.7执行命令时自然就找不到rpy2这个模块了。所以我将run.sh文件中所有执行python的命令改成用python3.6执行:
python3 ../run_lefse.py hmp_aerobiosis_small.in hmp_aerobiosis_small.res
然而,又出现了报错,因为软件的code是python2写的,用python3执行python2的code时就会报错。因此,我用了2to3reindent两个python工具来将python2的code转换成python3的code。但是值得注意的是,2to3这个自动转换工具只能转换一些语法,有另一部分是需要手动修改的。在修改之后,成功运行命令,这个软件终于可以使用了!


生信软件安装就是一个又一个的报错。
April.W @Fulgent

你可能感兴趣的:(Bioinfo: LEfSe 安装问题及解决办法 (Linux))