在群体遗传学中,一个非常重要的概念是关注谱系的汇聚(遗传线索的汇合),当我们回溯过去几代人口时。在之前的博客中,我们几乎只处理了随时间推移基因变化的“正向”模拟。
然而,通过时间逆向建模等位基因频率变化不仅是一个有趣的视角,当你知道当前种群内等位基因分布并想知道它是如何达到这一点时;在计算上,它也可以比编码随机向前变化快得多。为了澄清这个观点,让我们更多地思考一下遗传在一个种群中的工作方式。下图所示的模拟显示了在一个小种群中,等位基因是如何从前几代的父母那里随机继承的。在第一代,所有等位基因都被单独指定(这可能对应也可能不对应实际的等位基因差异)。因为在这个简单模型中我们没有突变,一旦一个等位基因由于没有被偶然采样而丢失,它就不能再被获得。同祖遗传(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𝜇。每代谱系对的联合率是1/(2N)。在平衡状态下,平均杂合度预期为两种速率的总和之外的突变率:
而𝜃 = 4Nμ
如果我们考虑到,平均而言,两个DNA序列副本在2N代前溯祖到一个共同祖先,因为每一代溯祖的概率是1/(2N),那么这两个副本之间的总距离是4N代(从一步后退到祖先,然后再后退2N代到另一个副本)。当我们应用每代突变率并假设每个突变发生在DNA序列的一个新的碱基对位置(无限位点模型)时,这两个副本之间平均有4N𝜇次突变。我们得到:
Fst可以通过考虑每代谱系对的联合率作为谱系迁移到种群的总速率的一部分来推导,每次两对,以及漂变:
其中m是每代迁移比例(如果你绘制这个图,你可以看到,在每一代中,只有少量的迁移个体Nm,可以快速使种群同质化)。最后,溯祖可以用来推导一个共同的祖先,然后是一个FST的隔离模型:
其中g代表自隔离以来的世代数。
有趣的是,如果这两个FST模型(具有非常不同的假设)被设置为相等并简化,我们得到m = 1/g。联合强调了非平衡共享祖先与隔离和漂变相对于持续迁移-漂变平衡对预期FST的反作用,仅凭FST无法区分它们。