【基于R语言群体遗传学】-3-计算等位基因频率

书接上文,我们讲完了哈代温伯格基因型频率,也使用数据进行了拟合,那么接下来就是考虑一些计算的问题:

【基于R语言群体遗传学】-1-哈代温伯格基因型比例-CSDN博客

【基于R语言群体遗传学】-2-模拟基因型(simulating genotypes)-CSDN博客

如果我们有群体样本中个体的基因型,那么我们不需要假设哈代-温伯格比例来从表型频率估计等位基因频率。我们可以简单地计数等位基因。每个杂合子有一个等位基因的拷贝,而纯合子有两个拷贝(再次假设是一个二倍体生物)。由于每个采样的个体在每个位点都有两个拷贝,所以观察到的等位基因总数是采样个体数量的两倍。

然后,我们可以通过将杂合子的数量加上纯合子数量的两倍(因为每个纯合子有两个等位基因的拷贝),然后除以采样个体数量的两倍(因为每个采样的个体携带两个位点),来计算特定等位基因的频率:

哈代温伯格假设

为了得到p² + 2pq + q²并运行这里用来说明期望的模拟,我们做了以下假设:

• 被考虑的有机体是二倍体。

• 被考虑的有机体仅通过性繁殖(无克隆)。

• 不存在具有不同等位基因频率的独立种群,无论它们之间是否有迁移。

• 我们所考虑的种群在大小上是无限大的。

• 所有交配都是随机发生的。

• 没有遗传变异受到自然选择的影响(等位基因的生存和繁殖差异)。

• 没有遗传变异因突变而丢失或获得(没有等位基因突变为新的等位基因)。

• 世代之间不重叠。一旦繁殖发生,所有的亲本消失,只有产生的后代贡献给下一代。

显然,这些期望在生物学上并不非常现实。然而,哈代-温伯格期望对大多数这些假设的违反都相当稳健,除了前三个:单倍体或多倍体有机体必须以不同但合理的方式处理,通过无性繁殖的有机体可能与哈代-温伯格期望有很大偏差,种群细分可能导致显著偏差。

简单的疾病例子

观察到三种隐性疾病表型的携带者(杂合子)受影响个体(纯合子)的数量:囊性纤维化(CF)、镰状细胞贫血(SC)和β-地中海贫血(βT)。数据改编自Lazarin等人2013年的研究。

我们首先看看筛查中囊性纤维化(CF)纯合子的个体数量:这个数字(9)表明这九个个体总共携带了十八个CF等位基因。现在,携带者(杂合子)的数量相当多(842),对于一个罕见等位基因来说,这可能是我们预期的情况,因此我们可以计算得到CF等位基因频率:

 p <- (9+842/2)/23369

得到等位基因频率约为1.8%

现在,我们有了一个等位基因频率值(从样本中估计的种群频率),它是直接从观测数据计算出来的。在哈代-温伯格原理的假设下,我们期望可以用公式2p(1-p)从这个等位基因频率计算出杂合子的数量。因此,我们预期的携带者频率可以计算为:

2*p*(1-p)

我们得到: 0.03636809

这意味着我们预期大约有3.64%的个体是CF等位基因的携带者。 这与实际观测到的杂合子基因型频率相比如何?在23,369名接受筛查的人中,共观察到842名杂合子。即842/23,369,约等于0.03603,或大约3.6%。预期值和观测值之间的差异非常小。让我们对镰状细胞贫血(SC)和β-地中海贫血(βT)进行相同的计算,我们可以看到2p(1-p)是观测到的杂合子频率的一个非常好的预测器。

顺便说一下,我们还可以看到,对于隐性遗传疾病,携带者的频率(杂合子)远高于受影响个体的频率(纯合子)。这符合哈代-温伯格预测。杂合子与纯合子的比例预计为:

如果说p的值非常小,那么1-p的值就接近为1

从数据库进行计算

我们使用popgenr数据集,我们首先得安装,我们使用两种方式:

如果可以直接下载,则:

install.packages("popgenr")
library("popgenr")

如果下载不成功可以手动安装,官网下载包,把安装包放到路径中
CRAN: Package popgenr (r-project.org)

getwd()
install.packages("popgenr_0.2.tar.gz",repos=NULL)
library("popgenr")

这个snp数据集来自人类基因组的二十五个随机采样的等位基因和基因型频率,现在应该作为对象snp加载。这个snp数据集是从1000 Genomes项目(http://www.internationalgenome.org)中提取的,这是一个全球已知人类遗传变异的公共库。

data(snp)
str(snp)

对于分类变量,我们可以进行可视化:

对于R语言的统计知识,可以看我的博客:
【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)_r 列联表分析-CSDN博客

plot(snp$type)

我们还是对于数据进行哈代温伯格预测与实际对照:

plot(0, 0, type="n", xlim=c(0, 1), ylim=c(0, 1),xlab="Allele frequencies", ylab="Genotype frequencies")
curve(x^2, 0, 1, col="green", lwd=2, add=TRUE)
text(0.6, 0.2, "Homozygotes", col="green")
curve(2*x*(1-x), 0, 1, col="blue", lwd=2, add=TRUE)
text(0.25, 0.5, "Heterozygotes", col="blue")
points(snp$p, snp$hom, pch = 19, col = "green")
points(snp$p, snp$het, pch = 19, col = "blue")

 

总体而言,预测和测量数据之间似乎有很好的一致性。几个特点显而易见。与预测的偏差通常表现为杂合性较低,纯合性较高。这与人口统计学效应一致,例如不同种群间等位基因频率的差异,这将在后面更详细地讨论。此外,注意到图中大多数点的等位基因频率小于50%;这是因为我们正在绘制的变异是由突变产生的新的等位基因变异(衍生状态),这些变异来自于预先存在的遗传序列(通过与人类最近的亲属比较确定的祖先状态),这些变异往往开始时相当罕见。当我们开始预测等位基因频率的随机波动并讨论遗传漂移的概念时,我们将再次回顾这个想法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39274.shtml

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

相关文章

WebKey备受瞩目的Web3.0新叙事,硬件与加密生态完美融合特性成为数字世界的新入口

在当今迅速发展的科技领域&#xff0c;Web3.0正在引领一场颠覆性的变革。而作为这一变革的先锋&#xff0c;WebKey无疑是备受瞩目的创新项目。它不仅代表了一种全新的技术趋势&#xff0c;更是数字世界中硬件与加密生态完美融合的典范。 硬件与加密生态的完美融合 WebKey的核心…

【QT】输入类控件

目录 Line Edit 核心属性 核心信号 正则表达式 示例&#xff1a;使用正则表达式验证输入框内容 示例&#xff1a;切换输入框密码模式下的显示状态 Text Edit 核心属性 核心信号 示例&#xff1a;获取多行输入框的内容同步显示到label 示例&#xff1a;获取文本的选…

一文讲懂npm link

前言 在本地开发npm模块的时候&#xff0c;我们可以使用npm link命令&#xff0c;将npm 模块链接到对应的运行项目中去&#xff0c;方便地对模块进行调试和测试 用法 包链接是一个两步过程&#xff1a; 1.为依赖项创建全局软链npm link。一个符号链接&#xff0c;简称软链&a…

二刷力扣——DP算法(子序列问题)

300. 最长递增子序列 定义是以本元素结尾&#xff0c;所以公式初始化都好弄。但是太慢 class Solution {public int lengthOfLIS(int[] nums) {int nnums.length;int[] dp new int[n];//以自己结尾的最长递增子序列dp[0]1;int maxzi1;for(int i1;i<n;i){dp[i]1;for(int j…

QT中QDomDocument读写XML文件

一、XML文件 <?xml version"1.0" encoding"UTF-8"?> <Begin><Type name"zhangsan"><sex>boy</sex><school>Chengdu</school><age>18</age><special>handsome</special>&l…

【YOLOv5进阶】——引入注意力机制-以SE为例

声明&#xff1a;笔记是做项目时根据B站博主视频学习时自己编写&#xff0c;请勿随意转载&#xff01; 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块&#xff0c;这是一种常用于卷积神经网络中的注意力机制&#xff01;&#xff01; 借鉴代码的代码链接如下&a…

在C#中使用RabbitMQ做个简单的发送邮件小项目 _

前言 好久没有做项目了&#xff0c;这次做一个发送邮件的小项目。发邮件是一个比较耗时的操作&#xff0c;之前在我的个人博客里面回复评论和友链申请是会通过发送邮件来通知对方的&#xff0c;不过当时只是简单的进行了异步操作。那么这次来使用RabbitMQ去统一发送邮件&#x…

vue中路由来回切换页面直接卡死

今天发现一个很严重的问题&#xff0c;项目好不容易做好了&#xff0c;结果页面多了&#xff0c;切换之后卡死。页面所有的交互效果都失效了。 排查了许久的错误原因最后发现原来是路由名称重复了。 如上图当页面跳转到riskdetails详细页面之后&#xff0c;框架则被这个详情页…

node.lib下载失败,手动下载并配置

在无网络环境&#xff0c;或者网络不好的环境&#xff0c;node.lib会下载失败&#xff0c;此时可手动下载并进行配置。 我们以 node16.17.0 为例&#xff1a; 下载地址 分别下载node.lib和headers https://registry.npmmirror.com/-/binary/node/v16.17.0/win-x64/node.lib…

Linux rpm与yum

一、rpm包管理 rpm用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具&#xff09;的缩写&#xff0c;类似windows的setup.exe&#xff0c;这一文件格式名称虽然打上了R…

办理北京公司注销流程和步骤说明

公司的生命周期是多变的&#xff0c;有时候&#xff0c;业务可能会结束或者出现其他原因&#xff0c;需要注销公司。注销公司是一个复杂的法律过程&#xff0c;需要遵循一系列的步骤和提交特定的材料。下面我们将详细介绍北京注销公司的流程以及需要准备的材料&#xff0c;以帮…

私有云统一多云管理平台主要服务内容

私有云统一多云管理平台&#xff0c;作为企业IT架构现代化的关键组成部分&#xff0c;旨在为企业提供高效、灵活、安全的云计算资源管理解决方案。这类平台通过整合和优化不同云环境(包括私有云、公有云、混合云)的管理&#xff0c;帮助企业打破云孤岛&#xff0c;实现资源的统…

【游戏引擎之路】登神长阶(五)

5月20日-6月4日&#xff1a;攻克2D物理引擎。 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 6月13日-6月20日&#xff1a;攻克《3D图形教程》。 6月21日-6月22日&#xff1a;攻克《Raycasting游戏教程》。 6月23日-6月30日&#xff1a;攻克《Windows游戏编程大师技巧》。 …

【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人

系列篇章&#x1f4a5; No.文章1【Qwen部署实战】探索Qwen-7B-Chat&#xff1a;阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验&#xff1a;用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B&#xff1a;通过FastApi框架实现API的部署与调用4【Q…

从任意用户注册到任意密码重置

写在最前面一句话 To be or not to be ,it‘s a question . 哎呀&#xff0c;放错台词了&#xff0c;应该是 true or false , 在最近的测试中遇到了一个很有趣的点 “将 false 改为true ”就可以成功绕过验证码了。 T rue or false &#xff1f;&#xff1f;&#xff1f; …

「51媒体」企业举行新闻发布会,如何邀请媒体到场报道

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 企业举行新闻发布会时&#xff0c;邀请媒体到场报道是一个…

MySQL常用操作命令大全

文章目录 一、连接与断开数据库1.1 连接数据库1.2 选择数据库1.3 断开数据库 二、数据库操作2.1 创建数据库2.2 查看数据库列表2.3 删除数据库 三、表操作3.1 创建表3.2 查看表结构3.3 修改表结构3.3.1 添加列3.3.2 删除列3.3.3 修改列数据类型 3.4 删除表 四、数据操作4.1 插入…

day62--若依框架(基础应用篇)

若依搭建 若依版本 官方 若依官方针对不同开发需求提供了多个版本的框架&#xff0c;每个版本都有其独特的特点和适用场景&#xff1a; 前后端混合版本&#xff1a;RuoYi结合了SpringBoot和Bootstrap的前端开发框架&#xff0c;适合快速构建传统的Web应用程序&#xff0c;其…

Qt加载SVG矢量图片,放大缩小图片质量不发生变化。

前言&#xff1a; 首先简单描述下SVG: SVG 意为可缩放矢量图形&#xff08;Scalable Vector Graphics&#xff09;。 SVG 使用 XML 格式定义图像。 给界面或者按钮上显示一个图标或背景图片&#xff0c;日常使用.png格式的文件完全够用&#xff0c;但是有些使用场景需要把图…

QChartView显示实时更新的温度曲线图(二)

文章目录 参考图说明1. 项目结构2. TempChartView.pro3. main.cpp4. TemperatureSeries.qml5. main.qml详细说明 参考图 说明 Qt Charts 提供了一系列使用图表功能的简单方法。它使用Qt Graphics View Framework 图形视图框架&#xff0c;因此可以很容易集成到用户界面。可以使…