基因组从0开始注释(2):EDTA转座子注释

1. EDTA

1.1 EDTA介绍

EDTA是一个用于自动化全基因组的转座元件(transposable elements,TE)从头注释(de-novo)注释和评估TE注释的综合软件。

EDTA运行和调用软件的流程:

  1. LTR预测
  • LTR_FINDER预测LTR
  • LTRharvest预测LTR
  • LTR_retriever确认前两个软件预测的LTR
  1. TIR预测
  • Generic Repeat Finder
  • TIR-Learner预测TIR
  1. Helitrons预测
  • HelitronScanner
  1. filter过滤
  • 以上三种TE预测结束后做basic filter获得full-length TEs
  • 进一步做advance filter,获得raw library
  • 与指定的curated library合并
  • 用RepeatModeler做训练
  • 用指定的CDS做最后的filters
  1. 获得最终的final TE library
  2. Annotation
  3. Evaluation

1.2. EDTA 安装

参考开发者推荐的安装方式

注意RepeatMasker安装的Repbase库的加入,参考RepeatMasker的安装。

1.2.1. quick installation using conda

  1. 下载EDTA git clone https://github.com/oushujun/EDTA.git
  2. 用EDTA.yml创建新的环境和安装依赖 conda env create -f EDTA.yml

1.2.2. another installation using conda

  1. 【推荐】创建新的环境并进入 conda create -n EDTA conda activate EDTA [xsdkcapb.xls](../../../Downloads/xsdkcapb.xls)
  2. 三种方式安装EDTA:
  • 安装EDTA conda install -c bioconda -c conda-forge edta
  • 安装EDTA和指定版本依赖 conda install -c conda-forge -c bioconda edta python=3.6 tensorflow=1.14 'h5py<3'
  • 用mamba加速安装 conda install -c conda-forge mamba mamba install -c conda-forge -c bioconda edta python=3.6 tensorflow=1.14 'h5py<3'

1.2.3. singularity安装

singularity pull EDTA.sif docker://oushujun/edta:<tag>

1.2.4. docker安装

docker pull docker://oushujun/edta:<tag>

1.3. EDTA 使用

nohup EDTA.pl --genome sample.fa --cds sample.cds --species others --step all --sensitive 1 --anno 1 --evaluate 1 -t 30 &

参数解释:

  • –genome 基因组文件
  • –cds 提供这个种或近缘种的CDS序列(不能包括introns和UTR),用于最终过滤。
  • –rmout 提供其他软件做的同源TE注释(比如repeatmasker的.out文件),如果不提供则默认使用EDTA - library用于masking。
  • –species [Rice Maize others]三种可选
  • –step [all filter final anno]
  • -sensitive: 是否用RepeatModeler分析剩下的TE,默认是0,不要。RepeatModeler会增加运行时间。
  • -anno: 是否在构建TE文库后进行全基因组预测,默认是0.
  • -evalues: 默认是0,需要同时设置-anno 1才能使用。能够评估注释质量,但会显著增加分析时间。
  • –overwrite默认是0,设定为1会删除已有结果重新运行,建议保持默认,运行中断可以继续运行。

简化推荐版: nohup EDTA.pl --genome sample.fa --cds sample.cds --species others --step all --anno 1 -t 36 &

1.4. 结果文件

  • genome.mod.EDTA.TElib.fa:最终结果,非冗余的TE库。如果在输入文件中用–curatedlib指定的修正版TE库,则该文件中也将包含这部分序列。
  • genome.mod.EDTA.TElib.novel.fa: 新TE类型。该文件包括在输入文件中用–curatedlib指定的修正版TE库没有的TE序列,即genome.mod.EDTA.TElib.fa减去–curatedlib指定库(需要–curatedlib参数)。
  • genome.mod.EDTA.TEanno.gff: 全基因组TE的注释。该文件包括结构完整和结构不完整的TE的注释(需要–anno 1参数)。
  • genome.mod.EDTA.TEanno.sum: 对全基因组TE注释的总结(需要–anno 1参数)。
  • genome.mod.MAKER.masked: 低阈值TE的屏蔽。该文件中仅包括长TE(>= 1 kb)序列(需要–anno 1参数)。
  • genome.mod.EDTA.TE.fa.stat.redun.sum: 简单TE的注释偏差(需要–evaluate 1参数)。
  • genome.mod.EDTA.TE.fa.stat.nested.sum:嵌套型TE注释的偏差(需要–evaluate 1参数)。
  • genome.mod.EDTA.TE.fa.stat.all.sum: 注释偏差的概述(需要–evaluate 1参数)。

1.5. 评估已有TE注释

当已有TE库结果,想要与其他软件(比如RepeatMasker)预测结果比较,可以用EDTA的脚本lib-test.pl进行,评估是通过与参考注释进行比较来进行的。

1.5.1. 用RepeatMasker根据已有TE库进行注释

RepeatMasker -pa 36 -q -no_is -norna -nolow -div 40 -lib sample.TE.lib.fasta -cutoff 225 sample.fa

1.5.2. 用lib-test.pl进行TE注释的比较和评估

lib-test.pl 是一个用于比较不同转座元件(TE)注释库性能的 Perl 脚本。它通过分析基因组上标准库与测试库的注释结果,评估不同注释库对特定 TE 类型的覆盖率和分类效果。

lib-test.pl -genome sample.fa -std genome.stdlib.RM.out -tst genome.testlib.RM.out -cat LTR

​ • -genome:基因组序列文件。

​ • -std:标准库注释的 RepeatMasker .out 文件。

​ • -tst:测试库注释的 RepeatMasker .out 文件。

​ • -cat:评估目标为 LTR 元件。

​ • -N:将 N 碱基计入基因组总长度。

​ • -unknown:不将未分类注释纳入目标类别。

​ • -threads:使用 8 个线程以提高运行速度。