前言背景
前段时间重装系统
Anaconda全没了,重装了之后就没咋管过,直到最近要用到Roary,conda config中只有defaults这个源。
Roary
是一个由perl语言编写的,主要用于抽取统计核心基因泛基因的生物信息学软件,。
下面出现的大坑都是跟Perl
里面的模块有关
坑
大坑之一
这时候我重装再重装之后发现,它居然给我装的是Roary 3.7.0 最老的版本
大坑之二
-
网上提供的解决办法(也是坑之一):
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
- 第二,看看到底用的是电脑中的哪个perl,是conda 虚拟环境下的perl呢,还是 /usr/bin/ 下的perl呢
which perl
若是在/usr/bin/
下那就重启目录
第三:Roary已安装最新版本后,再运行会有这样的
法一 :不改源代码的情况下
enc2xs -C
执行之后它会在anaconda的envs环境下创建ConfigLocal.pm这样一个文件
法二:打开说的那个文件看看61行到底写了啥
查了一下,说Encode::ConfigLocal这个不是很重要,那就把那行注释掉
最后结果
风扇呼啦啦地转,文件夹下有输出文件这就说明成功了
总结安装免踩坑总结
- 确认自己的conda源有哪些
- 记得创建
Roary
专属虚拟环境 - 确认平台是否安装的是最新的版本的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:设置线程数