You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于R语言poppr包的AMOVA结果解读:Phi值与显著性测试疑问

关于poppr包AMOVA结果的解析与疑问解答

我使用R语言的poppr包运行AMOVA(分子方差分析),实际数据集包含28个种群的280个样本,无亚种群结构。为模拟该场景,我基于poppr内置示例数据,仅以Pop_Subpop为分层单元运行AMOVA,代码及结果如下:

library(poppr)
# 加载测试数据并查看
data(Aeut)
Aeut

# 分配种群和亚种群分层
strata(Aeut) <- other(Aeut)$population_hierarchy
other(Aeut) <- other(Aeut)$population_hierarchy

# 转换为genclone对象
agc <- as.genclone(Aeut)
agc

# 第一次AMOVA(含亚种群分层)
amova.result <- poppr.amova(agc, ~Pop/Subpop)
amova.result

# 显著性检验
amova.test <- randtest(amova.result)
amova.test

# 第二次AMOVA(仅Pop_Subpop分层,模拟实际无亚群场景)
amova.result <- poppr.amova(agc, ~Pop_Subpop)
amova.result

# 第二次显著性检验
amova.test <- randtest(amova.result)
amova.test

疑问解答

1. Phi统计量的计算及Phi-samples-total的含义

Phi统计量本质是基于AMOVA方差组分的遗传分化系数,计算逻辑类似Fst:

  • 公式:Phi = (总方差 - 目标层级下方的方差组分) / 总方差
  • 在第二次以Pop_Subpop为分层的AMOVA中,Phi-samples-total = (总方差 - 样本内方差) / 总方差,代入数值为(10.612 - 3.411)/10.612 ≈ 0.678,和结果完全匹配。

这里的“Between samples”是poppr输出的命名习惯,实际对应你指定的分层单元(Pop_Subpop组,即不同种群),因此Phi-samples-total值0.678衡量的是种群间的遗传分化程度——意味着67.8%的遗传变异来自种群间差异,剩余32.2%来自种群内的样本间差异。

2. amova.test结果的对比逻辑

AMOVA的显著性检验通过置换样本的分组标签实现:随机打乱样本所属的种群分组,重复计算AMOVA的方差组分,最终比较观测到的方差组分与随机模拟结果的差异。

在第二次以Pop_Subpop为分层的检验中:

  • 观测值是种群间的方差组分(7.201),p值0.01表示:随机置换分组后,得到如此大的种群间方差的概率仅为1%。
  • 这说明种群间的遗传差异显著大于随机水平,即你的分组(种群)是具有真实遗传分化的,而非随机分组的结果。

额外建议

  • 针对你的实际数据(无亚种群结构),无需使用Pop_Subpop,直接指定种群分层(如~pop)即可,结果解读会更直观。
  • 运行AMOVA前确认使用的遗传距离适配你的标记类型:比如显性标记(如AFLP)常用Jaccard距离,共显性标记(如SSR)常用Nei's标准遗传距离,poppr会根据标记类型自动选择,但也可通过dist参数手动指定。

内容的提问来源于stack exchange,提问作者steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:54:55