本文参考自Repeat Library Construction-Advanced,整体思路一致,但是所用软件有所不同。
流程主要分析MITE和LTR,先根据其结构特征进行注释,之后根据同源信息进行注释,最后进行整合。
主要用到如下软件:
涉及如下几个环境变量,可以根据不同项目进行更改
使用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逆转座子是其中比例最高的一类结构,因此我们需要尽可能得到高可信的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
注,原教程步骤如下:
这一步用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
输出结果
mv unknown_elements.txt ModelerUnknown.lib
cat identified_elements.txt repeatmodeler_identities.fasta > ModelerID.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.