前言背景
前段時間重裝系統(tǒng)
Anaconda全沒了,重裝了之后就沒咋管過,直到最近要用到Roary,conda config中只有defaults這個源。
Roary是一個由perl語言編寫的,主要用于抽取統(tǒng)計核心基因泛基因的生物信息學軟件,。
下面出現(xiàn)的大坑都是跟Perl里面的模塊有關(guān)
坑
大坑之一

坑一關(guān)鍵詞:找不到Roary.pm等等
這時候我重裝再重裝之后發(fā)現(xiàn),它居然給我裝的是Roary 3.7.0 最老的版本
大坑之二
-
網(wǎng)上提供的解決辦法(也是坑之一):
sudo cpan install Bio::Roary 這個解決的并不是去更換/anaconda3/envs/roary/bin/perl而是直接就在/usr/bin/下直接安裝個Roary(暈),比較好就是可以不用conda安裝,缺點就是還得配合brew使用,因為還有一堆依賴包還沒安裝。要卸載還得額外安裝個cpanp模塊去卸載,因為 cpan只管安裝不管卸載(??)。
解決辦法(分步確認)
- 第一 添加上默認源,這樣就會默認安裝最新版本的Roary了
conda config --add channels conda-forge
conda config --add channels r
conda config --add channels bioconda

最新版本的Roary安裝包
- 第二,看看到底用的是電腦中的哪個perl,是conda 虛擬環(huán)境下的perl呢,還是 /usr/bin/ 下的perl呢
which perl

usr/bin/perl

conda envs perl
若是在/usr/bin/下那就重啟目錄
第三:Roary已安裝最新版本后,再運行會有這樣的

真的裝好之后的
法一 :不改源代碼的情況下
enc2xs -C
執(zhí)行之后它會在anaconda的envs環(huán)境下創(chuàng)建ConfigLocal.pm這樣一個文件

enc2xs -C 結(jié)果
法二:打開說的那個文件看看61行到底寫了啥

Encode.pm
查了一下,說Encode::ConfigLocal這個不是很重要,那就把那行注釋掉
最后結(jié)果
風扇呼啦啦地轉(zhuǎn),文件夾下有輸出文件這就說明成功了

終端運行

當前目錄下roary輸出的文件
總結(jié)安裝免踩坑總結(jié)
- 確認自己的conda源有哪些
- 記得創(chuàng)建
Roary專屬虛擬環(huán)境 - 確認平臺是否安裝的是最新的版本的Roary
- 基本Roary出錯都是perl模塊或者版本的問題,看終端用的是哪個Perl版本
*最后就是看看少什么文件,重要的就下載,可以忽略的就把某行代碼給注釋掉
最后Roary的基本使用(測試用)
PS: Roary若不指定輸出文件,默認輸出到當前目錄下。
roary -e --mafft -p 8 -f output_dir *.gff
- -e : create a multiFASTA alignment of core genes using PRANK(生成多序列比對文件)
- --f:指定輸出文件地址
- --p:設(shè)置線程數(shù)