当前位置: 首页 > news >正文

【基于R语言群体遗传学】-13-群体差异量化-Fst

在前几篇博客中,我们深度学习讨论了适应性进化的问题,从本篇博客开始,我们关注群体差异的问题,建议大家可以先看之前的博客:群体遗传学_tRNA做科研的博客-CSDN博客


一些新名词

Meta-population:An interconnected group of smaller populations.

亚种群:一个由较小的种群相互连接组成的群体。

Deme:Asingle population within a meta-population.

局域种群:亚种群内的单个种群。

Sub-population:A group of individuals within a population that are more likely to breed with each other than members of other sub-populations.

子种群:种群中的一组个体,它们彼此之间比其他子种群的成员更有可能进行繁殖。

分化的量化(quantifying divergence)-Fst

群体遗传学的一个共同关注点是量化可识别种群之间的差异。衡量种群间差异的一个关键指标是FST,它已经被反复定义和重新定义。FST是由Sewall Wright推导出的F统计量之一(更多信息请参见Weir 2012),广义上是对两个相关种群之间遗传差异的量化,通常在从零(无差异)到一(完全差异)的范围内变化

从概念上讲,FST可以被理解为一种度量,它告诉我们相对于整个种群的总多样性,不同亚种群之间缺失了多少多样性。换句话说,如果FST的值接近1,这意味着亚种群之间的遗传差异很大,每个亚种群可能具有独特的遗传特征;而如果FST的值接近0,则意味着亚种群之间的遗传差异很小,它们在遗传上是相似的。

FST的计算通常涉及到比较种群内的遗传变异与种群间的遗传变异。一个高的FST值表明种群间的遗传变异占总体遗传变异的比例较高,即种群间的差异较大;而一个低的FST值则表明种群内的遗传变异占主导,种群间的差异较小。


根据哈代-温伯格定律,我们知道当有等位基因频率时,我们可以预期的多样性(即杂合子)的数量是2p(1-p)。如果我们有多个亚种群的等位基因频率测量,我们可以说我们总的预期杂合性(HT)是:

其中p是所有亚种群的平均等位基因频率。我们可以将这个值与我们在每个亚种群内观察到的杂合性水平(HS)的平均值进行对比,如果我们有两个亚种群,那么HS将是 :

其中p1是亚种群1中的等位基因频率,p2是亚种群2中的等位基因频率,H1和H2是每个亚种群内杂合性的相应度量。

我们可以可视化Hs与Ht:

# 定义两个群体的等位基因频率
p1 <- 0.15 # 第一个群体的等位基因频率
p2 <- 0.7  # 第二个群体的等位基因频率# 计算每个群体的杂合子比例(遗传多样性)
h1 <- 2*p1*(1-p1) # 第一个群体的杂合子比例
h2 <- 2*p2*(1-p2) # 第二个群体的杂合子比例# 计算两个群体等位基因频率的平均值
p_ave <- (p1+p2)/2 # 平均等位基因频率# 计算在平均等位基因频率下的杂合子比例(总体遗传多样性)
ht <- 2*p_ave*(1-p_ave) # 总体的杂合子比例# 计算两个群体杂合子比例的平均值(种群的遗传多样性)
hs <- (h1 + h2)/2 # 种群的杂合子比例# 绘制等位基因频率与杂合子数量的曲线图
curve(2*x*(1-x), from=0, to=1, xlab="Allele frequency", # x轴为等位基因频率,y轴为杂合子数量ylab="Heterozygotes", lwd=2) # 线条宽度为2# 在图中标出两个群体的具体点
points(c(p1,p2), c(h1,h2), cex=2, pch=16) # 使用大小为2的点,形状为16# 标出平均等位基因频率下的种群和总体杂合子比例
points(c(p_ave,p_ave), c(hs,ht), cex=2) # 使用大小为2的点# 在图中添加文本标签
text(x=p1, y=h1-0.03, "H1") # 在第一个群体杂合子比例下方添加标签H1
text(x=p2, y=h2-0.03,"H2") # 在第二个群体杂合子比例下方添加标签H2
text(x=p_ave, y=hs-0.03,"Hs") # 在种群杂合子比例下方添加标签Hs
text(x=p_ave+0.03, y=ht-0.03, "Ht") # 在总体杂合子比例下方添加标签Ht# 添加连接线
lines(c(p1,p2), c(h1,h2), lty=2) # 连接两个群体杂合子比例的虚线
lines(c(p_ave,p_ave), c(hs,ht)) # 连接种群和总体杂合子比例的实线

我们可以观察到预期杂合度(heterozygosity)的2p(1-p)曲线呈向下凹的形状。这种曲线的特性意味着,当两个群体具有不同的等位基因频率,从而有不同的预期杂合度(如图中的H1和H2所示)时,它们之间的组合中点(即图中虚线上的HS)总是低于预期的总杂合度(HT)。 这个现象揭示了群体遗传学中的一个重要原理:当考虑多个群体的遗传多样性时,简单地取其等位基因频率的算术平均值并不能准确反映整体的遗传多样性。实际上,由于2p(1-p)曲线的凹性质,两个群体等位基因频率的平均值所对应的杂合度(HS)会低于这两个群体合并后的实际总杂合度(HT)。换句话说,合并群体的总遗传多样性高于基于各自群体等位基因频率平均值预测的遗传多样性。 这一发现对于理解不同群体间的遗传交流、保护生物多样性以及制定合理的保护策略具有重要意义。它提示我们在评估和比较不同群体的遗传多样性时,不能仅仅依赖于等位基因频率的简单平均值,而应该综合考虑各群体的实际遗传构成。


Fst是一个衡量群体间遗传分化的指标,它描述的是群体内与群体间遗传变异的比例。具体来说,Fst测量的是在HS(种群内平均杂合度)与HT(总体杂合度)之间“缺失”的杂合度部分,并且这个差值是通过HT来标准化的:

在群体遗传学中,衡量两个群体间等位基因频率差异的最大情况是一个群体为100%,另一个群体为0%。在这种情况下,不存在杂合子,因此我们的H1和H2测量值都将是零。根据FST的计算公式,FST = 1 - (HS/HT),在这种极端情况下,HS(种群内平均杂合度)为0,HT(总体杂合度)为0.5,所以FST = 1 - (0/0.5) = 1。这表明两个群体间存在完全的遗传分化,没有任何遗传物质的交流。 另一方面,如果两个亚群体之间的等位基因频率测量值完全相同,那么H1和H2也将完全相同。无论我们如何计算平均值,H1 = H2 = HS = HT,这意味着(HS/HT)将等于1,从而使得FST = 0。这表示两个群体间没有遗传分化,它们在遗传上是相同的。 FST的这种性质使其成为衡量群体间遗传差异的一个非常有用的工具。FST值为1表明群体间完全隔离,没有任何基因流;而FST值为0则表示群体间完全混合,遗传上没有区别。

实际FST值通常介于0和1之间,反映了不同程度的遗传分化。我们使用之前的例子来说明:

library(popgenr)
data(snp)
h_exp <- 2*snp$p*(1-snp$p)
fst <- (h_exp-snp$het) / h_exp
mean(fst)

FST是一个衡量群体间遗传分化的指标,它量化了不同群体之间的遗传差异,但本身并不提供这些差异产生的原因。群体间的遗传差异可能由多种因素造成,例如迁移率较低并伴有遗传漂变、近期的共同祖先后发生隔离和漂变、或者某些位点上强烈的选择作用导致不同地点的适应性变化等。 FST值的高低可以反映出群体间遗传结构的差异程度,但它并不直接说明这些差异是如何形成的。例如,一个较高的FST值可能指示群体间存在较少的基因流动,但这并不一定意味着迁移率低是唯一的原因。同样,群体间共享的近期祖先历史也可能导致遗传分化,而这种分化并不一定与迁移率直接相关。此外,如果某些基因位点受到强烈的选择压力,而这些位点在不同地理位置的适应性有所不同,那么这也可能导致FST值升高,尽管这种选择作用并不是由迁移率直接引起的。 因此,虽然FST是一个有用的工具来量化群体间的遗传差异,但要理解这些差异背后的生物学过程和机制,通常需要结合其他遗传学、生态学和进化生物学的研究方法和数据。这可能包括对迁移模式的直接研究、对群体历史的推断分析,以及对自然选择作用的检测等。通过这些综合的方法,研究者可以更全面地揭示导致群体遗传分化的复杂因素。

下一篇博客将讨论种群回溯祖先相关内容。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 移动应用开发课设——原神小助手文档(2)
  • nvidia driver和cuda版本较低,ubuntu系统更新nvidia驱动的方法(对于小白最快最最保险的方法)
  • 近红外光谱脑功能成像(fNIRS):2.实验设计、指标计算与多重比较
  • pbootCMS 数据库sqlite转mysql数据库
  • VSCode使用Makefile管理工程
  • 人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作
  • 【多模态】40、ConvLLaVA | 使用 ConvNeXt 为 LLaVA 实现更高分辨率的输入
  • C# 下sendmessage和postmessage的区别详解与示例
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • Golang | Leetcode Golang题解之第222题完全二叉树的节点个数
  • 数据库详细复习第三章SQL语句
  • java入门-面向对象基础(this关键字)
  • 大数据面试题之数据库(2)
  • 【数学建模】2005建模A题:长江水质综合评价与预测
  • 光伏电站数据采集方案(基于工业路由器部署)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【5+】跨webview多页面 触发事件(二)
  • create-react-app做的留言板
  • echarts花样作死的坑
  • egg(89)--egg之redis的发布和订阅
  • ES6 ...操作符
  • FastReport在线报表设计器工作原理
  • idea + plantuml 画流程图
  • JS变量作用域
  • Kibana配置logstash,报表一体化
  • Rancher-k8s加速安装文档
  • SpriteKit 技巧之添加背景图片
  • vagrant 添加本地 box 安装 laravel homestead
  • 爱情 北京女病人
  • 前端学习笔记之观察者模式
  • 区块链分支循环
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 突破自己的技术思维
  • 用element的upload组件实现多图片上传和压缩
  • 用mpvue开发微信小程序
  • 说说我为什么看好Spring Cloud Alibaba
  • ​secrets --- 生成管理密码的安全随机数​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Lua:Lua调用C++生成的DLL库
  • (14)Hive调优——合并小文件
  • (152)时序收敛--->(02)时序收敛二
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (SpringBoot)第二章:Spring创建和使用
  • (第27天)Oracle 数据泵转换分区表
  • (汇总)os模块以及shutil模块对文件的操作
  • (三)elasticsearch 源码之启动流程分析
  • (三)终结任务
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net 4.0并行库实用性演练
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET NPOI导出Excel详解
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护