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



配置2就好,其他可不用管。所以先键入2,一路回车选中默认后,键入5,即可完成配置。

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一样,也是没有多线程设置的,运行的时间非常漫长。中间出错十分头疼,难道又从头开始?

此时,我的目录下已经有很多临时文件:

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

RepeatClassifier -consensi consensi.fa

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

重跑开始出现如下错误:

RepeatScout filter-stage-1 failed:
Can't locate File/Which.pm in @INC (you may need to install the File::Which module) (@INC contains:

conda安装的依赖Perl中并没有安装这个模块,需要手动再安装下。或者不用这个Perl。

# 进入你的repeatmodeler环境
conda install perl-file-which

等待漫长的运行过程,最后结果如下:

6.自定义重复序列库

repeatmasker同源注释默认使用的是Dfam和RepBase库(如果你有下载),其实我用这个两个自带库就已经能屏蔽水稻约46%左右的重复序列了,直接拿来用应该没问题。

可能有些物种信息并没有这么全吧,所以要结合其他库,比如repeatmodeler从头预测的库。

我这里试图把homology和denovo库结合起来,将两者的重复序列都进行屏蔽。

首先构建水稻自带库:

/path/to/anaconda3/envs/repeat/share/RepeatMasker/util/queryRepeatDatabase.pl -species rice >rice_repeats.lib

这里千万注意不要直接用queryRepeatDatabase.pl(默认调用的是/path/to/anaconda3/envs/repeat/bin/queryRepeatDatabase.pl),要用share中的程序。否则会报错,别问我怎么知道的,折腾良久,血泪教训。

构建完成显示:

queryRepeatDatabase
===================
RepeatMasker Database: RepeatMaskerLib.embl
RepeatMasker Combined Database: Dfam_3.1, RepBase-20181026
Species: rice ( oryza sativa )

然后将同源注释库和denovo库进行整合:

cat rice_repeats.lib genome_db-families.fa >genome_custom_repeat.lib

最后屏蔽:

RepeatMasker -lib genome_custom_repeat.lib -pa 24 -xsmall genome.fa

后记

建议不要用conda安装,repeatmasker的维护人员也这么建议,有很多乱七八糟的问题没有解决。虽然手动安装比较麻烦,但它靠谱啊。

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

https://www.jianshu.com/p/2895a5e06b76

https://blog.csdn.net/weixin_33915554/article/details/86399361

https://www.jianshu.com/p/2cfc7638663d

【基因组注释】RepeatMasker和RepeatModeler安装、配置与运行避坑的更多相关文章

  1. Spark_安装配置_运行模式

    一.Spark支持的安装模式: 1.伪分布式(一台机器即可) 2.全分布式(至少需要3台机器) 二.Spark的安装配置 1.准备工作 安装Linux和JDK1.8 配置Linux:关闭防火墙.主机名 ...

  2. mac下高效安装 homebrew 及完美避坑姿势 (亲测有效)

    世上无难事,只要找到 Homebrew 的正确安装方式. Homebrew 是什么 Homebrew是 mac的包管理器,仅需执行相应的命令,就能下载安装需要的软件包,可以省掉自己去下载.解压.拖拽( ...

  3. 云服务器上安装配置Filezilla Server的坑!

    1.Filezilla被动模式配置如下,需要使用比较大号的端口,用1024以内的不行! 2.相应的,IP筛选器放开TCP-50020端口.不是UDP! 3.可以正常访问了.GOOD! 4.注意,服务器 ...

  4. 一步到位Linux中安装配置MySQL及补坑

    Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...

  5. winserver2008R2安装配置JDK+tomcat之坑

    记一次winserver安装jdk+tomcat 准备软件: jdk-8u241-windows-x64 apache-tomcat-8.5.46-windows-x64 一.安装java 1.安装j ...

  6. SSD(Single Shot MultiBox Detector)的安装配置和运行

    下文图文介绍转自watersink的博文SSD(Single Shot MultiBox Detector)不得不说的那些事. 该方法出自2016年的一篇ECCV的oral paper,SSD: Si ...

  7. vue-i18n安装配置,运行

    需求:根据浏览器语言自动切换语言 1.安装vue-i18n, yarn安装 $ yarn add vue-i18n npm安装 $ npm install vue-i18n 2.导入语言包 src下创 ...

  8. 在centos阿里云服务器上安装配置php运行环境 安装php7

    http://blog.csdn.net/kesixin/article/details/72882469 单独安装php7 http://blog.csdn.net/tang05709/articl ...

  9. MongoDB Linux 安装配置 后台运行

    介绍安装的文档很多,可以参考这篇: http://www.mkyong.com/mongodb/how-to-install-mongodb-on-mac-os-x/ 安装完后你可能会碰到的2个问题. ...

随机推荐

  1. 用例图示例:使用系统边界表示多个项目 / Using System Boundary to model Multiple Projects in Use Case Diagram

    什么是用例图? 用例是一种捕获系统功能需求的技术.用例描述了一个独立于实现细节的期望行为.用例的目标是捕获用户设想的所有系统级功能.从用户的角度来看,用例是关于系统应该做什么的.用例捕获系统利益相关者 ...

  2. 聊聊 Kubernetes Pod or Namespace 卡在 Terminating 状态的场景

    这个话题,想必玩过kubernetes的同学当不陌生,我会分Pod和Namespace分别来谈. 开门见山,为什么Pod会卡在Terminationg状态? 一句话,本质是API Server虽然标记 ...

  3. activemq实现队列的独有消费

    在我们实际的开发中可能存在这么一种情况,应用程序要向一个队列名为queue的队列中发送3条消息,需要保证这3条消息按顺序消费.必须是第一条消费完,在消费第二条然后是第三条.而我们的程序中可能有时候存在 ...

  4. STM32的串口通信

    本篇文章主要讲解一个在开发过程中经常使用到的一个外设---串口. 串口是绝大多数 MCU 中不可或缺的一个外设,同时也是我们开发中经常使用的一种调试手段,所以在STM32的学习中,串口的配置使用也是必 ...

  5. 攻防世界 杂项 12.Training-Stegano-1

    题目描述: 这是我能想到的最基础的图片隐写术.啊这 题目分析: 最初还以为直接右击属性查看呢 然后用notepad++看看,一团乱码,结果在最后发现了passwd, 然后这就是flag:stegano ...

  6. K8S_Kubernetes

    Google创造, K8S,是基于容器的集群管理平台, K8S集群   应用场景 微服务   这个集群主要包括两个部分 一个Master节点(主节点) 一群Node节点(计算节点)   Master节 ...

  7. VCS常用仿真选项开关及步骤总结

    转自:https://blog.csdn.net/bcs_01/article/details/79803304 转自:https://blog.csdn.net/wonder_coole/artic ...

  8. Verdi UVM Debug Mode 简单使用

    转载:Verdi UVM Debug Mode 简单使用_Holden_Liu的博客-CSDN博客 文档与源码: User Guide: UVMDebugUserGuide.pdf  in $VERD ...

  9. word-ladder leetcoder C++

    Given two words (start and end), and a dictionary, find the length of shortest transformation sequen ...

  10. CF #749

    A 题意 有个长度为n的序列, 每个数互不相同, 求总和最大的最长子序列, 并输出每个i: 题解 emmmmmm, 刚开始看到这个数据和题解被迷惑了, 以为有什么顺序, 并且一直在想一些复杂度较高的算 ...