Ka/Ks介绍和分析

news2024/11/26 19:25:50

什么是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的替换,那么我们也是无法用上面的方法来计算替换率。对于这种复杂的情况,我们可以用最大似然法来计算最可能的替换率,这里不再详述。

那么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分析方法

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
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.coloradmin.cn/o/722391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb项目-超市订单管理系统【Day02】

密码修改 1、编写接口方法和mybatis的SQL映射文件 Mybatis配置多参数SQL语句 当我们的SQL语句中有多个参数的时候&#xff0c;需要设置每个参数名对应的接口参数&#xff0c;不然会报错&#xff1a; Parameter ‘id’ not found. Available parameters are [argl, argg, par…

【设计模式】第十二章:观察者模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章&#xff1a;单例模式 【设计模式】第二章&#xff1a;工厂模式 【设计模式】第三章&#xff1a;建造者模式 【设计模式】第四章&#xff1a;原型模式 【设计模式】第五章&#xff1a;适配器模式 【设计模式】第六章&…

chatGPT如何开启 Browsing 功能,实现即时联网查询?

Openai 为每一个 chatGPT Plus 用户都开放了 Browsing 和 plugins 功能。 前者可以在 ChatGPT 觉得有必要的时候&#xff08;比如你问它今天的新闻&#xff09;&#xff0c;自动联网查询&#xff0c;后者是第三方开发者开发的插件&#xff0c;数量繁多&#xff0c;可以解决各种…

Git 常用操作总结

版本控制系统&#xff08;VCS&#xff09;是管理文件和目录所做的更改的工具&#xff0c;每一次提交便记录下目录及其文件的内容&#xff0c;以及较上一版本的更改。通过这样去跟踪项目的更改过程&#xff0c;方便与他人进行协作&#xff0c;或者撤销不想要的更改以回退到此前的…

DR模式部署LVS负载均衡集群

目录 一、配置负载调度器 1.配置虚拟 IP 地址&#xff08;VIP&#xff1a;192.168.146.180&#xff09; 2.调整 proc 响应参数 3. 配置负载分配策略 ​编辑二、部署共享存储&#xff08;NFS服务器&#xff1a;192.168.146.20&#xff09; 三、配置节点服务器 1.配置虚拟…

解决vue中mapbox地图显示一半的问题

解决vue中mapbox地图显示一半的问题 问题描述&#xff1a; 在vue中创建mapbox地图&#xff0c;地图只显示一般&#xff0c;查看浏览器开发者工具。发现将canvas.mapboxgl-canvas 的position:absolute去掉就解决了 。 代码修改&#xff1a;获取到canvas.mapboxgl-canvas,并修改…

zookeeper第一课-Zookeeper特性与节点数据类型详解

1、Zookeeper特性与节点数据类型详解 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分布式集群中应用系统的一致性问题。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一…

在Linux中部署ELK架构

ELK&#xff08;ElasticSearch分布式搜索引擎、Logstash数据收集处理引擎和Kibana可视化化平台&#xff09;是在大型后端架构中&#xff0c;一个标准的数据采集方案。 在公网IP为x.x.x.x的服务器上部署Elasticsearch LogstashfilebeatredisKibana架构。这种架构先通过Logstash…

高并发场景:redis+lua防重校验

大家平时在做有并发量下单的项目时&#xff0c;代码层面基本上就分为这么几个步骤&#xff1a;参数校验--->防重校验--->库存校验扣减--->下单成功--->支付。 最近公司有个商城项目说要30分钟达到1亿的并发量。当时听到突然猛了一下。真是牛逼克拉斯呀。 不过该说…

apache php mysql python 环境部署与离线安装deb包

文章目录 1.背景介绍2. 主要涉及操作2.1 安装系统&#xff1a;2.2 apache mysql php安装2.3 配置2.4 python相关库安装 3. 操作记录3.1 软件安装3.2 读取文件内容后进行文件内容抽取3.3 执行以上的sh脚本3.4 所学3.5 打包发送 4. 参考文献 1.背景介绍 使用的系统为ubuntu18.04…

密码学学习笔记(四):Authenticated Encryption - 认证加密

加密数据的最新方法是使用一种称为一体式结构的认证加密算法&#xff0c;该算法也称为有附加数据的认证加密。从之前的博客中&#xff0c;我们看到在特定的操作模式中使用的分组密码&#xff0c;如CBC、OFB、CFB、CTR&#xff0c;提供了IND-CPA安全性。 但是IND-CCA安全性呢&a…

电脑卡顿甚至崩溃?那重置系统吧

我们平时用电脑&#xff0c;最怕遇到蓝屏、死机、报错&#xff0c;等等问题。有时还会碰到些奇奇怪怪的系统问题 文章目录 问题场景&#xff1a;解决方案&#xff1a;一、重启电脑二、移除外接设备三、系统还原1、设置系统还原2、如何进行系统还原3、系统还原失败怎么办 四、卸…

有源差分探头的电压限定和检查步骤

为了使传统示波器能够显示和测试高共模电压的电路波形&#xff0c;有源差分探头对示波器测量性能延伸到了电子功率变换器、 逆变器、 电机的速度控制、 开关电源和许多应用程序的测试。 差分探头外观构成&#xff1a; A-输出线&#xff1a;连接示波器的 BNC 输出连接头和辅助性…

【操作系统】c语言--进程调度算法(FCFS和SPN)

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Docker轻量级可视化工具Portainer

掌握Portainer的部署和使用。 Portainer 是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 Portainer&#xff08;https://www.portainer.io/&#xff09;是一个流行的开源Docker管理工具&#xff…

【设计模式】第八章:桥接模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章&#xff1a;单例模式 【设计模式】第二章&#xff1a;工厂模式 【设计模式】第三章&#xff1a;建造者模式 【设计模式】第四章&#xff1a;原型模式 【设计模式】第五章&#xff1a;适配器模式 【设计模式】第六章&…

前端为什么使用svg图片

参考链接&#xff1a; 1.http://www.youngzi.cn/5392.html 2.https://baijiahao.baidu.com/s?id1728784571128338709&wfrspider&forpc SVG是什么&#xff1f;SVG有什么用&#xff1f;为什么要使用SVG&#xff1f;本篇文章就给大家介绍一下SVG的相关知识&#xff0c;让…

【Unity】HyBridCLR初探

完成目标: 创建热更新程序集加载热更新程序集,并执行其中热更新代码,打印 Hello, HybridCLR修改热更新代码,打印 Hello, World准备环境​ 安装Unity HybridCLR也支持2019.4.x,但新手请先按照下面要求跑通流程后,再根据安装HybridCLR文档尝试2019.4.x。 安装 2020.3.26+…

如何部署LVS负载均衡集群(DR模式)

目录 一、集群概念与NAT模式LVS集群 二、部署LVS集群&#xff08;DR模式&#xff09; 第一步 关闭防火墙和安全机制 第二步 手动配置ip_vs 第三步 安装ipvsadm工具 第四步 创建虚拟网卡 第五步 修改虚拟网卡配置内容 第六步 开启虚拟网卡并加入路由 第七步 调整proc相…

linux学习(韩顺平 一周学会linux)

b站链接&#xff1a;b站 共27个小时 P3-P85 linux基础篇 P86-P90 java定制篇 P91-P107 大数据shell篇 P108-P115 python定制篇 P117-P141 linux高级篇 P142-P153 面试题 四个阶段&#xff1a; 一、基本操作 二、配置 三、搭建开发环境 四、写一些基本的shell脚本 五、安全设置…