群体结构与祖源分析(PCA、ADMIXTURE)
群体结构分析研究一批个体或群体之间的遗传关系:谁和谁更相近,分成几个遗传簇,每个个体的祖源由哪几部分构成。常用三类方法互相补充:主成分分析(PCA)把高维基因型压缩到几个轴上直观展示分化;ADMIXTURE 等模型法在给定 K 个祖源群体的假设下估计每个个体的混合比例;系统发育树从距离或序列出发重建亲缘关系。数据通常是全基因组 SNP,来自芯片、重测序或简化基因组测序,研究对象可以是人群,也可以是作物品种、家畜和病原体。在 GWAS 中,群体结构分析还是控制分层偏倚的前置步骤。
什么时候用
- GWAS 前识别祖源离群样本,确定纳入多少个主成分作为协变量
- 作物、家畜或野生物种重测序后,研究品种或地理群体的遗传分化
- 估计混合群体中各祖源成分的比例
- 病原体或物种样本构建系统发育树,研究进化关系与传播
- 比较群体间的分化程度,筛选高 Fst 的候选选择区域
不适合的情况
- 只有少量位点(如几十个微卫星)又想做精细的混合比例估计
- 把 ADMIXTURE 的 K 个成分直接解释为历史上真实存在的祖先群体
- 存在大量近亲个体却不处理:PCA 和 ADMIXTURE 会被家系结构主导
需要准备的数据
- 基因型数据
- VCF 或 PLINK 格式的二等位 SNP;完成样本和位点质控,剔除高缺失位点
- 样本信息表
- 个体 ID 与群体、地理来源或品种的对应关系,用于给图着色和按群体计算统计量
- 参考群体(可选)
- 人类研究常加入 1000 Genomes 等参考样本做投影,用于判断研究样本的大致祖源
- 建树序列或比对(建树时)
- 多序列比对文件或由 SNP 拼接的比对;需注明是否只含变异位点,这关系到模型校正
分析步骤
- 1
质控与亲缘过滤
剔除高缺失样本和位点、低 MAF 位点,只保留二等位 SNP。用 KING 等工具估计亲缘系数,近亲对只保留一人,否则 PCA 的前几个轴可能只反映某个家系的结构。同时核对样本标签与分组信息,标签错误在后续图上很难发现。
- 2
LD 剪枝
用 PLINK --indep-pairwise 剪除高 LD 位点,常用设置为窗口 50 个 SNP、步长 5、r² 0.2。人类数据还常排除 MHC 等长程 LD 区域和已知大片段倒位区,避免某一个区域主导主成分,使轴反映的是局部 LD 而不是群体分化。
- 3
主成分分析
用 PLINK --pca 或 EIGENSOFT 的 smartpca 计算主成分,查看各主成分解释的方差比例。只有研究样本与参考样本合并分析时,才能把研究样本放到参考群体的坐标系中解读。
- 4
ADMIXTURE 祖源分析
在剪枝后的 bed 文件上,对 K 从 2 到若干依次运行 ADMIXTURE 并加 --cv 得到交叉验证误差。每个 K 用多个随机种子重复,选误差较低且多次运行结果一致的 K,再用 CLUMPAK 等工具把不同运行的成分对齐后作图。
- 5
群体分化统计
按群体计算 Fst(如 VCFtools 的 --weir-fst-pop 或 PLINK 2 的 --fst),了解群体两两之间的分化程度。也可沿基因组滑窗计算 Fst,寻找分化异常高的区域作为候选选择信号,滑窗大小需结合物种的 LD 衰减尺度确定。
- 6
系统发育树构建
根据数据类型选方法:距离法(如邻接法)速度快,适合大量样本的快速浏览;最大似然法(IQ-TREE、RAxML-NG)更准确。用 ModelFinder 等选择替代模型,用 bootstrap 评估分支支持度,再用 iTOL 或 ggtree 可视化并标注群体信息。
- 7
结果整合
把 PCA、ADMIXTURE 和进化树放在一起解读:三者给出的分组应大体一致。出现矛盾时,先检查样本标签、质控和建树所用位点,而不是挑一个看起来最好的结果。
关键参数与决策
LD 剪枝阈值
r² 0.2 是常用起点,数据位点很多时可更严格(如 0.1)以减少计算量。剪枝不足时 PCA 会出现由单个 LD 区块驱动的轴,ADMIXTURE 也会把高 LD 区域当成独立信息过度计权。
ADMIXTURE 的 K 值
以交叉验证误差最低或下降趋于平缓的 K 为参考,但不应只报一个 K。通常同时展示相邻多个 K 的结果,说明随 K 增加哪些群体先被分开,这比单一最佳 K 更有信息量。
主成分个数
用于 GWAS 校正时常取前 10 个左右,也可看碎石图或 Tracy-Widom 检验(smartpca 提供)判断有统计意义的主成分数。用于展示时一般画前两到三个主成分。
建树模型与支持度
只用变异位点建树时需做 ascertainment bias 校正(IQ-TREE 中在模型后加 +ASC)。支持度方面,标准 bootstrap 常以 70 以上为较可靠,IQ-TREE 的 UFBoot 通常要求 95 以上才视为可靠。
常见错误
- 不剪枝就做 PCA 或 ADMIXTURE:结果被少数高 LD 区域或大片段倒位区主导,出现与群体分化无关的主成分轴,祖源比例也会把同一区域的信息重复计入。
- 研究样本单独做 PCA 后与参考群体的图直接对比:两次分析得到的坐标系不同,轴的方向和符号都可能不一致,应把研究样本与参考样本合并计算,或做投影分析。
- 样本量严重不均衡:某个群体样本特别多时,PCA 前几个轴会围绕它展开,小群体被压缩在一起,可以按群体下采样后比较。
- ADMIXTURE 只跑一次:不同随机种子可能收敛到不同局部最优,结果不稳定却被当成结论,应多次运行并用 CLUMPAK 等工具对齐。
- 把 ADMIXTURE 中的混合比例当成发生过混合的证据:连续的地理梯度或瓶颈效应也会产生类似模式,需要 f 统计量等方法进一步检验。
- 用低支持度的分支讨论进化关系:bootstrap 很低的节点在不同数据子集或不同模型下可能重新排列,基于这类节点推断分化顺序或迁移路线,结论无法重复。
结果怎么看
PCA 散点图
每个点是一个个体,按群体着色。看各群体是否分开、沿哪条轴分开,以及轴解释的方差比例。个别个体落在其他群体中,可能是标签错误、样本污染或真实的迁移个体,需要回查。
ADMIXTURE 柱状图
每根竖条是一个个体,不同颜色代表 K 个成分的比例,个体按群体排列。看随 K 增加哪些群体先分出来,以及群体内部是否一致。同一群体内比例差异大,提示存在亚结构或混合。
交叉验证误差图
横轴为 K,纵轴为交叉验证误差。最低点或曲线开始变平的拐点是选择 K 的参考。曲线持续下降且没有明显拐点,说明结构是连续的或样本量不足以分辨更多成分,这时不宜只报一个 K,应展示相邻几个 K 的结果。
系统发育树
看样本是否按群体或地理来源聚为单系,以及节点支持度。长枝可能是测序质量差或高度分化的样本;同一群体分散在多个分支,可能存在基因流或标签问题。
和相近方法怎么选
PCA 与 ADMIXTURE
PCA 不依赖模型,快速展示主要分化方向,适合质控和 GWAS 协变量。ADMIXTURE 基于混合模型,给出每个个体的祖源比例,更直观但依赖 K 的选择和模型假设。两者一般同时做,结果相互印证。
ADMIXTURE 与 STRUCTURE、fastSTRUCTURE
三者模型思路相近,都是在给定 K 的前提下估计混合比例。STRUCTURE 用 MCMC 采样,可处理多种标记类型,但在全基因组 SNP 数据上很慢;ADMIXTURE 用最大似然优化,速度快,适合大量 SNP;fastSTRUCTURE 用变分推断,同样适合大规模数据。
距离法建树与最大似然建树
邻接法等距离法基于遗传距离矩阵,计算快,适合上百个样本的快速浏览和质控。最大似然法直接对序列演化建模,可以比较替代模型、评估分支支持度,更适合用于发表的进化关系推断,代价是计算量大,样本很多时需要较长时间。
常见问题
ADMIXTURE 的最佳 K 值怎么选?
对一系列 K 加 --cv 运行,选交叉验证误差最低或下降开始变缓的 K。同时要结合生物学背景和多次运行的一致性。论文中常展示多个 K 的结果,把最佳 K 作为重点解释,而不是只放一张图。
PCA 图上样本分不开说明什么?
可能是群体间确实分化很弱,也可能是位点太少或剪枝过度。可以检查前几个主成分解释的方差,并看后面的主成分是否能分开。分化很弱时,用 Fst 或 ADMIXTURE 在较高 K 上也许能看到细微结构。
SNP 数据怎么构建系统发育树?
常见做法有两种:用 PLINK 计算个体间的遗传距离,再做邻接树,速度快;或把 SNP 转成比对格式后用 IQ-TREE 做最大似然树。后者因为只包含变异位点,需要加 ascertainment bias 校正,否则分支长度会被系统性高估。
Fst 多大算高度分化?
常被引用的经验划分是 0 到 0.05 分化很小,0.05 到 0.15 中等,0.15 到 0.25 较大,0.25 以上很大。这只是粗略参考,具体解释要结合物种、标记类型和样本量,不同估计方法得到的数值也不完全可比。
在 Codar 里怎么做
在 Codar 里提供 VCF 或 PLINK 基因型和样本分组信息后,会先确认分析方案,再进行群体结构与祖源分析:质控与 LD 剪枝、主成分分析、多个 K 值的祖源比例估计与交叉验证、群体间分化统计;需要时进一步做系统发育树构建与评估,包括模型选择和分支支持度。交付 PCA 图、祖源柱状图、CV 误差图、进化树图、统计表、报告和可复现脚本。
我有 120 个水稻品种的重测序 VCF 和品种来源表,想做 PCA 和 ADMIXTURE(K=2 到 8),再建一棵最大似然树看品种间关系