[Linux] 非root安装Lefse软件及其数据分析「建议收藏」

[Linux] 非root安装Lefse软件及其数据分析「建议收藏」说明Lefse软件是宏组学物种研究常用软件,一般大家用在线版本即可。但要搭建在Linux集群环境中有点烦,记录一下折腾过程。安装这个软件是python2写的,因此假设我已经安装好了较高版本的python2以及pip等工具,在此基础上来安装lefse。lefse下载地址:https://bitbucket.org/nsegata/lefse/src/default/。这个网站有丰富…

大家好,又见面了,我是你们的朋友全栈君。

说明

Lefse软件是宏组学物种研究常用软件,一般大家用在线版本即可。但要搭建在Linux集群环境中有点烦,记录一下折腾过程。

安装

这个软件是python2写的,因此假设我已经安装好了较高版本的python2以及pip等工具,在此基础上来安装lefse
lefse下载地址:https://bitbucket.org/nsegata/lefse/src/default/。这个网站有丰富的学习内容和教程,包括MetaPhIAn等流程,有时间去好好看看。

lefse放在了bitbucket上,克隆一下到集群:

hg clone https://bitbucket.org/nsegata/lefse

完成后有如下文件:
image.png
目录下有个requirement.txt文件,里面列出了RPython需要安装的包和模块:

- 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

安装R包的过程基本上没啥问题,大部分还是我已经安装过的。python的大部分模块也没问题,难就难在了rpy2

首先,我直接用自己安装的python2使用pip安装:

pip intall rpy2

直接报语法错误,如下:
image.png
在网上找了一圈也没有碰到同类型的问题,在这里卡了很久,分析脚本貌似也没问题,而且如果这个都语法错误,作者去吃屎吧。后来我才知道这尼玛pip自动安装第三版了,而第三版只支持python3,不再支持python2

那就直接下载模块安装吧。自然地下了个较新的版本,解压后安装:

python setup.py install

直接报错,说是版本太高了,rpy的第三版已经不支持python2啦,blabla。。。我看它这里rpy2版本也有较高要求,于是下载了个2.9版本的(各旧版本
),结果还是太高,你特么不是python2写的吗!不支持python2。试了几次,干脆了个2016年发行的,这次终于可以了。

image.png

但是肯定没有这么简单,安装过程又报错了:
image.png
下载不了这个玩意:Download error on https://pypi.python.org/simple/singledispatch/。网上有些答案乱七八糟,后来找到了一个能解决问题的,直接下载singledispatch
安装即可。
image.png下载解压进入目录。
python setup.py install
成功安装singledispatch后,再次安装rpy2,这次没报错了。进入lefse目录试运行一下:
image.png
应该是可以了。
再进去example中运行下测试shell,但是这个demo是针对bioconda使用的,如果没用conda,测试不了。对于这个软件我真是服气的。
image.png

总之,lefse软件算是安装成功了吧,至于测试,后续我再试试。

第二次更新:

接着来测试上次安装好的Lefse软件,这个软件有现成的python脚本进行数据处理和绘图,怎么用的话,在下载后example中和官方文档中都有说明,这里不作说明了。简言之,就是先处理,整理好数据格式,进行绘图。

试着用自己的数据处理了下。

python format_input.py test.txt result.in -c 1 -s 2 -u 3 -o 1000000
python run_lefse.py result.in result.res
python plot_res.py result.res result.png
.......

文件结果没有问题,绘图及其后续步骤报错了:
image.png
我怀疑是自己处理的数据格式有问题,于是下载了官网的测试数据:

wget http://huttenhower.sph.harvard.edu/webfm_send/129 -O hmp_aerobiosis_small.txt

还是同样的问题,数据处理正常,绘图错误。网上查了下,没有直接相关的问题,但大致猜到是matplotlib的问题。

我的系统除了我装的python外,还有其他好几个python版本的库,我当时只将其他版本的python都注释了,然后将自己安装的python及其库路径加入了环境变量,但没有注释掉其他python版本的库。所以,我自己的python其实是没有安装matplotlib的,用的是其他版本的。

将其他版本python的库注释后,用自己的python重新安装matplotlib(一定要注释掉其他的库,否则会提示已安装,是装不上matplotlib的)。
image.png
这时,再运行lefse时,没报错,所有结果都出来了!
image.png

看来当系统有多个版本时,用conda确实是有优势的,避免版本冲突。

Ref:https://blog.csdn.net/chenKFKevin/article/details/77854232
http://blog.sciencenet.cn/blog-306699-997026.html
https://www.jianshu.com/p/b4dbd47aaeb6

转载于:https://www.cnblogs.com/jessepeng/p/11610045.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141028.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm添加conda虚拟环境[通俗易懂]

    pycharm添加conda虚拟环境[通俗易懂]

    2022年8月28日
    0
  • 免费申请国外免费域名超详细教程[通俗易懂]

    免费申请国外免费域名超详细教程[通俗易懂]1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

    2022年6月30日
    69
  • CAN协议深度解析-简单易懂协议详解[通俗易懂]

    CAN协议深度解析-简单易懂协议详解[通俗易懂]CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔五种类型。显形隐形电平CAN-bus发布了ISO11898和ISO11519两个通信标准,此两个标准中差分电平的特性不相同。显性电平:总线上只要有1个节点驱动为显性,则总线表现为显性位电平,逻辑解析为“0”。隐形电平:只有总线上的各节点都不将总线驱动成显性电平,总线才表现为隐形位对应的电平,逻辑解析为“1”。位填充:位填充是为防止突发错误而设定的功能。当同样的电平持续5位时,则添加一个位的反型数据。数据帧数据帧结构上

    2022年6月28日
    48
  • 非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

    非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。问题来源  在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。matJtJN=zeros(N,N);matResult=zeros(N,1);if(N==rank(JtJ)){JtJN=inv(JtJ);}for…

    2025年7月26日
    1
  • cuda卸载与安装

    cuda卸载与安装cuda卸载1.正常卸载操作在cuda的安装目录下,有卸载脚本1.运行卸载脚本cd/usr/local/cuda/binsudo./uninstall_cuda_9.0.pl2.删除安装文件夹sudorm-rfcudasudorm-rcuda-9.0找不到uninstall的卸载操作1.正常卸载操作sudoapt-get–purgeremovecuda:卸载软件及其配置sudoapt-getautoremovecuda

    2022年9月6日
    3
  • tracert的原理_tracert作用

    tracert的原理_tracert作用网络基础文章目录前言tracert实现原理使用方法1使用方法2前言tracerttracert简单网络诊断工具,探测数据包从源地址到目的地址经过的路由器IP地址Tracert命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。实现原理1、tracert发出TTL值为1的ICMP数据包(40个字节、源地址、目标地址和发出时间标签,一般发3个)2、当到达路径上第一个路由器时,路由器会将,TTL值减13、此时TTL值为0,该路由器

    2022年9月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号