[Linux] 非root安裝Lefse軟件及其數據分析


說明

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM