小马的生信笔记

基因组重复序列注释

引言

目前重复序列的注释方法有很多,但是主流的1.EDTA+RepeatMask;2.Repeatmolder+Repeatmasker,但是我在使用Repeatmolder+Repeatmasker组合进行重复序列注释的时候,Unclass的重复序列种类高达35%,这结果显然是有问题的,因此我去寻找原因,发现Repeatmolder预测的TE库本身就有很多是Unclass,最终导致RepeatMasker的输出结果也有很多是Unclass。因此,我重新使用EDTA进行TE库的预测,然后使用RepeatMasker进行重复序列的注释,即EDTA+RepeatMask,目前结果还没跑出来。

1. 软件官网

2. 下载

官网推荐直接用Conda下载,但是我用Conda下载后,使用的时候会出现LTR重复序列注释不到的问题。当我使用第二种方法,也就是手动安装依赖软件,随后使用,就不会出现这个问题。

#Conda 直接安装

conda create -n EDTA

conda activate EDTA

conda install -n bioconda::edta

# 手动安装依赖,然后安装EDTA

mamba create -n EDTA2.2 -c conda-forge -c bioconda -c r annosine2 biopython blast cd-hit coreutils genericrepeatfinder genometools-genometools glob2 h5py==3.9 keras==2.11 ltr_finder ltr_retriever mdust multiprocess muscle openjdk pandas perl perl-text-soundex pyarrow python r-base r-dplyr regex repeatmodeler r-ggplot2 r-here r-tidyr scikit-learn swifter tensorflow==2.11 tesorter

git clone https://github.com/oushujun/EDTA.git

3. 软件使用

使用测试数据验证软件是否下载成功,一般测试数据集的运行时间是5分钟,如果没有出现错误,则说明安装没问题(警告正常)。

# 测试

perl ../EDTA.pl –genome genome.fa –cds genome.cds.fa –curatedlib ../database/rice7.0.0.liban –exclude genome.exclude.bed –overwrite 1 –sensitive 1 –anno 1 –threads 10

# 运行命令

perl ./EDTA/EDTA.pl -genome $Genome -species others -step all -t 30

# 当不指定-anno 1时,EDTA只会构建一个TE的库,并不会进行注释。因此当时想不再使用RepeatMask进行注释,而是完全由EDTA进行建库+注释,可以加上-anno 1

# 参数

–genome 基因组FASTA文件
–species 指定物种
–step [all|filter|final|anno] 指定要运行EDTA的步骤。all: 运行整个流程(默认)filter: 从原始TE开始到结束。final: 从过滤后的TE开始到最终运行。
–anno [0|1] 执行(1)或不执行(0,默认)全基因组TE注释,作为TE库构建后的步骤。

# 输出结果

(1)构建的TE序列库,是后面RepeatMasker运行的指定TE库: $genome.mod.EDTA.TElib.novel.fa 

注: 下面的结果需要指定-anno 1才能输出

(2) 全基因组TE注释:$genome.mod.EDTA.TEanno.gff3。此文件包含结构完整和破碎的TE注释。 

(3)全基因组TE注释摘要:$genome.mod.EDTA.TEanno.sum。 

(4)低阈值TE掩蔽:$genome.mod.MAKER.masked。此文件仅掩蔽长TE(≥1 kb)的基因组文件。您可以将其用于de novo基因注释。在实践中,这种方法将减少基因区域的过度掩蔽,从而提高基因预测质量。然而,初始基因模型应包含TE,并需要进一步过滤。 

(5)简单TE的注释不一致性:$genome.mod.EDTA.TE.fa.stat.redun.sum。 

(6)嵌套TE的注释不一致性:$genome.mod.EDTA.TE.fa.stat.nested.sum。 

(7)整体注释不一致性:$genome.mod.EDTA.TE.fa.stat.all.sum

# 运行RepeatMasker

RepeatMasker -e rmblast -pa 20 -q -lib Lib.fasta genome.fasta -xmall

# 生成软屏蔽后的序列

maskFile.pl -fasta genome.fasta -annotations genome.out -softmask

# 生成硬屏蔽后的序列

maskFile.pl -fasta genome.fasta -annotations genome.out

《基因组重复序列注释》有4条评论

  1. 你好,我想请教个问题,我之前用EDTA做重复序列注释,有人和我说EDTA的屏蔽用的是N,所以会和作为补gap用的N混淆,会不准确,所以需要用用repeatmasker重新做一次,做软注释,想请教您有必要吗?

    回复
    • 您好,正常来说N是指未知碱基,但是EDTA的屏蔽结果会把重复序列屏蔽成N,这两者明显是不同的概念,所以我认为需要用Repeatmaker重新做一次屏蔽。

      回复
  2. 请问您现在解决Unclassified含量很高的这个问题了吗?我在使用不同的从头预测的方法后,将lib文件合并,使用了DeepTE对unknown的重复序列进行分类,最后进行了RepeatMasker注释,但仍存在大量的Unclassified。

    回复

发表评论

基因组专栏