【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客,再继续进行后面的内容:

群体遗传学_tRNA做科研的博客-CSDN博客

当杂合子的适应度超出纯合子的范围时,二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势,或称为“超显性”,其中杂合子的适应度甚至高于任何一种纯合子。超显性的经典例子是在疟疾高发地区,人类镰状细胞贫血的血红蛋白等位基因。在疟疾猖獗的地区,由于改变的红细胞增加了对疟疾的抵抗力,杂合子具有适应度优势。然而,纯合子患有贫血症,尽管有抗疟疾能力,但总体适应度成本较高。 这似乎导致了一个稳定的平衡,其中等位基因频率通过选择保持在一定水平。如果它的频率上升到足够高的水平,以至于产生更多的纯合子,适应度成本会导致更少的这些等位基因被传递下去。如果它的频率较低,就会产生杂合子,并且由于平均适应度优势,该等位基因的频率会增加。让我们看一下Allison(1956)的数据,该数据收集了坦桑尼亚600多名个体的血红蛋白S的血红蛋白基因型数据。 让我们在哈代-温伯格预测下验证观察到的和预期的比例。

# 定义观察到的各基因型数量
AA <- 400
AS <- 249
SS <- 5

# 计算总个体数
n <- AA + AS + SS

# 计算等位基因S的频率
p <- (SS + AS/2) / n

# 根据哈迪-温伯格定律计算期望的各基因型数量
EAA <- n * (1-p)^2
EAS <- n * 2 * p * (1-p)
ESS <- n * p^2

# 打印观察到的和期望的基因型频率
print(paste("Observed:", AA/n, AS/n, SS/n))
print(paste("Expected:", EAA/n, EAS/n, ESS/n))

# 将观察到的和期望的基因型数量放入向量
geno <- c(AA, AS, SS)
expe <- c(EAA, EAS, ESS)

# 计算哈迪-温伯格平衡的卡方统计量G
G <- 2 * sum(geno * log(geno/expe))

# 打印卡方统计量G
print(paste("G:", G))

# 计算G统计量的P值,判断是否符合哈迪-温伯格平衡
pvalue <- pchisq(G, df=1, lower.tail=FALSE)

# 打印P值
print(paste("P-value:", pvalue))

与我们之前看到的血红蛋白S数据不同:【基于R语言群体遗传学】-6-表型计算等位基因频率、最大似然估计方法-CSDN博客

基于我们的似然比检验,这些值与哈代-温伯格预测相差很大。考虑到我们对杂合子潜在适应度优势的了解,预期维持这种等位基因频率的杂合子适应度优势的大小是多少? 我们可以通过设置等位基因的平均适应度相等来计算这个平衡点。让s代表频率为p的导致镰状细胞的等位基因,a代表常见的血红蛋白等位基因,有三种基因型适应度:wss、wsa、waa。s等位基因要么与自己配对,频率为p,适应度为wss,要么与a配对,频率为1−p,适应度为wsa。这给出了平均等位基因适应度为: 

同样可以得到a等位基因的适应度为:

继续推导:

得到杂合子适应性:

Allison(1956)估计在坦桑尼亚穆索马,wss的阈值为0.2。如果我们设waa的相对适应度为1,并假设观察到的等位基因频率处于平衡状态(p = 0.199),我们可以计算假设的杂合子适应度。

p
w_ss <- 0.2
w_aa <- 1
(w_sa <- (p*(w_ss+w_aa)-w_aa) / (2*p-1))

那么,如果疟疾能够被有效地根除,我们会期待发生什么呢?使用我们估计的杂合子抵抗疟疾所带来的适应度优势,即使在面对等位基因在纯合子中配对时带来的重大健康成本,让我们看看s等位基因的多个起始等位基因频率的影响。然后,让我们看看如果我们去除疾病带来的压力会发生什么。我们可以重新利用我们之前编写的FitFreq函数。

# 设置初始等位基因频率
init_p <- p

# 定义适应度值
w_ss <- 0.2 # 纯合隐性基因型的适应度
w_aa <- 1   # 纯合显性基因型的适应度
w_sa     # 杂合基因型的适应度

# 定义模拟的代数
gen <- 50

# 创建适应度场景列表
w <- list(c(w_ss, w_sa))

# 创建初始等位基因频率矩阵
p <- matrix(c(0.01, 0.1, 0.2, 0.5, 0.9))

# 生成迭代序列
iter <- seq_along(p)

# 循环模拟每一代的变化
for(i in 1:(gen-1)){
  # 更新等位基因频率矩阵
  p <- cbind(p, lapply(iter,
                       function(i, y, n) {FitFreq(y[[1]], n[[i]])},
                       y=w, n=p[,ncol(p)]))
}

# 绘制图形,设置x轴和y轴的标签及范围
plot(x=NULL, xlab="Generations", ylab="Allele frequency",
     xlim=c(1,2*gen), ylim=c(0, 1))

# 绘制第一种适应度情景下的等位基因频率变化曲线
for(i in 1:nrow(p)){
  lines(1:gen, p[i,], lwd=2, col="blue")
}

# 创建第二种适应度情景
w <- list(c(w_ss, 1))

# 重置等位基因频率矩阵为初始频率
p <- matrix(init_p)

# 重新生成迭代序列
iter <- seq_along(p)

# 再次循环模拟每一代的变化
for(i in 1:gen){
  # 更新等位基因频率矩阵
  p <- cbind(p, lapply(iter,
                       function(i, y, n) {FitFreq(y[[1]], n[[i]])},
                       y=w, n=p[,ncol(p)]))
}

# 绘制第二种适应度情景下的等位基因频率变化曲线
for(i in 1:nrow(p)){
  lines(gen:(2*gen), p[i,], lwd=2, col="red")
}

从结果图中,我们可以看到,如果失去适应度优势(即如果疟疾在很大程度上被根除),并且杂合子的适应度与普通纯合子相等,s等位基因预计将在另外50代中从0.2下降到约十分之一(1/10)的平衡频率,即约0.02,患贫血症的SS纯合子的比率将从4%(1/25)下降到两个数量级,即0.04%(1/2500)。

杂合子优势的反面是次显性:杂合子的适应度低于任何一种纯合子。这种形式的常见例子是在染色体重排中,例如相互易位,其中两条非同源染色体交换片段。对于平衡易位的双杂合子个体,其一半的配子是不平衡的,受精后会导致来自部分非整倍体的有害基因剂量效应。一个有用的近似是,杂合子的适应度是纯合子的一半,以模拟动态。

次显性平衡可以使用与超显性情况相同的公式和逻辑来计算:

让我们计算我们的平衡等位基因频率:

w_ss <- 0.9
w_sa <- 0.5
(p_eq <- (1- w_sa)/(w_ss-2*w_sa + 1))

如果我们的平衡等位基因频率略高于50%,让我们看看从起始等位基因频率在0.1到0.9范围内,我们可以预期什么样的等位基因频率轨迹。

# 定义模拟的代数
gen <- 20

# 创建适应度场景列表
w <- list(c(w_ss, w_sa))

# 创建初始等位基因频率矩阵,频率从0.1到0.9,步长为0.1
p <- matrix(seq(0.1, 0.9, 0.1))

# 生成迭代序列
iter <- seq_along(p)

# 循环模拟每一代的变化
for(i in 1:(gen-1)){
  # 更新等位基因频率矩阵
  p <- cbind(p, lapply(iter,
                       function(i, y, n) {FitFreq(y[[1]], n[[i]])},
                       y=w, n=p[,ncol(p)]))
}

# 绘制图形,设置x轴和y轴的标签及范围
plot(x=NULL, xlab="Generations", ylab="Allele frequency",
     xlim=c(1,gen), ylim=c(0, 1))

# 绘制不同初始频率下的等位基因频率变化曲线
for(i in 1:nrow(p)){
  lines(1:gen, p[i,], lwd=2, col="blue")
}

# 创建一个新的等位基因频率矩阵,初始频率为平衡频率 p_eq
p <- matrix(p_eq)

# 再次循环模拟每一代的变化
for(i in 1:(gen-1)){
  # 更新等位基因频率矩阵
  p <- cbind(p, lapply(1,
                       function(i, y, n) {FitFreq(y[[1]], n[[i]])},
                       y=w, n=p[,ncol(p)]))
}

# 绘制平衡频率下的等位基因频率变化曲线,使用虚线表示
lines(1:gen, p, lwd=2, lty="dashed", col="blue")

从这个结果中,我们可以看到,起始等位基因频率低于我们的平衡频率的很快就会趋向灭绝,而那些起始略高于平衡频率的则有望在不久之后增加到接近固定。与超显性不同,次显性平衡是不稳定的,等位基因频率倾向于远离它,而不是趋向它。因为稀有等位基因最常以杂合子的形式出现,次显性转化为稀有等位基因的不利,稀有等位基因倾向于丢失,即使较罕见的纯合子比另一种更适应。同样,超显性被认为是稀有等位基因的优势,因为稀有等位基因倾向于存在于杂合子中,导致稳定的多样性。这说明了受倍性和适应度差异约束的进化轨迹如何被困在适应性较低的局部适应度“高峰”上的一个例子。 在种群遗传学的早期,人们推测广泛的超显性可能解释了为什么物种中存在如此多的遗传变异。然而,这些假设在很大程度上已经不再受欢迎,现在大量的遗传变异被认为是在选择上是中性的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(三)前端javascript中的数据结构之链表上

在js中&#xff0c;没有为我们提供原生的数据结构支持的&#xff0c;但是在java中是有提供的。所以需要我们去模拟这种结构实现。 链表中最关键的一个元素&#xff0c;就是头节点&#xff0c;头节点不存储数据&#xff0c;指向第一个节点链表中几乎所有的操作都要从头结点开始。…

数字流的秩

题目链接 数字流的秩 题目描述 注意点 x < 50000 解答思路 可以使用二叉搜索树存储出现的次数以及数字的出现次数&#xff0c;方便后续统计数字x的秩关键在于构建树的过程&#xff0c;如果树中已经有值为x的节点&#xff0c;需要将该节点对应的数字出现次数加1&#xf…

味全财税数字化实践分享,百望云助力实现数电票管理能力升级!

随着金税四期的启动&#xff0c;数电票全面落地应用&#xff0c;这不仅大幅提高了发票处理效率&#xff0c;更重塑了企业的财务管理流程&#xff0c;为企业财务数字化转型指明了新的方向。 杭州味全食品有限公司&#xff08;以下简称“味全”&#xff09;正在推进财税数字化建设…

(2024,稀疏 MoE,大量小专家,参数高效专家检索 PEER,product key 检索)混合百万专家

Mixture of A Million Experts 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 方法 3. 实验 0. 摘要 标准 Transformer 架构中的前馈&#xff08;feedforward&a…

轻松集成,高效变现:Flat Ads SDK助力开发者轻松跨越广告变现门槛

在当今的移动应用开发领域,广告变现是开发者们普遍关注的重要话题。如何在不影响用户体验的前提下,最大化地实现广告收益,成为了许多开发者面临的挑战。为此,Flat Ads SDK 应运而生,它以“轻松集成,合规守护,高效变现”为核心理念,帮助开发者轻松解决流量变现难题。 一、高效变…

tauri + vue3 如何实现在一个页面上局部加载外部网页?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

惟客数据Q2荣誉成绩单新鲜出炉

作为众多头部企业客户的数字化经营合作伙伴 WakeData惟客数据一直坚持以客户为中心&#xff0c;以数据驱动 致力于让数据智能商业落地更敏捷 凭借值得信赖的客户经营数字化和资源管理数字化实力 惟客数据在2024年第二季度斩获多项荣誉 1、 第一新声《2023年度中国高科技高…

从入门到精通:Shopee,lazada,temu自养号测评成本、步骤、技巧详解

测评对于卖家来说是一种成本低回报快的推广方式&#xff0c;可以减少高额的平台广告费用&#xff0c;因此是一种很好的辅助手段&#xff0c;对商品的曝光、流量、转化和权重等方面起到了很好的辅助作用 建议还是自己精养一批账号&#xff0c;账号在自己手里比较安全可控&#…

python中getattr/setattr/hasattr/delattr函数都是干什么的?

目录 1、getattr&#xff1a;动态获取属性 &#x1f50d; 1.1 动态获取属性 1.2 默认值处理技巧 1.3 实战案例&#xff1a;配置文件动态加载 2、setattr&#xff1a;动态设置属性 &#x1f6e0; 2.1 修改对象属性 2.2 新增属性场景 2.3 应用场景&#xff1a;类的动态配置…

Linux 命令历史、补全和正则表达式

1.命令历史就和windows的ctrlz一个概念&#xff0c;就是返回上一次的命令。 按下小键盘上下切换 ctrlc可以终止本次输入&#xff0c;进行下一次输入。 2.tab键可以自动补全&#xff08;有点鸡肋&#xff09; 3.正则表达式 类似于word的快速搜索&#xff0c;Linux也是用*和…

浅析C++引用

浅析C引用"&" ​ C中引入了一个新的语言特性——引用(&)&#xff0c;它表示某一对象的别名&#xff0c;对象与该对象的引用都是指向统一地址。那么我们就来看看关于引用的一些知识点吧&#x1f9d0; 特性 引用在定义时必须初始化一个变量可以有多个引用引…

zdppy_api+vue3+antd前后端分离开发,使用描述列表组件渲染用户详情信息

后端代码 import api import upload import time import amcomment import env import mcrud import amuserdetailsave_dir "uploads" env.load(".env") db mcrud.new_env()app api.Api(routes[*amcomment.get_routes(db),*amuserdetail.get_routes(db…

记一次微信小程序逆向

扫码领取网安教程 遇到瓶颈了&#xff0c;不知道该干什么&#xff0c;突然想到学校的小程序 闲来无事就看一看 抓包下来的数据是这样的&#xff0c;嗯&#xff0c;下机&#xff08;hhh 一、反编译程序 加密嘛&#xff0c;之前抓了看到是加密就放弃了&#xff0c;现在重新弄一…

轻松转换!两款AI工具让word秒变ppt!

想把Word文档一键生成PPT&#xff0c;过去有一个很常见的做法&#xff1a;先在Word文档中设置标题样式&#xff0c;通过标题样式来分隔每一部分&#xff0c;之后导出为PPT&#xff0c;就能得到一份PPT的雏形&#xff0c;但这种方法无法对PPT自动进行美化&#xff0c;即得到的只…

js替换对象内部的对象名称或属性名称-(第二篇)递归

1.代码示例&#xff1a; function replaceKey(obj, oldKey, newKey) {// 如果不是对象或者oldKey不存在&#xff0c;直接返回原对象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是数组&#xff0c;遍历数组每个元素if (Array.isArray(obj)) {obj…

【Python】一文向您详细介绍 np.inner()

【Python】一文向您详细介绍 np.inner() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;曾…

君方智能设计平台-对象持久化技术方案

1.背景介绍 1.1序列化功能 序列化是将复杂的图形对象、数据结构或对象转换成一种可被存储、传输或分享的格式的过程。这个格式通常是二进制或文本形式&#xff0c;能够轻松地保存在文件中或通过网络发送到其他应用程序。序列化的目的是将数据持久化&#xff0c;使其在不同时间…

【学术会议征稿】2024年第四届工商管理与数据科学学术会议(BADS 2024)

2024年第四届工商管理与数据科学学术会议(BADS 2024) 2024 4th International Conference on Business Administration and Data Science 2024年第四届工商管理与数据科学学术会议(BADS 2024)将于2024年10月25-27日在新疆喀什召开&#xff0c;由喀什大学支持本次会议。会议旨…

Mapboxgl 根据 AWS 地形的高程值制作等高线

更多精彩内容尽在dt.sim3d.cn&#xff0c;关注公众号【sky的数孪技术】&#xff0c;技术交流、源码下载请添加VX&#xff1a;digital_twin123 使用mapboxgl 3.0版本&#xff0c;根据 AWS 地形图块的高程值制作等高线&#xff0c;源码如下&#xff1a; <!DOCTYPE html> &…

OV证书签发一般要多久?

OV证书&#xff0c;即组织验证型SSL证书&#xff0c;的签发流程涉及多个阶段&#xff0c;其具体时间取决于多种因素。OV证书的签发一般需要1-3个工作日&#xff0c;这个过程可以分为以下几个阶段&#xff1a; 1、选择和购买证书&#xff1a; 用户需要在SSL证书服务商处选择合适…