群体历史共祖与有效群体大小推断 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

群体历史共祖与有效群体大小推断

更新:2026-10-26;状态:可用;验证范围:官方/原始来源核对;标准库教学算例已实跑;专业流程范围见正文。

历史Ne曲线并不是从基因型中直接数出古代人口。它是在给定突变、重组、抽样及群体模型下,将遗传变异模式解释成共祖时间尺度。本页目标是能说明各类数据提供什么时间信息、检查mask与尺度,并识别结构/迁移造成的替代解释。

前置为有效群体大小漂变与近交、选择中性模型与群体历史。准备参考版本、样本来源、覆盖/分型质量、可调用与不可调用区间、突变率单位、世代长度,以及模型需要的分相状态。没有可靠的“不变位置可用”证据,就不能把无VCF记录的位置全部当纯合参考。

共祖不是向前模拟人口普查

共祖从样本序列往过去追踪谱系。理想随机交配二倍体群体中,两条谱系每代合并概率的尺度约为1/(2Ne);很多谱系还涉及组合数。较长时间不合并可能与较大有效尺度一致,但群体分隔也会延长合并等待。Ne取决于所讨论过程,不等于当代个体数。

频谱方法利用不同频率变异的数量,序列/SMC方法利用沿基因组变化的局部共祖与连锁信息;它们对样本数、分相、重组和时间的敏感性不同。PSMC使用一个二倍体序列中的杂合/纯合模式,MSMC2、SMC++等使用不同设计,不能视为只换命令的同一模型。PSMC官方方法与输入

从序列证据到曲线的流程

先定义分析个体与参考,再构建满足程序要求的序列/频谱与mask;记录低覆盖、高覆盖、重复及低可比对区的排除。随后设定时间离散、初值与模型,检查拟合,再按率/世代假设换算坐标,最后进行区块重采样和敏感性分析。

把未检测变异与已测得不变混成一类,会让杂合模式偏低;组装缺口与测序错误也可能表现成历史信号。高覆盖仍可能有参考偏差或重复错配,因此mask不是只按深度一列过滤。对低覆盖硬分型,先评估误差如何传入特定方法。

手算尺度:μ和g影响不同

取按每位点标准化的 $\theta=4N_0\mu=0.0004$,每位点每世代突变率μ=10^-8,可得N0=10000。若一个时间点的无量纲值t=0.5,以2N0世代为单位,则为10000世代;g=25年/世代时为250000年。这个例子明确把θ标准化为每位点,不能把软件每100bp窗口的原始θ不经转换直接代入。

固定每世代μ,只把g增为50,年份轴加倍而Ne不变;μ加倍则N0减半,相应世代时间也缩小。若率以每年为单位,需要先说明其与每世代率的转换,不能同时使用不兼容单位。官方PSMC绘图实现将g用于时间换算、μ用于尺度换算。PSMC尺度计算源码

参数与稳定性应该怎样看

时间区间过细可能在信息少的时期拟合噪声,太粗又会平滑真实变化;近期或极古时期的有效分辨率要按数据与方法限制。多次初始化看数值稳定,按基因组区块重采样看抽样不确定性;二者都不能证明模型没有结构偏差。

报告曲线时一并给率、世代长度、mask长度、输入质量、分相与模型。区间很窄只能说明在该条件下抽样变化小,不保证历史解释唯一。可以比较多个合理参数和替代历史,而不是只挑最平滑、最符合故事的一条。

何时应停止人口史叙事

若抽样包含不同来源,先考虑群体结构和基因流;若选区强、重组率特殊或平台混用,先做区域与质量敏感性分析。同一共祖等待分布可能由大小变化或结构变化产生,单群体Ne曲线不能独立给迁移方向、具体瓶颈事件或确定人口普查数。

人工数据贯通群体遗传统计模拟固定Ne下的中性漂变,没有从序列反推历史。本页的新例也只换算单位,不把模拟参数当作已恢复的真实历史。专业执行入口保留PSMC、MSMC2与SMC++各自要求,不强行统一为一个万能输入。

动手:运行后先对照什么

在下载项目的根目录执行;只需Python 3标准库,不安装专业统计包:

python3 examples/methods_genetics_demo.py --case history

输出N0=10000、generations=10000、years=250000;g加倍后的年份为500000,μ加倍后的Ne为5000。逐步写出每个量的单位再比较。

本例没有拟合PSMC/MSMC2/SMC++、构建真实mask或进行人口史模型选择,只复核所说明的无量纲尺度。

命令只向终端打印JSON。若要保存所有22个小例,可用python3 examples/methods_genetics_demo.py --output examples/output/methods-genetics-practice1;目录必须新建或为空,已有结果不会被覆盖。源代码见标准库方法算例。

排错:先定位原因再改参数

症状 可能原因 下一步检查
曲线整体横纵移位 率、世代或窗口单位不同 先核对μ单位和θ是否已按每位点标准化
某时期出现尖峰 时间分箱过细或信息不足 比较时间离散、区块重采样和备择初值
混合样本推断巨大Ne 结构延长了共祖时间 分来源核查,比较允许结构的替代解释

自测与答案

  1. g从25改为50时Ne应加倍吗? 若每世代μ固定,不应;改变的是世代到年的时间换算。

  2. 窄bootstrap区间能证明瓶颈是真实唯一历史吗? 不能,区间通常反映给定模型下的抽样变化,不覆盖所有模型误设。

原有实践与延伸入口

PSMC;MSMC2;SMC++;PSMC官方绘图实现。

学习顺序、前置与练习清单见方法与算法系统学习指南。

公式里的矩阵、下标或对数不熟时,可回查读懂方法公式的最小数学基础。