群体遗传学核心指标Fst:原理、计算与生物学解读

发布时间:2026/7/29 17:48:50
群体遗传学核心指标Fst:原理、计算与生物学解读 1. 群体遗传学中的“尺子”Fst是什么以及我们为什么需要它在分析不同人群、不同地理种群甚至是不同实验处理组的生物样本时我们常常会问一个最基础的问题它们之间的遗传差异到底有多大这种差异是随机的基因漂变造成的还是受到了自然选择、地理隔离等力量的塑造要回答这个问题光靠肉眼比较基因频率的数值是远远不够的我们需要一把客观、定量的“尺子”来度量群体间的分化程度。这把尺子就是群体遗传学中至关重要的指标——Fst群体间分化指数。简单来说Fst是一个介于0到1之间的数值它衡量的是遗传变异在群体内部和群体之间的分布情况。如果所有群体的基因频率都完全一样那么遗传变异全部存在于个体之间群体之间没有分化此时Fst 0。相反如果每个群体内部的所有个体基因型都完全一致但不同群体之间却完全不同那么遗传变异全部存在于群体之间此时Fst 1。现实中绝大多数生物群体的Fst值都落在0到0.5之间为我们理解种群结构、历史迁徙和适应性进化提供了关键的量化依据。我最初接触Fst是在分析几个不同地理来源的水稻品种数据时。当时手头有华南、华中、华北三个地区的样本单纯看某些SNP位点的等位基因频率似乎华南和华北的差异更大一些但这种“感觉”缺乏说服力。直到计算出它们两两之间的Fst值我才有了确凿的证据华南-华北的Fst值显著高于华南-华中或华中-华北。这把“尺子”不仅验证了直观感受更精确地量化了分化的强度后续结合地理距离和气候因子分析才能更扎实地推论这种分化可能与历史上的种植隔离和气候适应性选择有关。因此无论你是做作物育种、野生动物保护还是人类遗传学研究只要涉及群体比较Fst都是一个无法绕开的核心工具。2. Fst的计算原理从方差分解到实际公式要理解Fst必须从它的理论基础——方差分析ANOVA的思想说起。虽然听起来有点统计学但我们可以用一个简单的类比来理解想象我们要研究一个公司里不同部门员工的工资差异。总的工资方差可以分解为两部分一部分是部门内部员工之间的工资差异相当于群体内变异另一部分是不同部门之间平均工资的差异相当于群体间变异。Fst的本质就是看“部门间差异”占了“总差异”的多大比例。在遗传学语境下我们关注的不是工资而是等位基因。假设我们有一个二倍体生物如人类、水稻的某个双等位基因位点比如A和G。设等位基因A的频率在总体中为p。那么对于一个随机抽取的个体其携带A等位基因的“数量”期望值就是2p因为二倍体有两个拷贝。这个“2p”就是总体的平均基因剂量。此时总的遗传方差即所有个体基因剂量围绕总体均值2p的变异也可以进行分解。2.1 哈迪-温伯格平衡与期望方差在一个随机交配的大群体中基因型频率会达到哈迪-温伯格平衡AA频率为p²AG频率为2p(1-p)GG频率为(1-p)²。在这个理想的大群体内部个体间基因型差异造成的方差我们称之为期望杂合度Expected Heterozygosity的2倍记作2p(1-p)。你可以把它理解为在一个完全混合、没有亚结构的大群体里天然的、由于抽样造成的个体间差异。2.2 亚群体分化带来的额外方差现在假设这个总体由多个亚群体Subpopulation构成比如不同的村庄、不同的岛屿。每个亚群体内部的等位基因频率p_i可能不同。如果我们分别在每个亚群体内部计算期望杂合度然后取平均得到的就是平均群体内期望杂合度Hs。同时我们还可以计算所有亚群体等位基因频率的平均值即总体频率p并基于这个总体频率计算期望杂合度得到的是总体期望杂合度Ht。关键来了当亚群体之间的频率有差异即存在分化时Hs会小于Ht。因为Hs只考虑了每个小群体内部的变异而Ht还包含了群体间频率差异所带来的额外变异。这多出来的部分就是群体间分化贡献的方差。2.3 Fst的核心公式与解读最经典、最直观的Fst定义公式由此诞生Fst (Ht - Hs) / Ht其中Ht (Total Expected Heterozygosity) 基于总体等位基因频率计算的期望杂合度。代表了如果所有个体完全随机混合成一个群体理论上会有的遗传多样性。Hs (Average Subpopulation Expected Heterozygosity) 各个亚群体内部期望杂合度的算术平均值。代表了在当前分化状态下每个小群体内部实际保有的平均遗传多样性。这个公式完美体现了方差分解的思想(Ht - Hs) 就是群体间分化所贡献的那部分遗传变异除以Ht总变异就得到了群体间变异所占的比例即Fst。注意这里使用的是期望杂合度而非观测杂合度。Fst衡量的是群体结构导致的等位基因频率分布差异是一个群体层面的参数不应受到单个群体内部是否满足哈迪-温伯格平衡的过度干扰。当然在实际计算中我们会从基因型数据中估算出等位基因频率再代入公式计算。这个公式计算出的Fst值有时被称为“Fst固定指数”是Wright提出的一系列F统计量F-statistics中的一员。它为我们提供了一个清晰的理论框架。然而当应用到真实的、有限的样本数据时我们需要考虑抽样误差因此衍生出了多种基于样本的估算方法如Weir Cockerham的θ、Nei的Gst等它们都是对理论Fst的近似估算核心思想一脉相承。3. 主流计算工具实操从VCF文件到Fst矩阵理解了原理我们来看如何动手计算。现代群体遗传学分析通常从VCFVariant Call Format文件开始里面存储了所有样本在所有位点上的基因型信息。下面我将以最常用的vcftools和plink软件为例展示完整的计算流程并解释每个步骤的关键参数和背后考量。3.1 基于vcftools的计算灵活与直观vcftools是一款专门处理VCF文件的瑞士军刀其--weir-fst-pop参数实现了Weir Cockerham的Fst估算法这种方法能较好地处理样本量不平衡的情况是当前最推荐的方法之一。第一步准备群体列表文件假设我们有三个群体PopA, PopB, PopC。我们需要为每个群体创建一个文本文件里面每行写一个属于该群体的样本ID与VCF文件中的样本名一致。# 文件popA.list Sample_A1 Sample_A2 Sample_A3 # 文件popB.list Sample_B1 Sample_B2 # 文件popC.list Sample_C1 Sample_C2 Sample_C3 Sample_C4第二步执行两两群体Fst计算我们通常关心每两个群体之间的分化程度。vcftools可以方便地进行两两计算。# 计算PopA和PopB之间的Fst vcftools --gzvcf your_data.vcf.gz \ --weir-fst-pop popA.list \ --weir-fst-pop popB.list \ --out fst_A_vs_B # 计算PopA和PopC之间的Fst vcftools --gzvcf your_data.vcf.gz \ --weir-fst-pop popA.list \ --weir-fst-pop popC.list \ --out fst_A_vs_C # 计算PopB和PopC之间的Fst vcftools --gzvcp your_data.vcf.gz \ --weir-fst-pop popB.list \ --weir-fst-pop popC.list \ --out fst_B_vs_C每条命令会生成两个主要输出文件.log文件记录运行日志。.weir.fst文件这是核心结果文件。它是一个每行一个位点的表格通常包含CHROM染色体、POS位置、WEIR_AND_COCKERHAM_FST该位点的Fst值三列。第三步结果解读与汇总.weir.fst文件给出了每个SNP位点的Fst值。我们通常关心两个层面的信息基因组平均Fst将所有位点的Fst值求平均得到一个总体的分化指数。这可以通过简单的命令行工具完成awk {sum$3} END {print sum/NR} fst_A_vs_B.weir.fst这个值给出了PopA和PopB在整个基因组背景下的平均分化水平。位点特异性Fst某些位点的Fst值会远高于基因组背景水平这些位点可能是受到局域适应性选择Local Adaptation的候选基因区域。我们需要找出这些“异常值”。通常的做法是计算所有位点Fst的分布如99%分位数将高于该阈值的位点视为潜在受选择位点。实操心得vcftools在计算时会自动过滤掉在所有样本中均为缺失missing的位点但不会过滤低质量或单态位点。单态位点在所有比较样本中只有一种等位基因的Fst计算结果会是NaN非数在求平均时需要先剔除。建议在运行vcftools前先用其--maf最小等位基因频率参数过滤掉过于稀有的位点如MAF0.01因为稀有等位基因频率估算不准会引入很大的随机误差拉低Fst估算的可靠性。这是我踩过的坑一开始没做MAF过滤得到的平均Fst波动很大且很多位点Fst值异常高或低过滤后结果稳定多了。3.2 基于plink的计算高效与集成Plink是另一款强大的全基因组关联分析工具也提供了快速计算Fst的功能其算法基于经典的Hudson方法速度通常比vcftools更快。第一步用plink格式准备数据Plink需要自己的二进制格式文件.bed, .bim, .fam。如果从VCF开始需要先转换plink --vcf your_data.vcf.gz --make-bed --out your_data同时需要准备一个cluster文件例如pop.cluster来定义群体归属。该文件有两列第一列是样本IDFID第二列是群体ID这里IID和FID通常相同所以两列可以一样但第二列是群体标签。Sample_A1 PopA Sample_A2 PopA Sample_B1 PopB Sample_B2 PopB ...第二步执行Fst计算plink --bfile your_data \ --fst --within pop.cluster \ --out plink_fst_result--within参数指定了群体分类文件。第三步解读plink输出Plink会生成一个plink_fst_result.fst文件。这里需要特别注意Plink默认输出的是每对群体在每个位点上的Fst但它的文件格式比较特殊不是每行一个位点而是先列出所有位点然后为每对群体组合生成一列。更常用的输出是plink_fst_result.fst.summary这个文件给出了每对群体在所有位点上的平均Fst值一目了然。POP1 POP2 FST PopA PopB 0.01234 PopA PopC 0.05678 PopB PopC 0.02345工具选择对比特性vcftoolsplink核心算法Weir Cockerham (1984)Hudson (1992)输入格式VCFPLINK二进制格式 (.bed/.bim/.fam)输出粒度默认输出每个位点对每对群体的Fst可输出位点级和群体对平均Fst计算速度相对较慢非常快样本平衡处理不平衡样本效果较好在样本量差异大时可能略有偏差易用性命令直观参数灵活命令简洁集成度高我的个人习惯是当需要进行细致的位点级Fst扫描寻找受选择信号时倾向于使用vcftools因为其位点输出结果格式规整易于后续用R/Python进行分布分析和可视化。而当快速评估多个群体间的整体分化矩阵或者数据已经是plink格式时直接用plink的--fst命令效率极高。4. 结果解读与阈值判断数值背后的生物学意义拿到Fst值后我们面对一堆0.01、0.05、0.15这样的数字第一个问题就是这算大还是算小有没有一个通用的标准答案是没有绝对的“金标准”Fst值的生物学意义必须结合研究对象、遗传标记类型和基因组背景来综合判断。4.1 Fst值的经验范围与解读尽管没有固定标准但群体遗传学领域通过大量研究积累了一些经验性的参考范围Fst 0.05通常被认为是分化程度很低。例如现代人类不同大陆群体之间的全基因组平均Fst大约在0.1左右而同一大陆内部不同人群的Fst往往低于0.05。许多广布种、基因流频繁的物种其不同地理种群间的Fst也常落在这个区间。这意味着群体间的基因交流非常充分遗传差异主要来自个体间的随机差异。0.05 ≤ Fst 0.15被认为是中等程度的分化。这表明群体间存在一定的遗传隔离可能是地理距离、有限的迁移或者较近的分化历史所导致。许多物种的亚种之间或者人类历史上隔离较久的群体之间如一些岛屿种群Fst可能在这个范围。0.15 ≤ Fst 0.25分化程度较高。通常意味着显著的遗传分化可能对应着亚种subspecies级别的差异。基因流受到严重限制如长期的地理隔离山脉、河流。Fst ≥ 0.25分化程度非常高。往往出现在物种species或近缘种之间。此时群体间的遗传差异已经非常明显。重要提示这些范围只是粗略参考。全基因组平均Fst和单个位点的Fst有天壤之别。全基因组平均Fst反映的是整体的、中性进化主要是遗传漂变和迁移塑造的历史。而某个位点异常高的Fst例如达到0.8则强烈提示该位点可能受到了方向性选择Directional Selection或局域适应性选择导致它在不同群体中的频率被快速拉向不同的极端。4.2 如何识别受选择的位点Outlier Detection这是Fst分析中最激动人心的部分——从海量SNP中“大海捞针”找到那些可能决定群体适应性差异的关键基因。主要方法是识别Fst异常值。观察全基因组分布首先绘制所有SNP位点Fst值的分布直方图或密度图。在中性进化假设下绝大多数位点的Fst应该围绕基因组平均值呈一定的分布近似于β分布或正态分布。那些远远拖在分布右侧“长尾”区域的位点就是候选的异常值。设定统计阈值常用的方法有经验分位数法例如将Fst值从大到小排序取最高的1%或5%的位点作为候选。这种方法简单直接但缺乏统计检验。基于模拟的阈值法使用软件如Arlequin、BayeScan模拟在中性进化、给定群体历史模型下Fst的分布然后找出实际观测Fst值超过模拟分布95%或99%置信区间的位点。这种方法更严谨但依赖于模拟模型的准确性。Fst vs. 杂合度图绘制每个位点的Fst与其平均群体内杂合度Hs的散点图。中性位点会聚集在一个特定的区域内而受选择的位点则会偏离这个区域例如高Fst伴随中/低杂合度可能是定向选择低Fst伴随低杂合度可能是平衡选择。功能注释与验证找到高Fst的位点后工作才完成一半。必须将这些位点定位到基因组上查看它们位于哪个基因的内部、上游调控区还是基因间区。然后结合功能数据库GO、KEGG等分析这些基因是否富集了某些特定的生物学通路如免疫反应、代谢途径、环境胁迫响应等。最终还需要通过实验生物学手段如基因敲除、转基因来验证这些基因的功能才能坐实“适应性进化”的推论。我踩过的一个坑早期分析时只盯着Fst最高的前几个位点结果发现它们都落在基因组上重复序列多、组装质量差的区域。这些区域本身基因分型错误率就高导致Fst计算出现假阳性异常值。因此在分析前务必进行严格的质量控制过滤掉低质量、低深度、位于复杂区域的位点。同时不要只看一个统计量结合Tajima‘s D、Pi核苷酸多样性等多重证据能更可靠地筛选候选位点。5. Fst分析的常见陷阱与进阶考量Fst是一个强大的工具但也是一个容易误用的工具。以下是几个在实际项目中必须警惕的陷阱和需要深入思考的进阶问题。5.1 样本量与群体定义的陷阱Fst估算对样本量非常敏感。小样本群体如n5的等位基因频率估算误差极大会严重扭曲Fst值通常使其向0或1两极偏移。比较群体时应尽量保证各群体样本量均衡且充足至少10个以上个体为宜。如果样本量实在无法平衡在解读结果时需要格外谨慎并优先使用像Weir Cockerham方法这种对样本量不平衡相对稳健的估算法。另一个根本性问题是你定义的“群体”是真实的生物群体吗Fst的前提是你比较的单元是内部随机交配、与外部存在一定生殖隔离的群体。如果你基于某些表型如疾病状态或 convenience sampling如按采集地点简单划分来分组而这些分组并不对应真实的繁殖群体那么计算出的Fst反映的可能是群体结构Population Structure也可能是家族结构Family Structure或采样偏差其生物学解释将完全不同。在分析前通常建议先用PCA主成分分析或ADMIXTURE等工具检查样本的遗传结构确保你的分组与遗传聚类结果大致吻合。5.2 遗传标记类型与密度的影响Fst最初是为双等位基因位点如SNP定义的。对于微卫星SSR这类多等位基因标记有相应的扩展指标如G‘st、Jost‘s D等它们能更好地捕捉多等位基因的多样性信息直接套用SNP的Fst公式可能会低估分化程度。标记密度和基因组覆盖度也至关重要。如果只使用少数几个基因或标记计算出的Fst可能无法代表基因组整体且波动会很大。全基因组SNP数据是当今的标准它能提供数万至数百万个位点使得平均Fst的估算非常稳定并能有效进行基因组扫描。使用简化基因组测序如RAD-seq数据时需注意其可能存在的位点缺失和等位基因丢失问题这也会影响Fst估算。5.3 Fst的局限性它不能告诉我们全部故事必须清醒认识到Fst的局限性反映历史均值Fst衡量的是分化程度的“快照”它综合了从群体分化开始到现在整个历史过程中的平均基因流情况。它无法区分是古代一次快速分化后基因流中断还是持续的低水平基因流。对近期事件不敏感如果两个群体在历史上长期隔离高Fst但最近发生了强烈的基因交流Fst值可能还来不及下降到很低的水平。反之如果近期才发生隔离Fst值可能还很低。因此低Fst不等于近期有基因流高Fst也不等于近期没有基因流。与绝对分化度Fst是一个相对值比例。假设两个群体在某个位点上的等位基因频率分别为0.9和0.1Fst会很高。但如果频率是0.51和0.49Fst就会低很多。然而从某些生物学角度看0.4的频率差可能已经具有重要功能。因此有时也需要关注等位基因频率绝对差异Δp等指标作为补充。5.4 进阶应用滑动窗口与群体历史推断在实际分析中我们很少只满足于一个全局平均Fst值。更常见的做法是进行滑动窗口分析。将基因组划分为固定大小如50kb或固定数量SNP如100个的窗口计算每个窗口内的平均Fst。这样可以绘制出Fst沿染色体的变化图谱直观地看到基因组哪些区域分化程度高可能是受选择区域或低重组区哪些区域分化程度低可能是高重组区或受基因流影响大的区域。更进一步Fst可以作为输入参数用于推断群体历史。例如通过比较不同群体对之间的Fst矩阵可以估算群体间的相对分化时间或迁移率。像Treemix这样的软件就是利用群体间的等位基因频率谱其核心信息与Fst同源来构建群体分化树并推断迁移事件。将Fst分析与PSMC、MSMC等个体历史推断方法以及fastsimcoal2、∂a∂i等基于扩散模型的群体历史建模结合起来才能构建出更完整的群体演化图景。最后分享一个数据处理上的小技巧在计算全基因组Fst时建议将常染色体和性染色体如哺乳动物的X染色体分开计算。因为性染色体的有效群体大小、重组率和选择模式都与常染色体不同混合计算会引入偏差。同样对于线粒体DNA或叶绿体DNA这类单倍型、母系/父系遗传的标记其Fst的计算和解读逻辑也与核基因组SNP不同通常它们显示的分化程度会更高反映的是雌雄个体的迁移模式差异。

相关新闻

最新新闻

日新闻

周新闻

月新闻