06.PCAdapt

原理

PCAdapt 的核心思想:先用 PCA 描述整体种群结构,再找那些偏离这个整体结构的 SNP

偏离整体 PCA 结构的 SNP → 可能受到局部选择 → 候选适应性位点

与 GEA 方法(LFMM/RDA)的区别


输入数据

只需要一个文件:个体 × SNP 基因型矩阵(0/1/2 编码)

支持格式:

⚠️ 品种级别分析的注意事项:PCAdapt 需要个体级别基因型,不能用品种等位基因频率矩阵。与 LFMM2/RDA 用品种频率不同,跑 PCAdapt 需要切换回原始个体基因型数据。


具体操作

完整 R 代码

library(pcadapt)

# 读入基因型数据(PLINK bed格式)
geno <- read.pcadapt("your_data.bed", type = "bed")

# Step 1:确定最优K值(看碎石图)
x_test <- pcadapt(geno, K = 20)
plot(x_test, option = "screeplot")
# 找拐点,比如 K = 4

# Step 2:用最优K正式运行
x <- pcadapt(geno, K = 4)
summary(x)

# Step 3:Manhattan 图(查看显著位点分布)
plot(x, option = "manhattan")

# Step 4:QQ 图(检查统计膨胀)
plot(x, option = "qqplot")

# Step 5:提取显著 SNP(q 值校正)
library(qvalue)
qval <- qvalue(x$pvalues)$qvalues
alpha <- 0.05
outliers <- which(qval < alpha)
length(outliers)  # 显著 SNP 数量

K 值选择


与景观基因组学流程的整合

PCAdapt 作为不依赖环境变量的独立补充验证

LFMM2   ──┐
RDA     ──┼──→ 三方交叉 → 高置信度核心位点
BayPass ──┘

PCAdapt(可选补充)→ 检查:GEA 候选位点中有多少也被 PCAdapt 检出?
                     重叠高 → 适应性信号更强,可信度更高

实际案例(Su et al. 2026,山荆子)


相关笔记