本文参考自Repeat Library Construction-Advanced,整体思路一致,但是所用软件有所不同。
流程主要分析MITE和LTR,先根据其结构特征进行注释,之后根据同源信息进行注释,最后进行整合。
主要用到如下软件:
- MITE-Hunter
- genometools
- LTR_Finder
- LTR_retriever
- NCBI-BLAST
- RepeatMasker
- seqkit
- BioPerl
- perl脚本: http://www.hrt.msu.edu/uploads/535/78637/CRL_Scripts1.0.tar.gz
涉及如下几个环境变量,可以根据不同项目进行更改
- REFERENCE: 用于注释的基因组序列文件,FASTA格式
- SPECIES: 物种名
- THREADS: 线程数
MITE
使用MITE-Hunter鉴定Miniature inverted TEs (MITEs),使用方法阅读「基因组注释」MITE-Hunter鉴别基因组的MITE序列
perl MITE_Hunter_manager.pl \
-i $REFERENCE \
-g $SPECIES \
-n 5 \
-P 1 \
-S 12345678 \
-c $THREADS &
将这一步输出文件的"Step8.*fa"和"Step8_singlet.fa"进行合并,作为潜在MITE序列,命名为MITE.lib
cat *Step8.*fa *Step8_singlet.fa > MITE.lib
手工检查候选MITE中的TSD和TIR,将模棱两可的TSD和TIR归为未知序列。
LTR retrotransposons
在植物基因组中的所有重复序列中,LTR逆转座子是其中比例最高的一类结构,因此我们需要尽可能得到高可信的LTR信息。
这一步使用了LTR_retriever
分析流程,它整合LTRharverst
和LTR_FINDER
的输出结果,然后得到更可信的LTR-RT序列。
#LTRharvest
gt suffixerator \
-db $REFERENCE \
-indexname $SPECIES \
-tis -suf -lcp -des -ssp -sds -dna
gt ltrharvest \
-index $SPECIES \
-similar 85 -vic 10 -seed 20 -seqids yes \
-minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 \
-motif TGCA -motifmis 1 > ltr.harvest.scn &
# LTR_FINDER
ltr_finder -D 15000 -d 1000 -L 7000 -l 100 -p 20 -C -M 0.9 $REFERENCE > ltr.finder.scn &
LTR_retriever -genome $REFERENCE -inharvest ltr.harvest.scn -infinder ltr.finder.scn -threads $THREADS
重命名$REFERENCE.LTRlib.fa
mv $REFERENCE.LTRlib.fa LTR.lib
注,原教程步骤如下:
- 使用LTRharvest收集候选的LTR序列
- 使用LTRdigest寻找有PPT(poly purine tract)或PBS(primer binding site)的序列
- 对候选序列进行过滤,包括局部串联重复(如着丝粒重复),近期基因重复引起的局部基因聚类,两个不同转座因子距离处于邻近位置
- 识别嵌套插入的序列
- 建立代表性的LTR序列
RepeatModeler 鉴定其余重复序列
这一步用RepeatMasker
以两步构建的文库作为额外的数据库对基因组进行重复序列屏蔽,然后用RepeatModeler
从头鉴定基因组中的重复序列。
如果你输入基因组过大,那么建议将其拆分成多个小文件,然后每个文件都单独用
RepeatMasker
屏蔽序列,最后进行合并。
cat $REFERENCE.LTRlib.fa MITE.fa > MITE_LTR.lib
RepeatMasker -lib MITE_LIB.lib -dir . $REFERECE
输出文件是$REFERENCE.masked
将其中以N
标记的重复序列(或基因组上的gap)都删掉
tr -d 'nN' < $REFERENCE.masked | seqkit seq > rmmasked.fa
用RepeatModeler鉴定其余的重复序列
BuildDatabase -name rmdb -engine ncbi rmmasked.fa
nohup /opt/biosoft/RepeatModeler-open-1.0.11/RepeatModeler -data rmdb >& um.out &
输出结果是consensi.fa.classified, 在RM_xxx
文件下
进一步可以按照标识符中是否为unknown将consensi.fa.classified进行拆分
seqkit grep -nrp 'Unknown' consensi.fa.classified > repeatmodeler_unknowns.fasta
seqkit grep -vnrp 'Unknown' consensi.fa.classified > repeatmodeler_identities.fasta
在转座酶数据库中搜索repeatmodeler_unknowns序列,如果能够匹配,则归到repeatmodeler_identities
wget http://www.hrt.msu.edu/uploads/535/78637/Tpases020812.gz
gunzip
makeblastdb -in Tpases020812 -dbtype prot -out Tpases020812
blastx -query repeatmodeler_unknowns.fasta -db Tpases020812 -evalue 1e-10 -num_descriptions 10 -out modelerunknown_blast_results.txt
perl transposon_blast_parse.pl --blastx modelerunknown_blast_results.txt --modelerunknown repeatmodeler_unknowns.fasta
输出结果
- identified_elements.txt
- unknown_elements.txt
mv unknown_elements.txt ModelerUnknown.lib
cat identified_elements.txt repeatmodeler_identities.fasta > ModelerID.lib
过滤基因片段
到目前位置,我们已经构建了如下重复序列数据库
- MITE.lib: MITE重复序列数据库
- LTR.lib: LTR重复序列数据库
- ModelerID.lib: 已知分类重复数据库
- ModelerUnknown.lib: 未知分类重复数据库
如果为了进一步提高重复序列的可靠性,可以将上述序列分别和植物蛋白数据库进行比对。以ModelerUnknown.lib为例
http://www.hrt.msu.edu/uploads/535/78637/alluniRefprexp070416.gz
gunzip alluniRefprexp070416.gz
makeblastdb -in alluniRefprexp070416 -dbtype prot -out alluniRefprexp070416
blastx -query ModelerUnknown.lib -db alluniRefprexp070416 -evalue 1e-10 -num_descriptions 10 \
-num_threads 20 -out ModelerUnknown.lib_blast_results.txt
然后用ProtExcluder进行过滤
/opt/biosoft/ProtExcluder1.1/ProtExcluder.pl -f 50 ModelerUnknown.lib_blast_results.txt ModelerUnknown.lib
输出结果是Modelerunknown.libnoProtFinal
。
最后,MITE.lib, LTR.lib 和 ModelerID.lib 合并成 KnownRepeats.lib。 KnownRepeats.lib 和 Modelerunknown.lib 合并成 allRepeats.lib。
KnownRepeats.lib准确性较高,但是不一定有新的重复序列家族,allRepeats.lib 全面但不一定准。
参考文献
Campbell, M. S., Law, M., Holt, C., Stein, J. C., Moghe, G. D., Hunagel, D. E., Lei, J., Achawanantakun, R., Jiao, D., Lawrence, C. J., Ware, D., Shiu, S-H., Childs, K. L., Sun, Y., Jiang, N, Yandell, M. 2014. MAKER-P: a tool-kit for the rapid creation, management, and quality control of plant genome annotations. Plant Physiology 164 513-524.