首页 > 其他分享 >【基于R语言群体遗传学】-15-溯祖理论coalescence

【基于R语言群体遗传学】-15-溯祖理论coalescence

时间:2024-07-10 14:29:47浏览次数:16  
标签:种群 15 coalescence 等位基因 我们 联合 溯祖 2N 谱系

在群体遗传学中,一个非常重要的概念是关注谱系的汇聚(遗传线索的汇合),当我们回溯过去几代人口时。在之前的博客中,我们几乎只处理了随时间推移基因变化的“正向”模拟。

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


然而,通过时间逆向建模等位基因频率变化不仅是一个有趣的视角,当你知道当前种群内等位基因分布并想知道它是如何达到这一点时;在计算上,它也可以比编码随机向前变化快得多。为了澄清这个观点,让我们更多地思考一下遗传在一个种群中的工作方式。下图所示的模拟显示了在一个小种群中,等位基因是如何从前几代的父母那里随机继承的。在第一代,所有等位基因都被单独指定(这可能对应也可能不对应实际的等位基因差异)。因为在这个简单模型中我们没有突变,一旦一个等位基因由于没有被偶然采样而丢失,它就不能再被获得。同祖遗传(IBD,源自单一祖先拷贝的等位基因)在每一代中积累。 重要的是,我们不需要追踪个体。这里重要的是追踪等位基因拷贝。当我们按IBD对等位基因进行排序时,遗传漂移的过程更容易可视化。

正如预测的那样,遗传多样性(杂合性值,图右侧)或多或少地下降,直到它达到零,所有个体都含有来自单一初始拷贝的等位基因。请注意,等位基因拷贝在种群中固定下来,尽管它减少到单个拷贝,并且在第4、10和11代几乎丢失。 最后一代的所有等位基因都是第11代单个拷贝的后代大多数等位基因不是后代的祖先,尽管大多数等位基因确实在紧接着的几代中留下了后代拷贝。这是遗传线索在一个种群的位点上的工作方式的一个令人惊讶和普遍的特性。当模拟遗传漂移时,最后一个见解——大多数等位基因没有最终重要的后代(在群体遗传学的意义上)——意味着我们不需要追踪整个种群。我们所需要做的就是追踪那些汇聚到一个共同祖先的祖先线索(这种谱系的汇聚被称为coalescence)。事实上,我们不需要追踪一个谱系中的所有个体步骤,我们只需要知道世代之间的距离。 在这个共祖谱系中,几个共同的特性是显而易见的。节点(共祖事件)之间的长度越深入过去就越大。相反,在最后几代中有许多共祖事件。大多数共祖事件是随时间向前发展的二分叉——一个单一的谱系分裂成两个谱系。然而,在最后一代中有两个三分叉(分裂成三个)甚至一个四分叉,这在非常小的种群中经常被预测到,比如这个。

让我们来可视化两个谱系的汇聚过程。汇聚过程可以在连续时间内用指数分布近似,其速率参数为1/(2N)(每代汇聚的概率)。我们可以写出两个谱系在时间t汇聚的概率的近似值:

指数分布的平均值是速率参数的倒数——以世代为单位的时间按种群大小进行缩放,由于谱系可供选择的副本数量,这会影响每一代的联合速率。我们通过R进行模拟:

# 生成一个包含1000个指数分布随机数的向量,其中参数rate为1/2
exps <- rexp(1000, 1/2)

# 绘制exps的直方图
hist(exps)

# 在直方图上添加一条垂直线,表示exps的平均值,颜色设为蓝色,线型设为虚线
abline(v = mean(exps), col = "blue", lty = 2)

# 创建一个从0到exps最大值的序列,长度为1000
q <- seq(0, max(exps), length = 1000)

# 根据指数分布的概率密度函数计算序列q上的概率密度值,参数rate同样为1/2
z <- dexp(q, 1/2)

# 在当前图形设备上开启一个新的绘图区域,不覆盖原有图形
par(new = TRUE)

# 在新的绘图区域绘制q与z的关系图,线宽设为1,不显示坐标轴、注释,线条颜色设为红色
plot(q, z, lwd = 1, axes = F, ann = F, col = "red")

# 在右侧添加一个颜色为红色的y轴,标签方向设置为水平
axis(4, las = 1, col = "red")

指数分布具有较大的方差:速率参数倒数的平方,在这种情况下为(2N)²。我们可以对分布进行积分,以找到95%的联合事件可能发生的点。

换句话说,由于两个谱系的遗传漂变,预计95%的溯祖事件将发生在6N代内(在种群大小恒定等情况下)。那么超过两个谱系呢?如果我们增加第三个谱系,第一次联合发生的机会就更多了,因为在基因谱系中,随着时间的推移,种群中有更多的谱系可以相互碰撞。事实上,有三种联合方式:A与B、B与C或A与C。因此,第一次事件的速率是原来的三倍。

这种事件发生之前的平均时间是速率的倒数,即(2/3)N代。然后,剩下的两个谱系平均需要再经过2N代才能联合

你可以猜到接下来会发生什么。对于四个谱系,我们有六种方式进行首次联合,所以速率是6,平均时间是2N/6代,这时我们剩下三个谱系:

在这里,事情开始以另一种方式变得复杂。根据哪两个谱系首先联合以及它们与第二次联合的谱系的关系,存在两种不同的拓扑结构。比较上面的图形(拓扑概率为2/3)和下面的图形(概率为1/3)。

每次额外的时间步长之间联合事件的预期时间遵循以下模式:

  • 对于两个谱系,预期时间为2N代。
  • 对于三个谱系,第一个联合事件的预期时间为(2/3)N代,之后剩下两个谱系,再经过2N代才可能发生下一次联合。
  • 对于四个谱系,第一个联合事件的预期时间为(2/6)N代,之后剩下三个谱系,再经过(2/3)N代才可能发生下一次联合。

其中n是在任何给定时间可以联合的谱系数量。n(n − 1)/2是成对比较的数量,也称为三角数。

 当种群规模较大时,我们做一个简化的假设,即只发生二分叉,并且在每个时间段只发生一次溯组事件。从这些例子中,你可以开始看到,增加样本量往往会在树的末端添加短分支,而不是深入到基因谱系中的长分支。在所有谱系联合及其对遗传变异的影响方面,时间上存在很大的方差。

想象一下,随着时间的推移,种群大小的变化,比如10倍的扩张或收缩。这可能会如何影响基因组中回溯事件的分布?当我们讨论中性测试时,我们将回到这个问题。 回溯的概念可以用来推导群体遗传学中的一些基本预期。认识到向后的联合等同于向前的遗传漂变是有帮助的。考虑漂变-突变平衡;一个种群的预期杂合度是多少?如果每个突变在一个位点上产生一个新的等位基因(无限等位基因模型),每代谱系对的突变率是2

标签:种群,15,coalescence,等位基因,我们,联合,溯祖,2N,谱系
From: https://blog.csdn.net/qq_51566832/article/details/140296707

相关文章

  • 1575 二叉苹果树
    //1575:【例1】二叉苹果树.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://ybt.ssoier.cn:8088/problem_show.php?pid=1575https://loj.ac/p/10153有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共N个节点,标号......
  • 内存管理-15-Arm64汇编
    1.Arm64汇编lsr指令LSR是ARM架构的位移动指令,用于逻辑右移操作。它将第一个操作数的位向右移动指定位数,并根据需要将符号位(在有符号数操作中)扩展到空出来的位。语法:LSR{条件}{S}移位量,寄存器条件是可选的,指定为如EQ、NE等,用来指明只有在特定条件下才能执行指令。S是可......
  • 关于力扣150题目——逆波兰表达式求值Java实现的三种解法
    题目介绍逆波兰表达式是一种后缀表达式,其运算符位于操作数之后。力扣150题目要求我们实现一个函数,计算给定逆波兰表达式的值。本文将介绍三种不同的Java实现方法来解决这个问题。解法一:使用栈这是最直观和常见的解法,使用栈来存储操作数,并在遇到运算符时从栈中弹出操作数......
  • 15、 Django-多表操作-多个模块的关联-多对多的增删改查- models.manytomany()
    针对多对多的关系django会自动创建第三张表、也可以通过through参数指定第三张表 models.pyfromdjango.dbimportmodels#Createyourmodelshere.#多对多#用户表:电影=N:M#一个用户可以收藏多部电影#一部电影可以被不同的用户收藏#电影classMovie(models.M......
  • 代码随想录刷题day 7 | 哈希表part02 454.四数相加II 383. 赎金信 15. 三数之和
    454.四数相加II//这道题使用哈希就可解决,使用一个map存储前两个数组中,所有组合产生的sum的频率;对于后两个数组中所有的组合,每出现一个和的相反数出现在map中,则代表出现了这个相反数频率个组合可以满足四数相加为0classSolution{publicintfourSumCount(int[]nums1,......
  • LeetCode 1546. 和为目标值且不重叠的非空子数组的最大数目
    1546.和为目标值且不重叠的非空子数组的最大数目给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例1:输入:nums=[1,1,1,1,1],target=2输出:2解释:总共有2个不重叠子数组(加粗数字表示)[1,......
  • 基于SpringBoot的酒店订房系统+82159(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、A
    springboot酒店订房系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店订房系统当然也不能排除在外。酒店订房系统是以实际运用为开发背景,运用软件工程开发方法,采用springboot技术构建的一个管理系统......
  • 015 Creating First C# App using Visual Studio
    CreatingFirstC#App示例代码Program.csclassSample{  staticvoidMain()  {    System.Console.WriteLine("Hello");    System.Console.ReadKey();  }}......
  • mac10.15 突然 vscode打不开了?
    问题描述mac上vscode前一天还用的好好的,第二天突然软件都打不开了解决过程1、第一步:重启电脑(无效)2、第二步:卸载vscode重新安装(依旧无效)3、查阅百度上的方法全部无效百度了大半天都没有找到解决方案,最后参考git发现用户留言在mac上1.91版本会导致运行奔溃,最后安装1.......
  • 1154java jsp SSM古董拍卖网站系统(源码+文档+PPT+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......