一、簡(jiǎn)介
長(zhǎng)末端重復(fù)序列(long terminal repeated,LTR):反轉(zhuǎn)錄病毒的基因組的兩端各有一個(gè)長(zhǎng)末端重復(fù)序列(5'—LTR和3'—LTR)挚瘟,不編碼蛋白質(zhì)蝇率,但含有啟動(dòng)子,增強(qiáng)子等調(diào)控元件刽沾,病毒基因組內(nèi)的LTR可轉(zhuǎn)移到細(xì)胞原癌基因鄰近處本慕,使這些原癌基因在LTR強(qiáng)啟動(dòng)子和增強(qiáng)子的作用下被激活,將正常細(xì)胞轉(zhuǎn)化為癌細(xì)胞侧漓。
結(jié)構(gòu)見(jiàn)下圖
圖中TSD表示target site duplications锅尘,紅色三角表示LTR motif。A圖是一個(gè)完整的LTR結(jié)構(gòu)布蔗,其中a,b,c是LTR_retriever
的分析目標(biāo)藤违。
Annotation of LTR retrotransposons relies primarily on de novo approaches due to their highly diverse terminal repeats.
二、軟件使用
Given DNA sequences, it predicts locations and structure of full-length LTR retrotransposons accurately by considering common structural features.
ab initio LTR retrotransposon finding.
analysis of many sequences of LTR elements in nearly 20 years revealed some structural features (signals) common in these elements, including Long Terminal Repeats (LTRs), Target Site Repeats (TSRs), Primer Binding Sites (PBSs), Polypurine Tract (PPT) and TG ... CA box, as well as sites of Reverse Transcriptase (RT), Integrase (IN) and RNaseH (RH). These results have made ab initio computer discovery of LTR elements possible.
第一步纵揍,用LTR_FINDER
找到基因組的LTR序列
~/opt/biosoft/LTR_Finder/source/ltr_finder \
-D 20000 -d 1000 \
-L 700 -l 100 \
-p 20 -C -M 0.9 Athaliana.fa >Athaliana.finder.scn
-
-D
表示5'和3'LTR之間的最大距離;-d
表示5'和3'LTR之間的最小距離; -
-L
表示5'和3'LTR序列的最大長(zhǎng)度;-l
表示5'和3'LTR序列的最小長(zhǎng)度; -
-p
表示完全匹配配對(duì)的最小長(zhǎng)度; -
-C
表示檢測(cè)中心粒(centriole)刪除高度重復(fù)區(qū)域; -
-M
表示最小的LTR相似度顿乒。
第二步運(yùn)行LTR_retriever
根據(jù)LTR_FINDER
的輸出識(shí)別LTR-RT,生成非冗余LTR-RT文庫(kù)泽谨,可用于基因組注釋
>~/opt/biosoft/LTR_retriever/LTR_retriever -threads 4 -genome Athaliana.fa -infinder Athaliana.finder.scn
這里的-infinder
表示輸入來(lái)自于LTR_FINDER
璧榄,這一步會(huì)調(diào)用RepeatMasker,而RepeatMasker要求序列ID長(zhǎng)度不大于50個(gè)字符
三吧雹、LTR_FINDER_parallel
LTR_FINDER的并行化能夠快速識(shí)別長(zhǎng)末端重復(fù)逆轉(zhuǎn)錄轉(zhuǎn)座子
我們假設(shè)高度復(fù)雜基因組的完整序列可能包含大量復(fù)雜的嵌套(nested)結(jié)構(gòu)骨杂,以指數(shù)級(jí)增加搜索空間。為了分解這些復(fù)雜的序列結(jié)構(gòu)雄卷,我們將染色體序列分成相對(duì)較短的片段(1Mb)搓蚪,并且并行地執(zhí)行LTR_FINDER。我們期望LTR_FINDER_parallel的時(shí)間復(fù)雜度為O(n)丁鹉。對(duì)于高度復(fù)雜的區(qū)域(即著絲粒)妒潭,其中一段可能需要相當(dāng)長(zhǎng)的時(shí)間(即數(shù)小時(shí))。為了避免在這些區(qū)域中延長(zhǎng)的操作時(shí)間揣钦,我們使用了一個(gè)超時(shí)方案(300秒)來(lái)控制子進(jìn)程可以運(yùn)行的最長(zhǎng)時(shí)間雳灾。如果超時(shí),則將1Mb片段進(jìn)一步分割為50kb片段拂盯,以挽救LTR候選片段佑女。在處理所有片段后,將LTR候選基因的區(qū)域坐標(biāo)轉(zhuǎn)換回基因組水平坐標(biāo)谈竿,便于下游分析团驱。
We hypothesized that complete sequences of highly complex genomes may contain a large number of com?plicated nested structures that exponentially increase the search space. To break down these complicated sequence structures, we **split chromosomal sequences into relatively short segments (1 Mb) **and executes LTR_FINDER in parallel. We expect the time complexity of LTR_FINDER_parallel is O(n). For highly complicated regions (i.e., centromeres), one segment could take a rather long time (i.e., hours). To avoid extended operation time in such regions, we used a timeout scheme (300 s) to control for the longest time a child process can run. If timeout, the 1 Mb segment is further split into 50 Kb segments to salvage LTR candidates. After processing all segments, the regional coordinates of LTR candidates are converted back to the genome-level coordinates for the convenience of downstream analyses.
Usage: perl LTR_FINDER_parallel -seq [file] -size [int] -threads [int]
Options:
-seq [file] Specify the sequence file.
-size [int] Specify the size you want to split the genome sequence.
Please make it large enough to avoid spliting too many LTR elements. Default 5000000 (bp).
-time [int] Specify the maximum time to run a subregion (a thread).
This helps to skip simple repeat regions that take a substantial of time to run. Default: 1500 (seconds).
Suggestion: 300 for -size 1000000. Increase -time when -size increased.
-try1 [0|1] If a region requires more time than the specified -time (timeout), decide:
0, discard the entire region.
1, further split to 50 Kb regions to salvage LTR candidates (default);
-harvest_out Output LTRharvest format if specified. Default: output LTR_FINDER table format.
-next Only summarize the results for previous jobs without rerunning LTR_FINDER (for -v).
-verbose|-v Retain LTR_FINDER outputs for each sequence piece.
-finder [file] The path to the program LTR_FINDER (default v1.0.7, included in this package).
-threads|-t [int] Indicate how many CPU/threads you want to run LTR_FINDER.
-check_dependencies Check if dependencies are fullfiled and quit
-help|-h Display this help information.
1. Input
Genome file in multi-FASTA format.
2. Output
GFF3, LTRharvest (STDOUT)or LTR_FINDER (-w 2) formats of predicted LTR candidates.
3. Parameter setting for LTR_FINDER
Currently there is no parameter settings for LTR_FINDER in this parallel version. I have chose the "best" parameters for you,Please refer to LTR_FINEDR for details of these parameters.
-w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85
If you want to use other parameters in LTR_FINDER_parallel, please edit the file LTR_FINDER_parallel
line 9 to change the preset parameters.
Based on our previous study [1], we applied the optimized parameter for LTR_FINDER (?w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85), which identifies long terminal repeats ranging from 100 to 7000 bp with identity ≥85% and interval regions from 1 to 15 Kb. The output of LTR_FINDER_parallel is convertible to the popular LTRharvestformat, which is compatible to the high-accuracy post-processing filter LTR_retriever.
4. Performance benchmark
Genome | Arabidopsis | Rice | Maize | Wheat |
---|---|---|---|---|
Version | TAIR10 | MSU7 | AGPv4 | CS1.0 |
Size | 119.7 Mb | 374.5 Mb | 2134.4 Mb | 14547.3 Mb |
Original memory (1 CPU*) | 0.37 Gbyte | 0.55 Gbyte | 5.00 Gbyte | 11.88 Gbyte |
Parallel memory (36 CPUs*) | 0.10 Gbyte | 0.12 Gbyte | 0.82 Gbyte | 17.67 Gbyte |
Original time (1 CPU) | 0.58 h | 2.1 h | 448.5 h | 10169.3 h |
Parallel time (36 CPUs) | 6.4 min | 2.6 min | 10.3 min | 71.8 min |
Speed up | 5.4 x | 48.5 x | 2,613 x | 8,498 x |
Number of LTR candidates (1 CPU) | 226 | 2,851 | 60,165 | 231,043 |
Number of LTR candidates (36 CPUs) | 226 | 2,834 | 59,658 | 237,352 |
% difference of candidate # | 0.00% | 0.60% | 0.84% | -2.73% |
*Intel(R) Xeon(R) CPU E5-2660 v4 @ 2.00GHz
5. FAQs and best practices
(1)How to generate output files for
A: You can use the -harvest_out
parameter to generate LTRharvest
-format output, then feed to LTR_retriever
using -inharvest
. If you have more than one LTRharvest
output, simply cat
them together.
(2)How to prepare the genome file?
A: It's highly recommended to use short and simple sequence names. For example, use letters, numbers, and _ to generate unique names shorter than 15 bits. This will make your downstream analyses much more easier. If you have delicate sequence names and encounter errors, you may want to simplify them and try again.
(3)Do I really need to modify the -size
, -time
, and -try1
parameters?
A: Not really. Except when you are 100% sure what you are doing, these parameters are optimized for the best performance in general.
6. Issues
Currently I am using a non-overlapping way to cut the original sequence. Some LTR elements could be broken due to this. So far the side-effect is minimal (< 1% loss) comparing to the performance boost (up to 8,500X faster). I don't have a plan to update it to a sliding window scheme. Welcome to improve it and request for merge.
參考來(lái)源:
https://github.com/xzhub/ltr_finder
https://gitee.com/xdkong/LTR_FINDER_parallel
https://www.cnblogs.com/bio-mary/p/12187157.html
Ou S, Jiang N. LTR_FINDER_parallel: parallelization of LTR_FINDER enabling rapid identification of long terminal repeat retrotransposons. Mob DNA 2019;10(1):48.