Skip to content

下游分析:PheWAS · LDSC · HyPrColoc

三类下游分析——评估工具多效性(PheWAS)、疾病间遗传相关(LDSC)、共享因果信号(HyPrColoc)。 对应原始实现工作流第 ④⑥⑧ 步(4_r9_hyprcoloc · 6_r9_phewas · 8_sensitivity_AMD;⑤ 5_r9_data_clean 是清洗 ④ 的输出,不算独立分析)。

先搞清楚:谁依赖谁、谁先跑

三者互相不依赖,但和 MR 的关系不一样——LDSC 根本不需要 MR 结果

疾病 GWAS(全量)─────────────────────────────────►  LDSC
                                                     (独立!不依赖 MR,可先跑)
暴露 cis-pQTL ─┐
               ├──►  MR 批量筛查  ─┬──►  PheWAS      (要显著 SNP 列表)
疾病 GWAS ─────┘   (analysis/01_screen.R) └──►  HyPrColoc   (要跨≥2病的蛋白 + 区域数据)
分析吃什么数据依赖 MR?什么时候跑
LDSC全量疾病 GWAS不依赖越早越好——它回答"这些病值不值得放一起做泛并发症分析",是给课题设计定调的前置论证
PheWASMR 显著 SNP 列表✅ 依赖MR 之后。几分钟就完
HyPrColoc跨≥2 病的蛋白 + UKB-PPP 区域数据✅ 依赖MR 之后。几小时,最贵

PheWAS 和 HyPrColoc 谁先都行(互不依赖)。实际按"先便宜后贵"跑:PheWAS 几分钟先把可疑工具标出来,HyPrColoc 几小时做最终判决。

本页的阅读顺序(PheWAS → LDSC → HyPrColoc)是按理解递进排的:先看工具干不干净 → 再看病之间什么关系 → 最后看因果判决,不代表执行顺序。

常见疑问:这三个分析分 R9/R13 吗?

分析版本为什么这样
PheWAS不分,R9+R13 合并它问的是"这个 SNP 还关联多少别的表型"——多效性是 SNP 自身的属性,跟结局用 R9 还是 R13 无关。合并去重后一次查完即可
LDSCR9 / R13直接吃疾病 GWAS。R13 病例数比 R9 多 30–50%,且只有 R13 有湿性/干性 AMD 亚型和糖网严格定义
HyPrColocR9 / R13同上,且目标蛋白取自对应版本的筛查结果
bash
Rscript analysis/03_phewas.R          # 合并跑
Rscript analysis/04_ldsc.R R9         # 或 R13
Rscript analysis/05_hyprcoloc.R R9 # 或 R13

一、PheWAS(工具多效性扫描)

目的:MR 的"排他性假设"要求工具 SNP 只通过暴露蛋白影响结局。PheWAS 把每个显著 cis-pQTL 工具 SNP 拿去 OpenGWAS 扫全表型,看它还关联多少其他性状——多效性越高,越要谨慎。

数据怎么来 / 怎么做

  • 原始做法:手动在 OpenGWAS 网站查每个 SNP,存成 phewas/<snp>.csv6_r9_phewas.R 只做汇总+画图,查询在脚本外)
  • 我们做法:用 ieugwasr::phewas() + OpenGWAS token 自动化查询(脚本 analysis/03_phewas.R
    bash
    Rscript analysis/03_phewas.R          # token 从 ~/.Renviron 的 OPENGWAS_JWT 读
    它用 Sys.glob("results/screen_*/*_significant.csv")R9 和 R13 的显著 SNP 一起捞出来去重再查——同一个 SNP 不管从哪版筛出来的,多效性都一样,不需要查两遍。

多重检验:Bonferroni 校正 ★

检验数 = 查询的 SNP 数 × OpenGWAS 数据集数(每个 SNP 在每个数据集里各检验一次):

阈值=0.05243×4687=0.051.14×106=4.39×108

为什么脚本里还留着 p<1e-5

1e-5 只是去 OpenGWAS 拉候选的粗筛(服务端过滤),不是显著性判据。因为 1e-5 比 Bonferroni 阈值 4.38e-9 宽松,所有 Bonferroni 显著的关联都必然在拉回来的结果里,不会漏。脚本会自检这一点,若粗筛比 Bonferroni 还严会告警提示你放宽重查。显著性一律以 bonferroni_sig 列为准。

结果

  • 228 个唯一显著 SNP → 22,473 条关联,其中 12,151 条(54.1%)Bonferroni 显著(查询日期 2026-07-20,阈值 4.38e-9)

PheWAS 数字不是逐位可复现的——必须记录溯源

PheWAS 实时查 OpenGWAS 在线数据库,库在变、你的显著 SNP 数也在变,两个因子都进 Bonferroni 分母

阈值 = 0.05 / (显著 SNP 数 × OpenGWAS 数据集数)

实测漂移记录:

日期显著 SNP数据集数阈值Bonferroni 显著
2026-07-16224~4,680(降级路径4.77e-8
2026-07-18243~4,687(降级路径4.39e-814,090
2026-07-2022850,056(gwasinfo 正常)4.38e-912,151

⚠️ 07-16/07-18 那两次 gwasinfo() 查询失败,走了脚本里的降级分支(用"返回结果里的数据集数"顶替,约 4,680),低估了检验数、阈值偏松。07-20 起 gwasinfo() 正常返回 50,056,阈值收紧 10 倍——这是修正,不是变差

结论稳健性:靶点分层(A/B 级)在新旧阈值下完全一致,只有 n_offtarget 计数变小(PILRA 44→38、TGFB1 35→27、APOE 679→617)。APOE 仍是头号多效位点。

★ 2026-07-26 独立复算发现:磁盘上的 PheWAS 结果又是降级路径跑的

tools/verify_phewas.R 直接读 phewas_all.csv 重算,比对 phewas_provenance.csv

上表引用的 07-20 正常运行磁盘上实际的 07-22 运行
检验 SNP 数228183
数据集数来源gwasinfo 正常(50,056)⚠ 降级:返回结果里的数据集数(4,911)
Bonferroni 阈值4.38e-95.56e-8(宽松 10.2 倍)
Bonferroni 显著12,15112,910

也就是说本页上表引用的数字描述的是 07-20 那次运行,而当前产物是 07-22 降级路径的结果。

复算量化影响(以 183 SNP × 50,056 数据集 = 正确阈值 5.46e-9 重算,tools/verify_tier.R):

层面结论
全库显著关联数12,910 → 11,060(当前 CSV 虚高 1,850 条 = 16.7%)
A/B 靶点分层19 个候选 0 个跨界 —— A 级全部仍 A,B 级(APOE 692→622、AGER 359→311、CFB 150→122)全部仍 B
头部多效蛋白前 4 名不变(APOE / CELSR2 / ABO / AGER);第 5 名会换(NCAN 289 超过 HLA-E 279)
两份汇报 PPT完全不受影响 —— PPT 未使用任何 PheWAS 结果

分层不受影响有其结构原因:正确阈值更严 ⇒ 脱靶计数只能减少 ⇒ 只可能 B→A 升级、不可能 A→B 降级,因此A 级候选名单不可能因此丢人。复算实测无一升级。

本页与阶段六表格里的数字是对的

按正确阈值复算得 PILRA 38 / PILRB 38 / TGFB1 27 / APOE 622,与阶段六表格及本页 07-20 记录(38 / 38 / 27 / 617)逐个吻合已发布的数字无需修改;偏松的只是磁盘上的 phewas_*.csv

真实风险:若有人直接用当前 CSV 重新生成脱靶表或靶点网络图,会得到虚高的计数(PILRA 47、TGFB1 35、APOE 692)。发表前应在 gwasinfo 正常时重跑,或用 ndb=50056 钉住数据集数。

根因未修(订正前述表述):降级分支确实会打印 ⚠️ 提示、并写入 provenance,并非完全静默;但它继续执行且 exit 0,CI/编排脚本无从感知。脚本已内置 ndb= 命令行参数可钉住数据集数——修复手段一直存在,只是 07-22 那次没用。建议把降级改为硬失败(或要求显式 --allow-degraded),否则同一问题会反复出现(07-16、07-18、07-22 已三次)。

⚠️ 另有一处代码注释写反了:降级分支的注释写「保守,会低估检验数」——低估检验数会让阈值变松,属反保守,注释与实际效果相反。 ::: :::

溯源文件:投稿方法学直接引用它 ★

每次跑 03_phewas.R 都会写 results/phewas/phewas_provenance.csv,记录这一次的全部参数:

字段含义
query_date / query_time查询日期时间(投稿必写
n_snps_tested查询的工具 SNP 数
n_opengwas_datasets当时 OpenGWAS 的数据集总数
n_datasets_source这个数从哪来:gwasinfo() 实时查询 / 命令行 ndb= 钉住 / 退化:返回结果里的数据集数
n_tests / bonferroni_threshold检验数与阈值
query_pval_cutoff拉候选的粗筛阈值
n_associations_returned实际返回的关联条数
ieugwasr_version / r_version软件版本

定稿后把分母钉死

论文定稿时用 Rscript analysis/03_phewas.R ndb=50056 钉住数据集数,之后无论库怎么长,重跑都能复现同一个阈值。 n_datasets_source 会记成"命令行 ndb= 钉住",审稿人一看就明白。

投稿要做的三件事(对照已发表同类研究的通行做法):

  1. 方法学写清楚:查询日期、数据集数、Bonferroni 分母怎么算的
  2. phewas_all.csv 作为 Supplementary Data 附上——等于冻结快照,读者不必重查库
  3. 可成药性(Open Targets,阶段⑦)同理记日期。外部 API 类阶段(03 PheWAS / 07 可成药性)收尾时务必核一眼产出是不是整片空值——07 曾因代理写死在 WSL 内不可达而全表 NOT_FOUND 却退出码 0,详见阶段七 · 复现与自查

参考:直接竞品 Hou et al. 2025(UKB-PPP pQTL→干性 AMD)根本没做 PheWAS,多效性只用 MR-Egger/MR-PRESSO/共定位,其 Bonferroni 分母是"检验的蛋白数 1,763"。我们单 cis 工具做不了 Egger/PRESSO,PheWAS + 共定位正是替代方案,证据强度不弱于它

  • 产出:phewas_all.csv(全部,含 bonferroni_sig/p_bonf 列)+ phewas_summary.csv(每 SNP 排行)+ phewas_offtarget_bonferroni.csv(脱靶明细,供阶段⑥用)

结果怎么看

phewas_summary.csv(先看这个,每 SNP 一行,按 Bonferroni 显著的表型数降序)

含义怎么看
rsid / protein工具 SNP / 对应蛋白对应 MR 结果表里的 SNP
n_assoc_raw / n_traits_raw粗筛(p<1e-5)下的关联数 / 表型数参考用
n_traits_bonfBonferroni 显著的不同表型数判读只用这个
n_assoc_bonfBonferroni 显著的关联条数
min_p最小 p

真实结果(Bonferroni 前后对比,前 4 名):

rsidproteinn_traits_rawn_traits_bonf判读
rs429358APOE949685🔴 头号多效位点,校正后仍关联 685 种表型
rs12740374CELSR2519442🔴 已知脂质多效位点
rs505922ABO557394🔴 血型位点,什么都关联
rs2523594HLA-E541315🔴 HLA 区域,LD 极复杂

没有绝对阈值,按量级分档判读(阶段⑥用 n_traits_bonf > 100 作为高多效标记):

n_traits_bonf判读该怎么办
< 20多效性低,工具干净正常解读(如 SPRY2 = 0、TNFRSF10A = 7)
20–100中等,多数 cis-pQTL 在这档结合共定位看
> 100🔴 高多效标记为高多效并随表输出 pleiotropy_note(2026-07-27 起不再自动降级,见阶段六;APOE 定稿值 632)

高多效 ≠ 结论一定错,但举证责任反转

cis-pQTL 落在 APOE/ABO/HLA 这类区域时,它关联几百个表型可能是因为该位点本身处于基因密集、LD 复杂的区域(如 HLA),不一定是这个蛋白真的影响几百种病。所以:

  • 不能因为多效性高就直接否定;
  • 但也不能只凭 MR 显著就下结论——要靠共定位回答"疾病信号和蛋白信号是不是同一个变异"。
  • 本课题的 AGER(rs204993,523 个表型)就是典型:它在 MHC 邻近区,MR 打出 OR=0.14 极显著,但必须等 HyPrColoc 判决。

数据小瑕疵:phewas_all.csv 有空 rsid 行

OpenGWAS 返回的部分关联行 rsidprotein 为空(该数据集用的变异 ID 没对上 rsID)。汇总表 phewas_summary.csv 是按 rsid 分组统计的,这些空行不影响每个 SNP 的计数;但你直接翻 phewas_all.csv 时会看到空行,属正常,不是 bug。


二、LDSC(疾病间遗传相关)

目的:用 LD score regression 算疾病两两的遗传相关 rg——判断糖尿病各并发症共享多少遗传基础,以及 AMD、T1D/T2D 与它们的关系。

数据怎么来 / 怎么做

  • 工具GenomicSEMmunge() + ldsc()(还原原始实现 8_sensitivity_AMD.Rmd
  • 参考面板eur_w_ld_chr(1000G 欧洲 LD scores)+ w_hm3.snplist(HapMap3)
  • 输入:全量 FinnGen R9 sumstats(8 个疾病)
    bash
    Rscript analysis/04_ldsc.R            # 预处理 → munge → 遗传相关矩阵

结果:遗传相关矩阵 rg

糖网黄斑增殖DR肾病神经AMDT2DT1D
糖网1.000.950.730.970.740.290.750.57
黄斑0.951.000.750.940.600.240.670.58
肾病0.970.940.751.000.750.150.790.68
AMD0.290.240.230.150.151.000.070.07
T2D0.750.670.410.790.620.071.00-0.03

产出 results/ldsc/genetic_correlation_rg.csv(R9)、results/ldsc_R13/…(R13)+ h2_observed.csv

结果怎么看

genetic_correlation_rg.csv 是个对称方阵:第一列 trait 是行名,其余每列一个疾病,格子里就是这两个病的遗传相关 rg。对角线恒为 1(自己跟自己)。上三角和下三角一样,只看一半即可

rg 范围含义例(本课题)
0.8 ~ 1.0遗传上几乎是同一个病糖网↔肾病 0.968
0.5 ~ 0.8明显共享遗传基础糖网↔T2D 0.754
0.2 ~ 0.5弱共享糖网↔AMD 0.294
−0.2 ~ 0.2基本互相独立T1D↔T2D −0.031
负值遗传上反向(一个的风险等位是另一个的保护等位)本课题没有明显负相关

h2_observed.csv 是每个病的观察尺度遗传度——这个性状有多少变异能被常见 SNP 解释:

traith2_observed怎么看
T2D0.0909最高,符合 T2D 是高度多基因病
DR(糖网)0.0238
RetinaProlif0.0070🔴 偏低,该病的 rg 估计会更不稳

h2 太低时,那一行的 rg 别当真

LDSC 的 rg 是拿两个病的 h2 做分母算出来的(rg = 协方差 / √(h2₁·h2₂))。h2 越小、分母越小,rg 越容易被放大或乱跳RetinaProlif 的 h2 只有 0.007,所以它那一行的 rg(如 ↔T1D 0.709)应视为提示性,不宜作为强结论。LDSC 惯例是 h2 的 Z 值 < 4 就不建议报 rg

当前输出的两个局限(写作时注意)

  1. 只有 rg 点估计,没有 SE / P 值 —— 现在的脚本从 res$S 直接算矩阵,没导出标准误,所以严格说不能声称"rg 显著不为 0"。要下这种结论,需从 ldsc_result.rds 里的 res$V(抽样协方差矩阵)取 SE 再算 P。
  2. rg 不含因果方向 —— rg 高只说明"共享遗传基础",不等于一个导致另一个。方向要靠 MR 和双向 MR 回答。

R13 的 rg(多了 AMD 亚型与糖网严格定义,R9 没有)

糖网糖网(严格)黄斑AMD湿性AMD干性AMD肾病T1D_wideT2D
糖网1.000.7740.9200.4180.4830.3850.8840.7830.049
AMD0.4180.0690.1621.000.9250.9660.1790.0800.063
湿性AMD0.4830.1160.2600.9251.000.8510.2450.0900.050
肾病0.8840.6180.7170.1790.2450.1571.000.8190.355
T2D0.0490.0650.2510.0630.0500.0460.3550.3611.00

关键发现(发文章用)

  1. 糖尿病微血管并发症之间高度遗传相关(R9 糖网↔肾病 0.968/R13 0.884、糖网↔黄斑 0.946/0.920)→ 共享遗传基础,支持"泛并发症"整合分析
  2. AMD 与所有糖尿病并发症遗传相关都低(R9 0.07–0.29;R13 0.07–0.48)→ AMD 是独立疾病两个版本都验证了它作为"非糖尿病对照"的合理性
  3. T1D 与 T2D 遗传上几乎不相关(R9 rg≈−0.03)→ 符合两者病理不同
  4. 🆕 湿性 ↔ 干性 AMD rg = 0.851(各自与总 AMD 0.925/0.966)→ 两个亚型遗传上高度同源,可合并解读;这也解释了为什么阶段六里 TNFRSF10A/TGFB1/WARS 会在三个 AMD 亚型上方向一致

⚠️ R13 有两处异常,写作前务必核实

  1. T2D ↔ 糖网 在 R13 只有 0.049,而 R9 是 0.754 —— 同一对疾病、换个版本差 15 倍,非常反常。最可能的原因是 R13 糖网的对照组构成变了:R13 糖网 ncase=15353 / ncontrol=62519,而 R9 是 10413 / 308633——R13 的对照池只有 R9 的 1/5,很可能对照里筛掉了大量非糖尿病人群(即对照本身多为糖尿病患者),这会把"糖尿病 vs 糖网"的遗传共享给抵消掉。
  2. 黄斑 ↔ T1D_wide = 0.967 高得离谱,而黄斑的 h2 只有 0.0143(低 h2 → rg 不稳,见上方警告)。

这两条不要直接写进论文,需先查 FinnGen R13 的 endpoint 定义与对照构成。

rg 怎么帮你读 MR 结果

overlap_matrix.csv 里看到"某蛋白同时在糖网和肾病显著"——别急着兴奋:这两个病 rg=0.968,遗传上本来就几乎是一个病,同时显著是意料之中,算不上独立证据。真正有信息量的是跨越低 rg 的共享(比如同时在糖尿病并发症和 AMD 里显著,rg 只有 0.29)。


三、HyPrColoc(多性状共定位)

目的:对 MR 显著的蛋白位点,判断"暴露蛋白 + 多个疾病"是否由同一个因果变异驱动(区分真共享 vs 连锁巧合)。

数据怎么来

  • UKB-PPP Synapsesyn51364943)下每个蛋白单独的区域 sumstats(每蛋白一个 .tar,内含各染色体文件,hg38)
  • 结局区域:全量 FinnGen 对应版本(hg38)→ 都 hg38,按 chr:pos 位置匹配
  • 驱动脚本analysis/05_hyprcoloc.R(引擎 R/09_hyprcoloc.R
bash
Rscript analysis/05_hyprcoloc.R R9      # 24 个跨≥2 病的蛋白 × 12 个 R9 并发症
Rscript analysis/05_hyprcoloc.R R13     # 31 个蛋白 × 9 个 R13 结局(含湿/干 AMD)

为什么它跑得比别的都慢

每个蛋白都要:解压该蛋白 tar 里的 cis 染色体文件 + zcat 切最多 12 个全量 FinnGen(每个 ~1GB)的区域。一个蛋白 3–10 分钟是正常的。脚本每算完一个蛋白立即写 _parts/<蛋白>.csv,所以中断了也只丢当前这一个,重跑自动接着算。

结果怎么看 ★

产物在 results/hyprcoloc_R9/(R13 同构):hyprcoloc_results.csv(全部)+ hyprcoloc_shared.csv(只留检出共享簇的)。

每一行 = 一次迭代(iteration)。HyPrColoc 是迭代式的:先找一个共享簇,把它挑出来,再在剩下的性状里继续找,直到找不出为止。所以同一个蛋白会有多行

含义怎么看
iteration第几轮一个蛋白多行很正常
traits这一簇里有哪些性状最关键的列,见下方判读
posterior_prob该簇的后验概率 PP> 0.7 才算支持(本课题方案定稿值,写在 config.yamlhyprcoloc_pp_threshold
regional_prob该区域存在共享信号的概率高但 PP 低 = 有信号但分不清是不是同一个
candidate_snp候选因果变异可拿去查功能注释
posterior_explained_by_snp该 SNP 解释了多少后验接近 1 = 定位到单个变异,很干净
dropped_trait本轮被踢出的性状
protein / chr / gene_pos蛋白与位点
n_snp该区域参与的共同 SNP 数太少(<30)会被跳过
n_traits一起做共定位的性状总数(蛋白 + 各显著疾病)

判读的核心:蛋白在不在簇里

这是最容易看错、也最关键的一点——用本课题的真实结果 CFB_parts/CFB.csv)来讲:

iterationtraitsposterior_probcandidate_snp
1Nephropathy, RetinaNOS, RetinaProlif, Retinopathy, SeveralComplications0.99996:32405601
2Hypoglyc, Ketoacidosis, Maculopathy1.06:32372293
3None(dropped: AMD)

乍一看 PP=0.9999 和 1.0,好像证据爆表——其实恰恰相反:

🔴 两个簇里都没有 CFB 这个蛋白本身! 簇 1 说的是"肾病+视网膜NOS+增殖DR+糖网+多并发症这五个病共享同一个因果变异",簇 2 是"低血糖+酮症酸中毒+黄斑"共享另一个变异。CFB 蛋白自己没进任何一簇 → 说明蛋白的信号和疾病的信号不是同一个变异 → MR 里 CFB 和这些病的关联很可能是 LD 巧合(CFB 位于 chr6:31.9Mb 的 MHC 区域,那里 LD 极其复杂,本来就最容易出这种假象)。

所以判读规则是:

看到什么结论怎么写
簇里有「蛋白 + ≥1 疾病」,PP>0.7最强证据:同一因果变异同时驱动蛋白和疾病可作为主要发现
簇里有「蛋白 + 多个疾病」,PP>0.7✅✅ 泛并发症共享靶点——本课题最想要的核心卖点
簇里只有疾病、没有蛋白(如 CFB)🔴 共定位不支持:病之间共享,但蛋白不在同一信号上MR 那条标"证据不一致",很可能 LD 巧合
traits = None⚪ 该轮没检出共享簇共定位不支持
PP 在 0.5–0.7⚠️ 证据不足只能说"提示性"

真实案例:APOE 在 R9 和 R13 的判决不一样

版本APOE 的簇PP判决
R9APOE, AMD, 黄斑, 肾病, 视网膜NOS, 糖网, 多并发症0.7563刚过 0.7 → 支持
R13APOE, AMD, 干性AMD, 湿性AMD, 糖网0.9564强支持

蛋白确实在簇里、PP 也过线,但 APOE 在 PheWAS 里 Bonferroni 校正后仍关联 617 种表型——是头号多效位点。一个"什么病都沾"的位点跨多病共定位,更可能是多效性而非真共享因果

2026-07-27 前阶段六会把它自动降级为 B 级、不进候选;现改为保留分层 + 附高多效标注(文献惯例是把 PheWAS 脱靶当安全性注释而非排除门槛)。写作时应表述为"提示性发现,因 APOE 已知的广泛多效性,不足以作为因果证据",而不是"APOE 是泛并发症共享靶点"。

判决汇总(hyprcoloc_verdict.csv,每蛋白一行)★

脚本会把上面的规则自动判好,输出 verdict 列。这是最省事的入口

判决R9R13含义
支持(蛋白与疾病共定位,PP>0.7)59可进阶段⑥
⚠️ 证据不足(蛋白进簇但 PP<0.7)63只能说提示性
🔴 不支持(仅疾病成簇、蛋白未进簇 → 疑 LD 巧合)1116MR 关联多半是假象
⚪ 不支持(未检出共享簇)13
合计分析2331

数字为 2026-07-18 从零重算实测(R13 支持=9;此前文档误写 12,已更正)。

最重要的发现:MHC 区那批"跨病明星蛋白"全军覆没

overlap_matrix.csvn_outcomes 排前五的 AGER(15)、HCG22(13)、CFB(11)、BTN2A1(10)、LTB(9)——在 R9 和 R13 里全部落在"仅疾病成簇、蛋白未进簇"这一档,而且它们全在 chr6 的 MHC 区域

这是两个版本互相印证的结论:MHC 区 LD 极强,一个疾病因果变异能把周围一大片 pQTL 都"带显著",制造出"某蛋白跨 15 种并发症"的假象。光看 MR 的重叠排行榜会被彻底误导——这正是共定位存在的意义。

包括 AGER(MR 里 OR=0.14、P=9×10⁻⁸²、15 个结局显著):R9 的簇是"增殖DR+糖网 PP=0.9864"等,但 AGER 蛋白自己不在任何一簇里 → 那个漂亮的 OR 极可能是 LD 巧合。


附:三类分析对应的脚本

分析脚本数据源分版本状态
PheWASanalysis/03_phewas.ROpenGWAS(token)❌ 合并✅ 完成(243 SNP / 22,473 关联 / 14,090 条 Bonferroni 显著,查询日期 2026-07-18)
LDSCanalysis/04_ldsc.R R9|R13全量 FinnGen + eur_w_ld_chr✅ 分R9 + R13 均完成
HyPrColocanalysis/05_hyprcoloc.R R9|R13UKB-PPP Synapse 区域 tar + 全量 FinnGen✅ 分完成(R9 23 个 / R13 31 个蛋白)
阶段⑥整合analysis/06_network.R R9|R13上面三者✅ 分✅ 完成 → 阶段六·靶点网络

相关:结果怎么看 · 批量筛查 · 方法引擎 06-共定位 · 代码结构详解

口径说明(2026-07-27)

本页出现过多个版本的 APOE 脱靶计数(685 / 679→617 / 692→622),源自不同查询日期与不同分母。 定稿值为 632:117 个工具 SNP × 50,164 个数据集 = 5,869,188 次检验,Bonferroni 阈值 8.52×10⁻⁹。 此前分母有两处错:SNP 池含已退出主跑的 FinnGen T1D/T2D 工具(虚增 3.3 倍)、 数据集数走了降级值 4,911 而非元数据全量 50,164(偏松 10.2 倍),净偏松约 3 倍。 溯源见 results/phewas/phewas_provenance.csv

个人科研与运维文档 · 内容持续修订