主题
04 · 第 2 步 · MR + 多重检验校正
执行日期:2026-08-07 状态:✅ 完成 —— 全部命中预期,产物与旧结果 MD5 相同
关于「跑前预期」的说明(诚实交代)
第 2 步与第 1 步在同一次运行里完成(analysis/01_screen.R),所以本页的预期数字 不是运行后才取的——它们与第 1 步的预期在同一次查询里、运行之前从旧结果取出, 已落在 01 页 §4 与 总览页漏斗表。但我在 03 页 的预期表里只列了工具与 F 相关的列,没把 FDR 显著数一并写上。 本页把它们显式补齐并逐项比对。
结局命名
本页表格用内部 ID(T1D_gcst / T2D_mahajan 等)——它们是文件名与代码里的字符串,实录必须能对得上。论文显示名分别是 Type 1 diabetes / Type 2 diabetes,对照表见总览页。★ 内部 ID 绝不允许出现在图上或论文表格里。
一、这一步做什么
按 v4 第 2 步:MR + 多重检验校正,作用单位是「蛋白 × 结局」。 检验数含 MHC 蛋白(v4 不设 MHC 排除步骤)。
二、用什么数据、什么版本
沿用第 1 步的工具与结局,见 03 页 §2。
暴露数据版本的重要说明:用的是 UKB-PPP discovery 集(n = 34,557,Supplementary Table 9), 不是 full-cohort 版(n = 52,363,原文称 putative)。 选择理由与 Methods 建议措辞见 答疑 · 数据版本与作图 Q1/Q2。
三、什么检验方法
3.1 MR 估计量:单 SNP Wald 比
每个蛋白只有一个 cis 哨兵,故用 Wald ratio:
b = β_outcome / β_exposure
se = se_outcome / |β_exposure|★ 单 SNP Wald 比下 z = b/se = β_out/se_out,与 β_exposure 无关 → p 值恒等于结局侧的 p 值。这有两个后果,写作时必须知道:
- 暴露效应量的大小不影响显著性,只影响 OR/CI 的数值
- 因此第 1 步的「共用哨兵校正」(11 行)不改变任何显著性判定
⚠️ 单工具无法做 MR-Egger / 加权中位数等多工具敏感性分析,也无法算异质性 Q —— 这不是疏漏,是设计使然,Methods 里要写明。
3.2 多重检验校正
config.yaml → multiple_testing:
| 参数 | 值 |
|---|---|
method | BH(Benjamini–Hochberg FDR) |
grouping | by_outcome —— 每个结局各自校正 |
alpha | 0.05 |
★ 检验数 m = 该结局实际报告的「蛋白数」,不是唯一变异数。 二者差 11:11 个哨兵各被 2 个蛋白共用,它们是两个不同的假设(两种蛋白),故各计一次检验。 实现上体现为 FDR 在 ann 合并之后才算(01_screen.R:205)—— 旧实现在展开蛋白前算(m 偏小、FDR 偏松),已修。
⚠️ by_outcome 是一个选择,不是唯一正确答案。 改成 global(全部结局一起校正)会更严格; config.yaml:115 记着实测:R13 线改 global 会把显著数从 333 降到 289。 本课题沿用 by_outcome,Methods 必须写明分组方式,否则读者无法判断校正强度。
四、★ 预期结果
(来源:运行前从旧结果取出,见本页顶部说明)
| outcome | 检验数 m | FDR<0.05 显著 |
|---|---|---|
| Retinopathy | 1587 | 24 |
| Maculopathy | 1587 | 19 |
| NeovascGlaucoma | 1587 | 0 |
| Neuropathy | 1587 | 5 |
| Nephropathy | 1587 | 9 |
| T1D_gcst | 1722 | 57 |
| T2D_mahajan | 1614 | 28 |
| 汇总项 | 预期 |
|---|---|
| 并发症五个合计 | 57 对 |
| 唯一蛋白 | 31 |
| 其中 MHC 蛋白 | 11 |
| MHC 蛋白涉及的对数 | 30 / 57 = 53% |
容差:以上全部完全一致,差 1 即缺陷。
五、实际结果 —— 全部命中
| outcome | 检验数 m | FDR<0.05 | 显著蛋白 | 最小 p | 最小 FDR | 预期 |
|---|---|---|---|---|---|---|
| Retinopathy | 1587 | 24 | 24 | 9.13e-82 | 1.45e-78 | ✅ |
| Maculopathy | 1587 | 19 | 19 | 5.48e-58 | 8.69e-55 | ✅ |
| NeovascGlaucoma | 1587 | 0 | 0 | 2.65e-04 | 0.420 | ✅ |
| Neuropathy | 1587 | 5 | 5 | 1.93e-23 | 3.07e-20 | ✅ |
| Nephropathy | 1587 | 9 | 9 | 9.28e-38 | 1.47e-34 | ✅ |
| T1D_gcst | 1722 | 57 | 57 | 2.18e-177 | 3.75e-174 | ✅ |
| T2D_mahajan | 1614 | 28 | 28 | 2.91e-15 | 4.70e-12 | ✅ |
| 汇总 | 预期 | 实际 | |
|---|---|---|---|
| 并发症合计对数 | 57 | 57 | ✅ |
| 唯一蛋白 | 31 | 31 | ✅ |
| 其中 MHC 蛋白 | 11 | 11 | ✅ |
| MHC 蛋白涉及对数 | 30 / 57 = 53% | 30 / 57 = 53% | ✅ |
11 个 MHC 显著蛋白(作者 MHC 列判定): AGER · AIF1 · ATP6V1G2 · BTN2A1 · BTN3A2 · CFB · HCG22 · LTB · MICB_MICA · TNXB · TRIM40
5.1 与旧结果比对
第 1 步已报:results/screen_R9_dm/ 下 16 个 CSV 全部 MD5 相同, 其中包括 7 个 _significant.csv 与 SUMMARY_publication.csv。 → 第 2 步的每一个 β / se / p / FDR / OR 都与旧结果逐字节一致。
5.2 顺带查出并已修的一处文档缺陷
01_screen.R 的 FDR 注释原文写「检验数 m = 本结局实际报告的蛋白数**(1659)**」, 但没标这是哪条线的数。R9_dm 实测是 1587 / 1722 / 1614,1659 是 R13 的。
config.yaml:112 那处倒是标了「(R13 为 1659)」,是对的;出问题的只有脚本里那一处。 已改为不写死具体数字、并注明 R9_dm 的实测值。
★ 这不影响任何计算(注释而已),但写死在注释里的数字会随数据变化而悄悄变错, 下一个读代码的人会被误导。
六、如何解读
6.1 ★ 这一步之后只能说「关联」,不能说「因果」
按 v4 的措辞阶梯,此时只过了 MR + 多重检验,方向性、外部复制、共定位一道都没走。 Zheng 2020 实测:413 个 MR 关联中有 130 个(31.5%)不被共定位支持。
→ 现在这 57 对的正确说法是 「57 个蛋白–并发症关联」,不是「57 个因果关系」。
6.2 ★ MHC 蛋白独占一半以上的显著结果
11 / 31 蛋白(35%)是 MHC 区的,但它们占了 30 / 57 = 53% 的显著对。
也就是说 MHC 蛋白平均横跨的并发症数明显多于非 MHC——旧实测为 2.7 个 vs 1.35 个。这正是 v4 §3.3「不排除 MHC 但必须处理」的实证基础: 「一个蛋白横跨多个并发症」这个现象,很大程度上是超长连锁块造出来的, 而不是生物学上的多效性。
⚠️ 但现在还不能下这个结论——它要等第 5 步共定位与跨病符号一致性做完才站得住。 此处只记录现象。
6.3 NeovascGlaucoma 一个都不显著,不是"没信号"
最小 p = 2.65e-04,最小 FDR = 0.420。病例数仅 1,100(其余并发症数千到上万)。 → 这是功效问题,写作时应说「未检出」而非「无关联」。 它也是 5 个并发症里唯一没有外部复制队列的两个之一(另一个是 Maculopathy)。
6.4 一个必须在 Methods 交代的方法学限制
每蛋白单工具 → 无法做多工具敏感性分析(MR-Egger、加权中位数、异质性 Q 全都做不了), 且 p 值恒等于结局侧 p 值。这是 cis 单哨兵设计的固有属性, 换来的是水平多效性风险低(cis 变异作用于本基因)。得失都要写。
七、进正文还是补充(暂定)
| 内容 | 暂定去向 | 依据 |
|---|---|---|
| Wald ratio 公式与单工具的限制 | 正文 Methods | 必写;否则审稿人会问为何无 Egger/中位数 |
FDR 分组方式(by_outcome)与检验数 m 的口径 | 正文 Methods | 不写读者无法判断校正强度;m 用蛋白数而非变异数也要交代 |
| 每结局的 m 与显著数 | 正文表 1 或补充表 | 漏斗的第一格 |
| 57 对 / 31 蛋白 | 正文(漏斗起点) | — |
| MHC 11 蛋白占 30/57 = 53% | 正文结果一句 + 补充表 | 它是后续 MHC 讨论的量化基础 |
| 全部 1587×7 行的 MR 估计 | 补充材料 | 审稿人常索要 |
| NeovascGlaucoma 功效不足 | Limitations | 避免被读成"无关联" |
⚠️ 暂定,最后一步统一复核。
八、漏斗记账(本步产出)
| 节点 | 蛋白 | 蛋白×结局对 | 其中 MHC 蛋白 |
|---|---|---|---|
| 工具池(cis 记录) | 1,954 | 1,955 条 | 27 |
| 标准化后可用工具 | — | 1,875 SNP(含 1 条无 rsID 不可用) | — |
| MR 显著(FDR<0.05,五个并发症) | 31 | 57 | 11 |