3.2 等位基因频率的变化


3.2 等位基因频率的变化:选择与突变的方程

本节摘要:本节给出种群遗传学的核心递推方程——在指定基因型相对适合度下,等位基因频率如何逐代更新。我们将推导它、用它解释 S 形轨迹的成因、比较显性与隐性有利突变命运的不对称,并把突变-选择平衡这个经典模型跑成代码,解释遗传病等位为何能长期存在。

递推方程:一步推导

设基因型适合度 w_AA、w_Aa、w_aa。交配前基因型频率为 p²、2pq、q²,经过选择存活后各自乘以 w 再归一化,等位 A 在幸存者中的频率为:

p' = p²·w_AA + p·q·w_Aa,再除以平均适合度 w̄ = p²·w_AA + 2pq·w_Aa + q²·w_aa

即"选择后频率 = 加权平均 / 均值"。这个结构对所有选择模型通用,值得手工推一遍——它只是"从幸存者池里重新计算 A 的占比"。

演练一:确定性选择轨迹与 S 形曲线

def selection_trajectory(p0=0.05, wAA=1.0, wAa=1.0, waa=0.8, gens=80): """A 为显性有利:轨迹为何呈S形""" p = p0; traj = [p0] for _ in range(gens): wbar = p*p*wAA + 2*p*(1-p)*wAa + (1-p)**2*waa p = (p*p*wAA + p*(1-p)*wAa) / wbar traj.append(p) return traj traj = selection_trajectory() for g in (0, 10, 20, 40, 60, 80): print(f"第{g:>2}代 p = {traj[g]:.3f}")

输出呈现典型 S 形:起步慢、中段陡、尾部趋缓。成因可以直接从公式读出——当 a 大多藏在 杂合子里时,选择看不见它们(显性有利情形 w_Aa = w_AA),只有稀有的 aa 暴露在选择下;同理当 A 已接近固定,剩余的 a 都躲在杂合子中,清除速度随之放慢。选择改变频率的能力在两端都受挫,在中段最强,这一性质决定了适应的节奏。

演练二:显性有利 vs 隐性有利——命运的分岔

def compare_dominance(p0=0.02, s=0.2, gens=200): """同为有利等位,显性与隐性的轨迹差异""" traj_dom = selection_trajectory(p0, 1.0, 1.0, 1 - s, gens) # 隐性有利:只有 aa 受益 p = p0; traj_rec = [p0] for _ in range(gens): wAA, wAa, waa = 1 - s, 1 - s, 1.0 wbar = p*p*wAA + 2*p*(1-p)*wAa + (1-p)**2*waa p = (p*p*wAA + p*(1-p)*wAa) / wbar traj_rec.append(p) return traj_dom, traj_rec d, r = compare_dominance() print("显性有利: p 走到 0.99 用了约", next(g for g, v in enumerate(d) if v > 0.99), "代") print("隐性有利: 200 代后 p =", f"{r[-1]:.3f}")

隐性有利等位在稀有时几乎完全藏在杂合子里、选择对它"失明",只能靠漂变慢慢抬升;一旦过了某个阈值则加速固定。这解释了一个经典现象:新的隐性有利性状极难在 大群体中起步,而在小群体(漂变先把频率抬到可见水平)反而更幸运——选择与漂变在此形成合作关系。

突变-选择平衡:遗传病等位为何不消失

若有害等位 a 由 AA 以速率 μ 持续突变产生、又被选择以系数 s 清除,平衡频率约为 q ≈ √(μ/s)*(隐性有害时)。代数字:μ = 10⁻⁵、s = 0.01,则 q* ≈ √(10⁻³) ≈ 0.032——远高于直觉。建模:

def mutation_selection(mu=1e-5, s=0.01, p0=0.99, gens=3000): """含正向突变的隐性有害选择,观察q收敛到平衡值""" q = 1 - p0; hist = [] for _ in range(gens): # 选择阶段(隐性有害) wbar = p0*p0 + 2*p0*q + q*q*(1 - s) q_sel = (p0*q + q*q*(1 - s)) / wbar # 突变阶段:AA 以 mu 变为 Aa 等价于给 q 供料 q = q_sel + mu * (1 - q_sel) p0 = 1 - q hist.append(q) return hist h = mutation_selection() print(f"平衡 q* 实测 {h[-1]:.4f}, 理论 sqrt(mu/s) = {(1e-5/0.01)**0.5:.4f}")

实测与 √(μ/s) 吻合到小数点后四位。这条曲线有现实分量:囊性纤维化等隐性致病等位在人群中的持久存在,不是因为"选择失效",而是因为突变供给与杂合子庇护共同维持了平衡。更微妙的是杂合优势场景(q* ≈ μ/(hs),数值更低但机制更反直觉),疟疾地区的镰刀形细胞等位是教科书案例:杂合子抗疟的优势足以让有害纯合子被容忍。

💡 关键直觉:方程里的每一项都对应一种可测量的力。看到一个田间频率数据,先问三件事:选择系数多大?有无突变供给?群体多大(下一节的漂变项)?

本节要点回顾

  • 递推方程 = 加权平均 / 平均适合度,是所有确定性选择模型的骨架
  • S 形轨迹源于稀有等位躲在杂合子里,两端选择效率骤降
  • 隐性有利等位起步极难,漂变可为其开路——选择与漂变可以合作
  • 突变-选择平衡 q ≈ √(μ/s)* 解释有害等位的长期存留

下一节把两种"不看适合度"的力量——漂变与基因流——正式请进方程组。

常见问题

为什么杂合优势能让有害等位长期维持? 当杂合子适合度高于两种纯合子时,选择本身阻止任何等位走向固定:A 多了,aa 变稀但 A 主要藏在杂合子里被保护;a 同理。平衡频率由两种纯合子的选择系数之比决定,镰刀等位在疟疾区的稳定存在正是这个解。与突变-选择平衡不同,杂合优势能把等位维持在远高于突变供给的频率上。

选择能把有害等位彻底清零吗? 显性有害可以较快清除;隐性有害则永远拖尾——稀有时几乎全在杂合子里,清除速率与 q 成正比地趋近零,叠加新突变供给,实际终点是突变-选择平衡而非零。这个"清除尾巴"的数学在医学上有对应问题:携带者筛查能压低隐性病发病率,但永远不能归零。

wbar(平均适合度)在方程里扮演什么角色? 它是归一化因子,代表群体的平均存活繁殖水平。费希尔的基本定理说的就是:选择的直接效应是让平均适合度以等于遗传方差加性成分的速率增长——这个视角把"适应"变成了一个可以逐代记账的会计科目。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U