【基因组注释】RepeatMasker和RepeatModeler安装、配置与运行避坑

目录

1.conda安装

conda安装虽然简单,但还是有很多坑,而且很多都是隐形的坑。

# conda install -c bioconda repeatmasker
conda install -c bioconda repeatmodeler

repeatmodeler依赖于repeatmasker,因此其实你只要安装repeatmodeler就好。其中repeatmasker很大,270多Mb,网络不行的话你需要多换几个镜像试试。

安装后,试运行各个程序没毛病,但其实隐藏杀机。

2.配置RepBase

RepBase注册下载需要审核等待,在网上找现成的就好。RepBaseRepeatMaskerEdition-20181026.tar.gz解压后,将其复制到RepeatMasker/Libraries下面。RepBase解压后主要文件是RMRBSeqs.emblREADME.RMRBSeqs,如有必要(目前我还没用到,所以这里可不用转化),可以通过以下脚本awk.sh转化为fasta:

/^ID/   {printf(">%s;",$0); next;}
/^(PT|PA)/  {printf(" %s;",$0); next;}
/^\/\// {printf("\n"); next;}
/^    / {printf("\n%s",substr($0,5)); next;}
    {   
    /* ignore default */
    }   
END   {   
    printf("\n");
    }

运行:

awk -f awk.sh RMRBSeqs.embl >raw.fasta
cat raw.fasta | cut -f1-9 -d' '| sed -e 's/ID   //g' | sed -e 's/repeatmasker\;//g'| sed -e 's/ //g' > RepBase.fasta

然后在RepeatMasker目录下配置环境:

cd /path/to/share/RepeatMasker
perl ./configure

【基因组注释】RepeatMasker和RepeatModeler安装、配置与运行避坑
配置2就好,其他可不用管。所以先键入2,一路回车选中默认后,键入5,即可完成配置。
【基因组注释】RepeatMasker和RepeatModeler安装、配置与运行避坑

3.RepeatMasker避坑

具体参数查看帮助,以下列出主要参数,最好根据资源多设几个线程。

RepeatMasker -nolow -no_is -norna -e ncbi -parallel 30  genome.fa

上面是没有指定物种的,结果证明不加物种名,我的重复序列总共只有0.1%,少得可怜。指定后,高达50%!

RepeatMasker -nolow -no_is -norna -e ncbi -parallel 30  -species rice genome.fa

这里对结果也不做说明,请查看官方文档或其他教程。

4.RepeatProteinMask避坑

repeatProteinMask比repeatMasker花费的时间要长得多(屏蔽简单串联重复)。悲哀的是,刚运行无错误,运行到一半时,出现如下错误:

Masking Simple Repeats...
   - Tandem Repeats: 204178
Masking Repeat Proteins...
NCBIBlastXSearchEngine::search: Error...compressed subject database (/RepeatPeps.lib) does not exist!
 at /biosoft/anaconda3/envs/repeat/share/RepeatMasker/RepeatProteinMask line 371.

找了一圈,GitHub上提了issue:RepeatProteinMask error in LIBDIR location #41
,有位大佬解决了这个问题,那就是将RepeatProteinMask程序的192行中的LIBDIR_DIR替换为LIBDIR

my $LIBDIR = $config->{'LIBDIR_DIR'}->{'value'}
#改为
my $LIBDIR = $config->{'LIBDIR'}->{'value'}

维护人员说已经在新版中修复此bug,很显然conda安装的不是新版。

5.RepeatModeler避坑

RepeatModeler denovo注释的命令很简单:

BuildDatabase -name ricedb genome.fa
RepeatModeler -database ricedb -pa 20 >run.out

但是不会一帆风顺,运行到一半时,又出错:

Number of sequences (bp) added to database: 144 ( 398253226 bp )
Missing /biosoft/anaconda3/envs/repeat/share/RepeatMasker/Libraries/RepeatMasker.lib.nsq!
Please rerun the configure program in the RepeatModeler directory
before running this script.

去RepeatMasker/Libraries目录下看了一下,RepeatMasker.lib文件是空的,没有内容,RepeatMasker.lib.nsq及其他索引文件都没有!

说明RepeatMasker的安装就是有问题的。Libraries下完整的文件应该包含:


Artefacts.embl  Dfam.hmm       RepeatAnnotationData.pm  RepeatMasker.lib.nin  RepeatPeps.lib      RepeatPeps.lib.psq
CONS-Dfam_3.0   README.meta    RepeatMasker.lib         RepeatMasker.lib.nsq  RepeatPeps.lib.phr  RepeatPeps.readme
Dfam.embl       RMRBMeta.embl  RepeatMasker.lib.nhr     RepeatMaskerLib.embl  RepeatPeps.lib.pin  taxonomy.dat

同样地,Github上也有一个issue:Repeatmodeler package not working #9988
但是内容太泛了,看多了头晕。

最后在另一个地方看到答案解决:How to fix RepeatMasker.lib.nsq missing error when running RepeatModelor?

在Libraries目录下,解决方法:

pushd $CONDA_PREFIX/share/RepeatMasker
./util/buildRMLibFromEMBL.pl Libraries/RepeatMaskerLib.embl > Libraries/RepeatMasker.lib
perl ./configure #同之前配置
echo -e "\n2\n$(dirname $(which rmblastn))\n\n5\n" > tmp && ./configure < tmp

关于最后一条命令的解释,文中也有说明。

RepeatModeler 和RepeatProteinMask一样,也是没有多线程设置的,运行的时间非常漫长。中间出错十分头疼,难道又从头开始?

此时,我的目录下已经有很多临时文件:
【基因组注释】RepeatMasker和RepeatModeler安装、配置与运行避坑

网上说,运行到报错这一步,应该是已经注释完,后续是用RepeatClassifier对consensi.fa进行分类,命令如下:

RepeatClassifier -consensi consensi.fa

此时,可以正常运行。但为了保证结果的完整性,我还是决定从头重跑。

后记

生物信息太折腾,我要少活很多年。

https://www.jianshu.com/p/2895a5e06b76
https://blog.csdn.net/weixin_33915554/article/details/86399361

上一篇:eclipse-indigo 中 user libraries 自动部署 WEB-INF/lib 配置


下一篇:Tensorflow框架无法调用GPU而使用CPU计算的解决方法