ANI-平均核苷酸一致性

ANI-平均核苷酸一致性

ANI

DDH(DNA-DNA hybridization)DNA分子杂交-曾经作为基因组水平上的原核物种界定的黄金标准已经被使用了将近50年。它作为唯一的提供数字化和相对稳定物种界定的分类学方法,它对现在的分类方法有着重要的影响地位。但是,现在的基因组学时代,DDH显得有点过时了。两个基因组间ANI(average nucleotide identity)由于最能反映DDH,是一种不错的分类的方法。

物种的概念大概由2,400年前的 Aristotle(亚里士多德)提出来的,自此之后,各个学科的分类学家就想对自然界中的生物学单位进行分类。最早对原核生物的分类是基于表型的相似性,但在1960年后,一些基于基因组的方法被采用来衡量基因组的相关性。在这些方法中,DDH技术用于反应基因组的相似性被广泛接受。DDH值为70%以上的时候就能反映出基因组类型的一致性,不同方法的比较发现,70%不能作为分类的唯一指标,有的60%-70%就已经有很好的分类效果了。

尽管DDH已经被认为原核生物分类的黄金标准,但是由于它操作的复杂性和耗时性,往往被一些生物学家所诟病。同时,由于DDH的结果不能用于累积的数据库,这在生物信息学时代也是一个硬伤。所以,科学家们提出了要有一种方法来取代DDH,这种方法要能够跟DDH有相似的效果,同时也要能够建立一个数据库利于其他一些结果跟他的比较。

16srRNA基因作为一个标记基因用于物种的分类起到了很好的作用,但这个保守基因的方法在对如此大的分类学上的规模还是显得有点乏力。同时,基于housekeeping 基因的分类也在取代DDH起到了一定的效果,但是这个方法的硬伤在于基因选择性和扩增引物的普适性。ANI,基于俩俩基因组的所有直系同源蛋白编码基因的比较的一个平均值,得到的值的94%相当于DDH的值的70%。

ANI和percentage of covnserved DNA的算法:

平均核苷酸相似度(Average Nucleotide Identity,ANI)是在核苷酸水平比较两个基因组亲缘关系的指标, ANI被定义为两个微生物基因组同源片段之间平均的碱基相似度,他的特点是在近缘物种之间有较高的区分度。JSpecies是一个计算俩俩基因组间的ANI和四核苷酸多态性的工具。

  1. 选择要比对的的任意两条序列A,B,分为A-query序列与B-reference序列,而query序列被连续性切割为1020nt的片段。

选择1020nt是因为在DDH中以1000bp为一个单位进行杂交

  1. 将这些cut-offs(1020bp的片段)与reference序列进行blastn比对,比对的结果保留下来用于接下来的计算。
  2. 比对的参数设置X=150 ( 比对间间隙为150bp), q=-1 (核苷酸错配的惩罚参数) and F=F (过滤重复的序列); 其余参数保留默认值.参数这样设置是为了距离比较远的基因组更好的比对上。
  3. 挑选结果之中,sequence identify >= 30%,length >= 70%*1024的所有符合序列,得到A->B的ANI值,即ANI(A->B)。
  4. 同理,可以将query与reference序列的身份置换,再进行上述操作。得到ANI(B-A)的值。
  5. 一般来说,ANI(A->B)与ANI(B->A)的值不一定一致,所以采用两者平均值ANI(A<->B)作为最终的ANI值。

covnserved DNA:那些比对的结果阈值达到90%的核苷酸相似度被保留,除了那些可以比对的拓展区域。比对上的序列的长度之和除以query序列的总长度,就算是query序列中有少比例的序列在refrence 序列中保守。

ANI-平均核苷酸一致性_第1张图片

从上可以看出,ANI>95%可以明显的分出物种的“种”级别;而AAI在60%是“属”的分界线,90%为“种“的分界线。

OrthoANI

A->B的ANI和B->A的ANI不一定是一致的,之间的差异甚至显著高于1%。为了解决这一问题,学者提出了OrthoANI。

分析流程分为以下三步,

  • 将两个基因组序列都切成长1020bp的连续性片段。短于1020bp的片段会被舍弃。
  • 用BLASTn程序搜索这些片段的相似性片段。
  • 只有互为最佳best hit的片段才能成为orthologous fragments。

然后,从中选择长度长于35%(1020bp35%)的比对。该比对中两片段(A’和B’)的平均核苷酸一致性:[A’<->B’=(A’->B’核苷酸一致性+B’->A’核苷酸一致性)/2]

基因组范围的核苷酸一致性 = 所有orthologous片段一致性的平均值。

ANI-平均核苷酸一致性_第2张图片

ANI和OrthoANI的比较

  • 两者的相关性非常高,R^2=0.9998

  • OrthoANI略高于ANI(大约0.1%)

  • species相关阈值均为:95%~96%

  • OrthoANI运行速度要高于ANI,可能更适合大规模比较分析

  • 两者均不太适用远缘物种

ANI的计算工具

FastANI(https://github.com/ParBLiSS/FastANI)是一个快速计算全基因组ANI的工具,其支持一对一、一对多、多对多基因组之间的两两比较。其将查询序列分割为短序列片段,使用基于MinHash的序列映射引擎Mashmap来计算同源映射并估计一致性。由于它使用了非比对的方法,因此计算速度大幅提升,但准确性与基于blast的方法相差不大。

在最近Nature communications的一篇[研究][Jain C, Rodriguez-R L M, Phillippy A M, et al.High throughput ANI analysis of 90K prokaryotic genomes reveals clear speciesboundaries[J]中,作者使用fastANI对9万个基因组进行分析,发现大多数谱系种内与种间存在一个明显的ANI分界线,相同物种的基因组ANI大于95%,不同物种的基因组ANI小于95%,因此常以==95%==的ANI作为物种划分与物种聚类的标准。

安装:使用python3.6 conda 环境

conda install fastANI
fastANI --help

使用方法如下所示:

fastANI -q genome1.fa -r genome2.fa -o output.txt # 单个基因组之间相互比对

fastANI -q genome1.fa --rl genome_list.txt -o output.txt# 多个基因组之间相互比对

参数:

  • -q, --query:查询基因组核苷酸序列,可以试fasta/fastq及其gzip压缩文件
  • -r, --ref:参考基因组核苷酸序列,可以试fasta/fastq及其gzip压缩文件
  • –rl, --refList:包含参考基因组列表的文件,从而允许多个参考基因组
  • –ql, --queryList:包含查询基因组列表的文件,从而允许多个查询基因组
  • -t, --threads:程序运行所使用的核数,默认为1
  • -k, --kmer:比对的kmer大小,不能大于16,默认为16
  • –fragLen:片段长度,默认为3000
  • –minFrag:最短匹配的片段,默认为50
  • –visualize:输出比对图像,只适用于一对一比对,默认关闭
  • –matrix:输出ANI值作为下三角矩阵,适用于多对多比对,默认关闭
  • -o, --output:输出文件名

由于细菌基因组大部分基因长度均为1000bp左右,因此通常设置片段长度为1000,对于病毒等小基因组,可以设置较小的片段长度。

结果

cat out.txt
genome/genome_A.fasta   genome/genome_B2.fasta  96 986 4035

其ANI为96,4035为参考基因组的所有序列片段,986为查询基因组中比对上的同源片段(即查询基因组中有986条序列与参考基因组同源匹配),片段数过少的ANI值是没有意义的,可以去掉。

plot mapping

FastANI中能够可视化基因组之间序列相互比对信息的插件。

方法:https://github.com/ParBLiSS/FastANI

R脚本:https://github.com/ParBLiSS/FastANI/tree/master/scripts

使用方法如下:

fastANI -q B_quintana.fna -r B_henselae.fna --visualize -o fastani.out
Rscript scripts/visualize.R B_quintana.fna B_henselae.fna fastani.out.visual

资料来源:

https://qinqianshan.com/bioinformatics/bin/ani/

https://www.jianshu.com/p/9a8bdf141c27

https://zhuanlan.zhihu.com/p/126294648

你可能感兴趣的:(生信基础概念,生信软件使用)