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

news2024/10/7 11:31:46

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

【基于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.coloradmin.cn/o/1885749.html

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

相关文章

Hubstudio指纹浏览器:海外代理IP新选择,IPXProxy为何备受推崇?

许多人都会把Hubstudio指纹浏览器和代理IP进行搭配使用&#xff0c;为了保证网络操作的顺利进行&#xff0c;例如亚马逊的多账号管理。那有没有好用的海外代理IP呢&#xff0c;如何在Hubstudio指纹浏览器中使用代理IP呢&#xff1f; 下面就给大家推荐好用的一家海外IP代理&…

收银系统源码-千呼新零售2.0

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

SMARTFORMS

page&#xff08;节点&#xff09;-> wondows(容器)

AI网络爬虫004:从东方财富网批量获取上市公司的全部新闻资讯

文章目录 一、目标二、输入内容三、输出内容一、目标 用户输入一个上市公司名称,然后程序自动从东方财富网批量获取上市公司的全部新闻资讯 查看相关元素在源代码中的位置: 新闻标题:<a href="http://finance.eastmoney.com/a/202405233084538683.html" targ…

Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置

一、背景 Jenkins&#xff08;本地宿主机搭建&#xff09; 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码&#xff08;可不改&#xff0c;如果运行报allure找不到就直接注释掉&#xff09; …

以责任铸就品牌,以行动推动社会进步

成都树莓集团&#xff0c;作为数字产业生态链的积极建设者&#xff0c;始终将履行社会责任作为企业发展的核心要义。我们深知&#xff0c;企业的成功不仅仅在于经济效益的取得&#xff0c;更在于对社会的贡献与回馈。 一、履行社会责任的实践 1、倡导绿色、低碳、可持续的发展…

Redis 7.x 系列【13】数据类型之地理位置(Geospatial)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 GEOADD2.2 GEODIST2.3 GEORADIUS2.4 GEOPOS2.5 GEORADIUSBYMEM…

C++ 和C#的差别

首先把眼睛瞪大&#xff0c;然后憋住一口气&#xff0c;读下去&#xff1a; 1、CPP 就是C plus plus的缩写&#xff0c;中国大陆的程序员圈子中通常被读做"C加加"&#xff0c;而西方的程序员通常读做"C plus plus"&#xff0c;它是一种使用非常广泛的计算…

​RAG与LLM原理及实践(8)--- Chroma 应用场景及限制

前言 通过前面几节的介绍&#xff0c;你应该对Chroma的运作原理有相当透彻的理解。Chroma的设计正如之前描述的&#xff1a; Chroma提供的工具&#xff1a; 存储文档数据和它们的元数据&#xff1a;store embeddings and their metadata 嵌入&#xff1a;embed documents an…

仓库管理系统25--数据导出

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、添加用户控件 <UserControl x:Class"West.StoreMgr.View.DataExportView"xmlns"http://schemas.microsof…

融云 CEO 董晗获颁 EqualOcean「2024 出海全球化服务 30 人」

6 月 26 日-27 日&#xff0c;EqualOcean 全球化百人论坛 &#xff08;GGF2024&#xff09;及颁奖盛典在深圳举办&#xff0c;融云 CEO 董晗荣登“2024 出海全球化服务 30 人”榜单。 作为全球商业信息平台和智库&#xff0c;EqualOcean 设立“出海全球化服务 30 人榜单”&am…

u盘里的数据全部不见了怎么恢复?这些方法你试过吗

在快节奏的工作和生活中&#xff0c;U盘作为我们随身携带的数据存储工具&#xff0c;承载了无数重要的文件和资料。然而&#xff0c;有时我们会突然发现U盘里的数据全部不见了&#xff0c;这无疑会给我们带来巨大的困扰和焦虑。面对这种情况&#xff0c;不要慌张&#xff0c;本…

2小时动手学习扩散模型(pytorch版)【入门版】【代码讲解】

2小时动手学习扩散模型&#xff08;pytorch版&#xff09; 课程地址 2小时动手学习扩散模型&#xff08;pytorch版&#xff09; 课程目标 给零基础同学快速了解扩散模型的核心模块&#xff0c;有个整体框架的理解。知道扩散模型的改进和设计的核心模块。 课程特色&#xf…

OpenCV 车牌检测

OpenCV 车牌检测 级联分类器算法流程车牌检测相关链接 级联分类器 假设我们需要识别汽车图像中车牌的位置&#xff0c;利用深度学习目标检测技术可以采取基于锚框的模型&#xff0c;但这需要在大量图像上训练模型。 但是&#xff0c;级联分类器可以作为预训练文件直接使用&…

云数据中心运维新纪元:让Linux服务器如虎添翼

文章目录 一、Linux系统管理的高级技巧1. 性能调优与监控&#xff1a;2. 自动化与脚本编写&#xff1a;3. 文件系统与存储管理&#xff1a; 二、服务器配置优化的策略1. 硬件选型与配置&#xff1a;2. 网络配置与优化&#xff1a;3. 应用部署与调优&#xff1a; 三、安全策略的…

FPGA程序设计

在设计FPGA时&#xff0c;多运用模块化的思想取设计模块&#xff0c;将某一功能设计成module。 设计之前要先画一下模块设计图&#xff0c;列出输入输出接口&#xff0c;再进一步设计内部功能。 状态机要画图&#xff0c;确定每个状态和状态之间怎么切换。状态用localparam定…

Taro + vue3 中微信小程序中实现拉起支付

在前端开发中 H5 的拉起支付和微信小程序的拉起支付 是不太一样的 现在分享一下微信小程序中的拉起支付 逻辑都在后端 我是用的Taro 框架 其实就是一个Api Taro 文档

Nacos2.3.x动态刷新不生效

1.日志分析 Ignore the empty nacos configuration and get it based on dataId[null.yaml] & group[DEFAULT_GROUP] Ignore the empty nacos configuration and get it based on dataId[null-local.yaml] & group[DEFAULT_GROUP] 从日志文件分析中可以得到 dataId[n…

JAVA 在服务器上创建文件夹

JAVA 在服务器上创建文件夹 在服务器端开发中&#xff0c;我们经常需要在服务器上创建文件夹来存储文件或其他资源。本文将介绍使用JAVA在服务器上创建文件夹的方法&#xff0c;并提供相应的示例代码。 创建文件夹的基本概念 在JAVA中&#xff0c;我们可以使用File类来操作文…