TE的鉴定
转座子鉴定方法
转座子的鉴定方法基本归于两大类:从头预测、基于同源比对。
-
从头预测算法 de novo 包括:基于基因组序列比对的方法、K-mer 方法、基于结构特征的方法
基于同源性的方法包括:基于同源序列比对的方法、基于隐马尔柯夫模型( HMM) 的方法
不同的算法实现的目标有所不同, 如从头算法主要是为了发现新的转座子, 因此常用来在新测序的基因组中鉴别新的转座子,而多数基于同源性算法的软件主要被用来注释基因组中的转座子
从头( De novo ) 算法
-
从头算法鉴别转座子的原理是基于转座子的重复特征,该算法可在不借助任何转座子数据库的情况下查找到几乎所有类型的转座子。优点:算法主要用于发现新的、未注释的转座子家族, 对于高频出现的转座子鉴别尤其有效。缺点:计算量大。另外, 由于从头算法是基于用一个转座子的拷贝数来定义重复家族, 这样低拷贝数的转座子可能被忽略掉。根据算法原理的不同, 从头算法又包括基于基因组序列比对的方法、K-mer 方法和基于结构特征的方法。
-
基于基因组序列比对的方法。基于序列相似性,该方法利用 BLAST 等软件将基因组与基因组进行比对, 然后将双序列比对的结果转换成多序列比对, 最后用聚类方法将相关序列聚成家族,从而得到重复序列( 包括转座子) 家族。代表:RECON
-
K-mer 方法。 该类从头算法检索重复出现的定长 Kmer 种子( 序列短串) , 然后再将它扩展为更长的序列。代表:RepeatScout。软件首先在未知的基因组序列中计算出所有定长 K-mer 种子出现的频率, 再选择出最高频率的 K-mer 种子及其周围区域的序列, 一次一个碱基向两边扩展, 每次生成一条具有代表性 K-mer 重复家族的共有序列。然后调整已出现过的 K-mer 频率数, 再选择出包括调整过的最高频率 K-mer 及其周围区域序列, 扩展并产生共有序列,直到最高频率到达所设定的最小阈值结束, 这样就得到了这一基因组的转座子家族。RepeatScout与 RECON 相比, 所得到结果更加准确,而且敏感度和运行速度都有很大的提高。其他使用 K-mer 方法的软件还有RepeatFinder等。
-
基于结构特征的算法。 转座子中 LTR 逆转录转座子、SINE、微型反向重复转座元件( MITE) 、Helitron 等都具有较明显的特征, 基于结构特征的算法可根据这些特征对这些转座子进行鉴别。代表:LTR_STRUC,LTR_FINDER,LTRharvest ,LTRdigest。LTR_finder 和 LTRharvest 是目前为止鉴定 LTR 最敏感的程序,但假阳性依然很高。
基于同源性的算法
- 基于同源性的算法是将一条未知序列与已知的转座子序列或序列特征模型进行比较,从而鉴别转座子的一类方法。根据同源序列比较方法的不同, 基于同源性的方法又可分为基于同源序列比对的算法和基于 HMM 的算法 2 类。
-
基于同源序列比对的算法。该类算法与从头算法中的基于基因组序列比对的方法都是使用 BLAST 等工具来发现序列相似性, 但与后者不同的是, 基于同源序列比对的方法是将未知序列与数据库中的转座子序列进行比较来鉴别转座子。转座子数据库可使用公共数据库 Repbase, 但现在自己物种的研究,基本都是通过当前的全基因组序列,训练重复序列集构建本地repeat library,再通过RepeatMasker注释重复序列。其中,与RepeatMasker配套的RepeatModeler,可以实现。
代表:RepeatMasker。RepeatMasker 利用 BLAST 工具在转座子数据库(Repbase或者自己构建的repeat library)中比对查找已知的重复因子家族, 是目前基因组转座子注释最常用的软件。 - 基于 HMM 的算法。中文论述见 https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CJFD&dbname=CJFD2013&filename=AHNY201308003&uniplatform=NZKPT&v=%25mmd2Fe0g9nSKUuUK1GjQz6eD4Op0avSl%25mmd2BYGyQTsPxiKcx27YQ9yw%25mmd2FVAPSWnHERxDx8gt
RepeatModeler,LTR_retriever
-
RepeatModeler 利用全基因组序列从头预测(de novo),训练重复序列集构建本地 repeat library。
RepeatModeler1.0 核心组件是 RECON(de novo,基于基因组序列比对)和 RepatScout (de novo,基于 K-mer)。RepeatModeler2.0更新后加入了 LtrHarvest(de novo,基于结构),LTR_retriever(主要有LTR_FINDER,LTRharvest,都是 de novo 基于结构) 等,可以识别LTR的结构。 -
公司的重复序列注释流程:使用RepeatModeler从头鉴定(都是 de novo,1.0基于基因组序列比对,基于 K-mer;2.0 基于基因组序列比对,基于 K-mer,基于结构)重复区域家族,生成repeat library。然后再用RepeatMasker(基于同源性)鉴别基因组上的重复区域。
自己看Repeatmodeler+Repeatmasker 跑出来的重复序列结果,发现,会存在一段序列注释为两种类型,如可能会是Copia,然后又被注释为LTR/unkonwn,但是不多,300多万个数目中有30几个会注释重复
-
用 LTRharvest 和 LTRdigest 进行 LTR 基于结构 的从头预测( de novo,基于结构 )
-
2017 年密歇根州立大学园艺系的 Shujun Ou 团队开发 LTR_retriever 平台用于 LTR 的鉴定,文章发表在 Plant Physiology 上。这是一款整合软件,以一或多个 LTR 预测软件鉴定 LTR 的结果作为输入文件,通过不同模块对 LTR 进行过滤和修正来对预测软件的预测结果进行整合和调整,得到非冗余精准且完整的物种特异 LTR 库,再使用 RepeatMasker 进行预测。
LTR_retriever不是一个独立的工具,他的主要作用就是整合 LTRharvest, LTR_FINDER, MGEScan 3.0.0, LTR_STRUC, 和 LtrDetector的结果,过滤其中的假阳性LTR-RT,得到高质量的LTR-RT库。尽管LTR_retriever支持多个LTR工具的输入,但其实上LTRharverst和LTR_FINDER的结果就已经很不错了。目前推荐的是LTR_Finder(de novo,基于结构)和LTR_harvest(de novo,基于结构)组合鉴定,之后使用LTR_retreiver整合两者的结果。
EDTA
EDTA流程图- EDTA, 全称是 Extensive de-novo TE Annotator, 一个综合性的流程工具,它整合了目前LTR预测工具结果(LTR_retriever,基于结构),TIR预测工具结果,MITE预测工具结果,Helitrons预测工具结果,从而构建出一高可信,非冗余的TE数据库,再通过 RepeatMasker(基于同源性) 注释重复序列。
之前仓促做的分析,一些参数没有摸透,记录可能有错误的地方
分析:生成基因组中的原始的所有TE库
EDTA.pl --genome xx.genome.fasta --cds xx.final.gene.longest.gff3.cds.fa --exclude xx.gene.bed \
--curatedlib ./library_EDTA/xx.fa --species others --overwrite 1 --sensitive 1 --anno 1 --evaluate 1 --threads 32
GitHub - oushujun/EDTA: Extensive de-novo TE Annotator
--genome:必须文件,输入的基因组序列(序列名不多于15个字符,且为简单字符,如字母,数字或下划线)
--cds:非必须文件,该物种或相关物种的CDS编码序列(FASTA格式),不能包括内含子和UTR。该文件有助于去除TE库中的基因序列。
--exclude:非必须文件,该版本基因组组装结果的基因位置文件(BED格式)。TE注释过程中将会过滤该文件中的基因位置信息(如果做内含子与TE之间相关分析,此参数可能不能加)。
--curatedlib:已知TE,会合并到TElib。其中的序列也没必要是全部修正过的TE,部分修正过的也可以使用。
--species:TIR注释物种,物种名Rice, Maize和others三个可选,默认others
--step:运行步骤, 从哪一步开始,all|filter|final|anno, 根据具体情况选择,默认all
--threads (-t):线程数,默认是4
--overwrite:如果发现以前的结果,决定是否覆盖(1,重新运行)或不覆盖(0,默认)
--sensitive: 是否用RepeatModeler分析剩下的TE,默认是0,也就是不要。RepeatModeler运行时间比较久
--anno: 是否在构建TE文库后进行全基因组预测,默认是0
--evaluate 评估TE注释的分类一致性。默认值:0。这个步骤很慢,而且不会影响注释结果。
--u ltr-retriever 的自然突变率 Default: 1.3e-8 (per bp per year, from rice)
8G基因组跑了20天左右
-
运行结束之后,会在当前目录下留下运行时的中间文件,保证程序中断之后,能够断点续跑
xxx.EDTA.raw
xxx.EDTA.combine
xxx.EDTA.final -
输出文件:
.mod.EDTA.RM.out 和 .mod.EDTA.RM.gff3 是RepeatMasker的输出结果
.mod.EDTA.TEanno.gff3 和 .mod.EDTA.TEanno.out 行数对应不上,疑惑
genome.mod.EDTA.TEanno.gff:全基因组TE的注释. 该文件包括结构完整和结构不完整的TE的注释(需要--anno 1
参数)
genome.mod.EDTA.TEanno.sum:对全基因组TE注释的总结(需要--anno 1
参数)
genome.mod.EDTA.TElib.fa:非冗余的TE库。如果在输入文件中提供了修正版的TE库,则该文件中也将包含这部分序列。
genome.mod.EDTA.TElib.novel.fa:新TE类型。该文件中包括输入的修正版的TE库中没有的TE序列(需要--curatedlib
参数)
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
参数)
分析:生成基因组中的原始的亚类TE库
EDTA_raw.pl --genome xx.genome.fasta --cds xx.final.gene.longest.gff3.cds.fa --exclude gene.bed \
--species others --type tir --curatedlib ./library_EDTA/xx.fa -overwrite 1 --threads 20
-
--type:对于不同的TE类型,可以分别指定-type ltr|tir|mite|helitron来运行,如果是想要所有类型的TE,直接指定-type all也可以,或者跑原始的所有TE库那个命令。
8G基因组跑TIR
类 5天 左右,跑helitron
类 7天 左右,helitron
类似乎有些过程是单线程运行
这里我得到的文件只有 intact 全长的重复序列,EDTA_raw.pl 好像只会得到全长TE,加上 --anno 1 参数也一样。分开跑好像不会运行RepeatMasker,只能得到全长的TIR,LTR,Helitron(不一定对,没有探究)
-
输出文件:
genome.fasta.mod.EDTA.raw 文件夹里:
参考:
https://github.com/oushujun/EDTA#issues
https://www.jianshu.com/p/dfa89f394882
https://www.jianshu.com/p/ddd1c9a74fde
https://www.jianshu.com/p/f962d5c40fdf
https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CJFD&dbname=CJFD2013&filename=AHNY201308003&uniplatform=NZKPT&v=%25mmd2Fe0g9nSKUuUK1GjQz6eD4Op0avSl%25mmd2BYGyQTsPxiKcx27YQ9yw%25mmd2FVAPSWnHERxDx8gt 基因组转座子鉴别与注释方法研究进展