Skip to content

2021.10.06
非模式生物重复序列注释 RepeatModeler2+RepeatMasker4

首先安装RepeatModeler2,RepeatMasker4 建议直接去官网下载,解压安装。同时安装其他包。安装流程这里不详细介绍了,网上有很多。

假设现在已经安装完毕,并且依赖包也配置完毕。

1、下载最新Dfam库和Repbase库并配置

这里使用的是3.4版本的Dfam库(https://www.dfam.org/home),.h5, .hmm, .embl 三个文件都要下载。 这里使用的是v20181026版本的Repbase库。最新的RepBase库是要收钱的,这个2018的版本是目前广为流传的免费库。

这两个库包含了目前较为完整的物种重复序列数据。

1.1 RepBase

进入RepeatMasker目录:

cd path_to_RepeatMasker
wget https://github.com/chenyangkang/Repbase-Dfam/blob/main/RepBaseRepeatMaskerEdition-20181026.tar.gz
tar -zxvf RepBaseRepeatMaskerEdition-20181026.tar.gz
这时压缩包里的两个文件RMRBSeqs.emblREADME.RMRBSeqs应该已经被放置到RepeatMasker/Libraries里面了,cd进去检查一下。

1.2 Dfam

Dfam(.h5文件)太大了,上传不了,从官网下吧

wget -c https://www.dfam.org/releases/Dfam_3.4/families/Dfam_curatedonly.embl.gz
wget -c https://www.dfam.org/releases/Dfam_3.4/families/Dfam_curatedonly.h5.gz
wget -c https://www.dfam.org/releases/Dfam_3.4/families/Dfam_curatedonly.hmm.gz
这里下载的都是Curated的(也就是不包含从头预测的物种)。如果需要从头预测的数据库可以从Dfam官网下载,包含更多物种。但因为本文讨论非模式物种的注释,RepeatModeler2基本可以完成从头预测的工作,因此只用curated数据库。后期整合到一起就行了。

gunzip Dfam_curatedonly.embl.gz
gunzip Dfam_curatedonly.h5.gz
gunzip Dfam_curatedonly.hmm.gz

mv Dfam_curatedonly.embl Dfam.embl
mv Dfam_curatedonly.h5 Dfam.h5
mv Dfam_curatedonly.hmm Dfam.hmm
这里只有改了名字,RepeatMasker才能识别。

1.3 重新congifure RepeatMasker

./configure
路径配置跟之前都一样。看到combining Dfam+RepBase之类的字样,以及配置结束以后Dfam和RepBase的版本号,说明成功了。在Libraries里会生成一个RepeatMaskerLib.h5文件,这就是Dfam+RepBase的整合。

2、导出目标非模式物种的对应上下节点Repeat families

Dfam库以及RepBase库中大多数物种都是模式物种,对于非模式物种,有两种策略进行注释: 1) 使用已有homology-based库中的近源物种,直接使用该物种的库进行注释。 2) 使用RepeatModeler2鉴别出的De novo序列加上homology-based库中部分序列进行注释(这里的“部分”指的是该类群祖先及衍生节点的序列families,当然,如果需要控制变量,也可以只用祖先节点的共有序列)。

本文只讨论第二种方法。因为注释会更加完整一些。RepeatMasker4.1.1可以使用famdb.py来访问构建的RepeatMaskerLib.h5数据库。famdb.py就在RepeatMasker文件夹里。


查看鸟类repeat families树:

famdb.py -i RepeatMaskerLib.h5 lineage \
-ad Aves
太多了,后半部分不显示。大部分物种repeat families没有记录


查找并导出鸟类及其上祖先节点、其下所有类群的repeat families:

famdb.py -i RepeatMaskerLib.h5 families \
-f embl -a -d Aves > Aves_ad.embl
$或$ 只查找并导出鸟类及其上祖先节点(可以避免衍生节点物种分布不均匀问题。当有多个物种需要注释,并且需要对比注释的比例及总量时,这样可以控制变量):
famdb.py -i RepeatMaskerLib.h5 families \
-f embl -a Aves > Aves_a.embl

-a为ancestor的意思,-d为descendent的意思。-ad可以一起写。


将embl格式转化为fasta格式,方便后期与RepeatModeler2结果合并

buildRMLibFromEMBL.pl Aves_a.embl> Aves_a.fasta
buildRMLibFromEMBL.pl脚本在RepeatMasker/util文件夹里


3、RepeatModeler2从头预测

假设已经configure结束。没有安装或configure的朋友可以看看晚上其他安装教程。

###用序列文件构建数据库
BuildDatabase -name ${i}  -engine rmblast ${i}.fna
###RepeatModeler根据数据库比对预测repeats
RepeatModeler -database ${i}  -pa 5
其中${i}为基因组文件名 也可以添加LTR结构搜索pipeline:
RepeatModeler -database ${i}  -pa 5 -LTRStruct
我没用过这个-LTRStruct参数,不知道效果如何。 这里的-pa是并行数。如果是rmblast/ncbi搜索引擎的话每个pa是4个线程。所以这里-pa设置为5,在提交脚本时就要请求20个线程。

顺利的话最后得到一个文件夹,以及一个${i}-families.fa,一个${i}-families.stk文件。

4、整合de novo预测数据库及homology-based数据库

因为都是fasta格式(Aves_a.embl转化为fasta了,见上文),cat到一起就行了

cat ${i}-families.fa Aves_a.fasta > all_${i}_final.fasta

5、RepeatMasker注释

RepeatMasker -xsmall -poly \
-pa 5 -lib ${i}.all.repeat.db.fasta -engine ncbi ${i}.fna
参数就不说了,RepeatMasker -h看一下吧。

大功告成


结果显示,de novo-based和homology-based一起用比单个用要多注释30%-50%(对我的数据而言)。

欢迎讨论