合成数据贯通PCA与GWAS - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

合成数据贯通PCA与GWAS

更新:2026-10-13;状态:可用;验证范围:合成数据实测。

用固定随机种子的人工数据练习文件交接、质控、PCA 与数量性状关联,不需要下载真实个体数据。

环境与输入

需要 Python 3.9+ 和 PLINK 2。本次实测使用 Python 3.14.8、PLINK v2.0.0-a.7.12LM(12 Oct 2026),Linux x86_64。官方安装入口见PLINK2使用与版本管理。

在本项目根目录运行:

python3 examples/generate_population_data.py
bash examples/run_population_demo.sh

如果工具不在 PATH,可使用 PLINK2_BIN=/完整路径/plink2 bash examples/run_population_demo.sh。输出写到 examples/output/population/;重复运行会覆盖该目录中的同名输出。

生成器用固定种子 20261013,产生 120 个二倍体样本、600 个独立模拟位点和一个数量表型。表型包含 v1 的 G 剂量效应及随机噪声。它不模拟家系、真实 LD、批次或复杂群体历史。

实测检查点

阶段 文件 本次结果
输入 toy.vcf、phenotype.tsv 120 样本,600 位点
质控 qc.pgen/pvar/psam 120 样本、600 位点保留
剪枝 prune.prune.in 600 位点保留,因本例独立模拟
PCA pca.eigenvec 120 行样本,5 个 PC
回归 gwas.trait.glm.linear v1 的 ADD 检验 P≈1.95×10⁻²⁵

v1 的 A1 为 A,BETA≈−1.84。生成器对 G 赋正效应,计数 A 时负方向是相容的;不能只看 BETA 符号就判断模拟失败。

自己检查而不只看成功退出

确认样本与协变量匹配,检查 TEST、OBS_CT 和 ERRCODE;核对 v1 的效应等位基因与生成逻辑。改变噪声或样本数量,观察效应估计与证据强度的变化。

示例阈值只是演示,不是通用研究标准。真实工作流分别见基因型质控与过滤、用PCA探索样本的群体结构和GWAS从数据准备到结果解释。

代码:数据生成器、运行脚本。模型选项参照 PLINK --glm。