Ka/Ks介绍和分析

news/2024/7/5 9:00:00 标签: 生物信息, KaKs

KaKs_0">什么是Ka/Ks?

在遗传学中,Ka/Ks表示的是两个蛋白编码基因的非同义替换率(Ka)和同义替换率(Ks)之间的比例。这个比例可以判断是否有选择压力作用于这个蛋白质编码基因。

如果你手头有两个不同物种的同一个基因的序列,比如人和小鼠的p53基因,然后把这两个基因的序列进行比对,你会发现这两段序列有差异(进化!)。再仔细观察,你会发现有些碱基的变化导致了编码氨基酸的变化(非同义替换),有些没有导致编码氨基酸的变化(同义替换)。这是由密码子的简并性造成的,因为3个碱基决定1个氨基酸,所以64种碱基组合决定20种氨基酸,会有冗余出现。一般情况下,第三个碱基变化会造成同义替换,而第一二个碱基的变化会非造成同义替换。

在这里插入图片描述
Ka和Ks的计算公式:
Ka=发生非同义替换的SNP数/非同义替换位点数
Ks=发生同义替换的SNP数/同义替换位点数

其中同义替换位点数就是不会造成氨基酸变化的位点数的总和,比如编码丝氨酸(ser)的第三位碱基。而非同义替换位点数就是会造成氨基酸变化的位点数的总和,比如编码丝氨酸(ser)的第一二位碱基。对于像第一个方框里面的苯丙氨酸(phe)和亮氨酸(leu)这种情况,第三位碱基的变化只是有可能造成氨基酸的变化,也就是两种不同的氨基酸各占了两个碱基的位点,则在计算非同义替换位点数和同义替换位点数时,各加上1/2,相当于两者平分了这个位点。另外,计算Ka/Ks时,不考虑start codon和stop codon。
好了,现在我们回到上面的人和小鼠的p53基因的例子。我们只需要数一下两个序列发生(非)同义替换的SNP位点数,再除以(非)同义替换位点数,就得到了Ka和Ks值,然后就可以计算Ka/Ks ratio。

上面的计算方法并没有考虑不同碱基之间发生替换的速率的不同,比如,嘌呤之间替换的概率(A=>G)要高于嘌呤替换为嘧啶的概率(A=>C或T),也就是说转换(transition,嘌呤变嘌呤,嘧啶变嘧啶)发生的概率要高于颠换(transversion,嘌呤变嘧啶,嘧啶变嘌呤)发生的概率。很多计算方法都会考虑到这些替换发生概率的不同。
另外,两个物种分化时间的长短也会影响到Ka/Ks的比值。比如有一个位点,原来是A,后来变成了T,再后来又变成了C,虽然发生了两次替换,但最后仅有一次替换被用于计算替换率。再比如有一个位点,原来是A,后来变成T,但同时与它相对应的另一个序列的位点,也发生了A到T的替换,那么我们也是无法用上面的方法来计算替换率。对于这种复杂的情况,我们可以用最大似然法来计算最可能的替换率,这里不再详述。

KaKs_16">那么Ka/Ks和进化有什么关系?

细心的小伙伴可能已经看出来了,在上面的密码子表中,同义替换位点比较少。实际上一个基因中大概只有25%的位点是同义替换位点。假设这个基因没有受到自然选择压力,那么根据中性选择理论,非同义替换率和同义替换率应该是相同的。
一般来讲,因为非同义替换会造成氨基酸变化,可能会改变蛋白质的构象和功能,因此会造成适应性的变化,从而带来自然选择的优势或劣势(一般是劣势)。而非同义替换没有改变蛋白质的组成,因此不受自然选择的影响(当然这里我们忽略密码子偏好性的影响),那么Ks就能反映进化过程的背景碱基替换率。Ka/Ks的比值就能说明这个基因是受到了何种选择。

长颈鹿的长脖子基因肯定是受到了正选择…

一般情况下,在某个个体中偶然发生的一个碱基替换(突变),如果没有额外的好处或者坏处的话,慢慢地也就消失了。但是自然选择中会有很多巧合,某些突变就是很幸运地被保留了下来,并且被固定了(突变频率由极小变为100%)。一个这样的突变在一个二倍体种群中被固定的可能性为1/2N,其中N是种群大小。
对于一个没有受到自然选择压力的基因来说,我们可以计算得到这样的结果:Ka/Ks=1。但实际情况下,这个比值都是远小于1的:Ks/Ks<<1,因为一般非同义替换带来的都是有害的性状,只有极少数情况下会造成进化上的优势。

于是,我们有了下面的分类:
Ka>>Ks或者Ka/Ks >> 1,基因受正选择(positive selection)
Ka=Ks或者Ka/Ks=1,基因中性进化(neutral evolution)
Ka<<Ks或者Ka/Ks << 1,基因受纯化选择(purify selection)

KaKs_30">KaKs分析方法

KaKs_31">1. 可以使用Kaks_calculator2.0计算 KaKs
  1. 下载地址:https://udomain.dl.sourceforge.net/project/kakscalculator2/KaKs_Calculator2.0.rar
    输入文件为axt格式,具体要求如下example.axt:
    在这里插入图片描述
    文件总共三行,第一行使配对基因或同源基因的名字,后面是两个比较物种的基因序列。

  2. 运行脚本:

/biodata/02.software/KaKs_Calculator2.0/bin/Linux/KaKs_Calculator -i example.axt -o example.axt.kaks -m GMYN
KaKs_42">2. 使用ParaAT套件分析KaKs
  1. 下载地址:https://download.cncb.ac.cn/bigd/tools/ParaAT2.0.tar.gz

准备输入文件:

  • test.homologs: 同源基因对儿
  • test.cds: 同源基因对儿的cds序列
  • test.pep:同源基因对儿的pep序列
  • proc:线程数

以上文件均可在ParaAT文件夹中找到,可做参考。
比对参数推荐使用muscle,速度快,效果好。

  1. 运行脚本:
ParaAT.pl -h test.homologs -n test.cds -a test.pep -p proc -m muscle -f axt -g -k -o result_dir
  • -h, 同源基因名称文件
  • -n, 指定核酸序列文件
  • -a, 指定蛋白序列文件
  • -p, 指定多线程文件
  • -m, 指定比对工具
  • -g, 去除比对有gap的密码子
  • -k, 用KaKs_Calculator 计算kaks值
  • -o, 输出结果的目录
  • -f, 输出比对文件的格式
  • *** 也可通过-f参数得到其他软件分析ka/k所需的格式

参考:https://zhuanlan.zhihu.com/p/144271268?utm_id=0


http://www.niftyadmin.cn/n/1756370.html

相关文章

非对称加密(RSA、DSA、ECC)

RSA 目前最优秀的公钥方案&#xff0c;第一个能同时用于加密和数字签名的算法&#xff0c;能够抵抗到目前为止已知的所有密码攻击基于一个十分简单的数论事实&#xff1a;将两个大素数相乘十分容易&#xff0c;但对其进行因式分解却十分困难&#xff0c;所以可以将其乘积公开作…

接口加密(TokenSpringCloud项目中进行token认证)

文章目录接口加密常见加密算法消息摘要算法常用摘要算法&#xff08;MD5、SHA、CRC&#xff09;对称加密常用对称加密算法&#xff08;DES、3DES、AES&#xff09;非对称加密常用的非对称加密算法&#xff08;RSA、DSA、ECC&#xff09;数字签名Web认证机制HTTP Basic AuthCook…

MongoDB精简入门(体系结构、Docker安装MangoDB、常用命令)

文章目录什么样的场景会需要MongoDB什么是MongoDB特点MongoDB的体系结构MongoDB数据类型Docker安装MongoDBMongoDB的常用命令可视化工具什么样的场景会需要MongoDB 首先&#xff0c;我们已经学了很多数据库了&#xff0c;Redis、Mysql、Oracle&#xff0c;那为什么还需要Mongo…

Java链接MongoDB进行CRUD

文章目录Mongo-Driver开干创建一个maven工程&#xff0c;pom文件中添加依赖编写crud代码Mongo-Driver Mongo支持多种语言&#xff0c;mongo-driver是mongo官方推出的java连接mongoDB的驱动包&#xff0c;相当于JDBC驱动&#xff0c;通过mongo-driver完成对MongoDB的操作Mongo …

SpringBoot整合MongoDB完成增删改查(入门级)

文章目录开干整体文件结构如下创建springBoot项目&#xff0c;pom文件中添加相关依赖yaml文件中配置mongo地址准备一个实体类通过MongoTemplate查询通过MongoRepository的方式查询所有新增数据修改数据分页查询自定义的条件查询一些废话&#xff1a; 上一篇写了java链接MongoDB…

MySQL进阶_1 (体系结构、存储引擎、SQL优化、索引使用)

文章目录MySQL体系结构术语浅解一些缩写Mysql系统自带的数据库元数据MySQL数据库文件存储引擎Mysql存储引擎的特性概览MyISAMInnoDBMEMORYMERGE存储引擎怎么选SQL优化步骤查询SQL的执行效率定位低效率的SQLexplain命令分析执行计划show profile的使用优化器trace工具的使用索引…

MySQL进阶_2(应用优化、缓存优化、内存优化、锁)

文章目录一点前言应用优化连接池减少数据库的访问负载均衡缓存优化概述操作流程查询缓存参数设置查询缓存的使用缓存失效的情况内存优化优化原则内存优化说明MySQL并发度调整锁&#xff08;浅了解一下&#xff09;一点前言 Mysql可以通过调整参数进行调优&#xff0c;所以本篇…

关于打代码的一些些心得

些许废话 零零散散也正式以打代码为生快一年半了&#xff0c;从代码写的稀碎到稍微能总结出一点东西&#xff0c;也算是一个一直在向上缓慢行走的状态了 很难说我喜欢代码这件事&#xff0c;原本选择也只是为了糊口&#xff0c;但从面向百度编程&#xff0c;到一点点写出带着…