本文參考自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.