主题
口径核查问答(2026-08-04)
本页汇总 2026-08-04 一轮追问中查实的问题。每条都标明实测还是推断, 未能核实的直接写「不知道」。凡涉及数字的均现场从
results/重算,未凭记忆书写。
本页最重要的一条
第五节记录了一个已确认、尚未修复的真 bug:外部 T1D 源的等位频率列整列反转。 修复前,T1D 相关的方向结论不可对外使用。技术细节见 谐化与定向过滤 · 第八节。
一、导师文档里的「45」是什么?我们是多少?
45 在他自己的文档里就有两处口径
| 位置 | 写法 |
|---|---|
| 正文(段 34) | "a total of 45 significant protein–trait associations" |
| 图注(段 79) | "Fig 1. MR significant(45 proteins)" |
同一个 45,一处是「关联数」、一处是「蛋白数」。 这两个不可能同时成立—— 他下一段自己就写了「Three proteins were shared between T1D and T2D」, 有蛋白跨多个性状显著时,关联数必然大于蛋白数。
附带查出第二处不一致:正文写 "four major diabetic complications: nephropathy, retinopathy, neuropathy, and maculopathy"——只有四个,没有新生血管性青光眼; 但他的代码 1_r9_mr_diabetes.Rmd L267 实际读了 finngen_R9_DM_NEOVASCULAR_GLAUCOMA.gz。 又是文档与代码对不上。
我们的数字(现场重算)
| 口径 | 关联数 | 唯一蛋白数 |
|---|---|---|
| 他正文所说的 4 个并发症 | 57 | 31 |
| 5 个并发症(含青光眼) | 57 | 31 |
| 全部 7 个结局(5 并发症 + T1D + T2D) | 142 | 95 |
逐结局:T1D 57、T2D 28、糖网 24、黄斑 19、糖肾 9、神经 5、新生血管性青光眼 0。
青光眼零个显著,所以 4 个与 5 个并发症的数字相同——但他正文写「四个」在文字上仍是错的。
为什么差这么多(45 vs 142)
差额主要来自两个基础病而非并发症:我们 T1D 57 + T2D 28 = 85 条。 而他那两支的输入都有问题——T1D 数据源表型标错、T2D 匹配键静默丢 42.3% 工具(见第四节)。
并发症那一支反而是可比的:糖网他 24 个、我们 24 个,逐条吻合到 9.99×10⁻¹⁶。
⚠️ 给合稿的提醒
若 Table 1 要写「45 significant associations」,必须: ① 「45 proteins」与「45 associations」二选一;② 写清分母口径(几个结局、含不含青光眼、T1D 用哪个源)。 否则审稿人对照图注与正文即可发现。
二、其他并发症的结果和导师一样吗?
不知道——没法比。
F:\project\MR code\ 里只有 significant_results_retinopathy.csv 一个结果文件。 其余四个(黄斑、糖肾、神经、新生血管性青光眼)的 significant_results_*.csv 不在目录里, 他的 UpSet 脚本读入过这些文件名,说明本地跑出来过,但没有给我们。
已实测的部分:输入完全相同
| 结局 | 他实际读的文件 | 他写的例数 | 我们 | 差异 |
|---|---|---|---|---|
| 糖网 | finngen_R9_DM_RETINOPATHY_EXMORE.gz | 10,413 | 10,413 | 无 |
| 黄斑病变 | finngen_R9_DM_MACULOPATHY_EXMORE.gz | 3,572 | 3,572 | 无 |
| 新生血管性青光眼 | finngen_R9_DM_NEOVASCULAR_GLAUCOMA.gz | 1,100 | 1,100 | 无 |
| 糖肾 | finngen_R9_DM_NEPHROPATHY_EXMORE.gz | 4,111 | 4,111 | 无 |
| 神经病变 | finngen_R9_DM_NEUROPATHY.gz | 2,843 | 2,843 | 无 |
推断(不是实测)
其余四个很可能也一致,依据是两条已实测事实:输入相同;实现等价(糖网 24/24 同一 SNP、 β 与 se 最大差 9.99×10⁻¹⁶)。且那个 42.3% 丢工具的问题特定于 T2D(Mahajan)文件, 不影响 FinnGen 端点。
措辞纪律
在拿到他另外四个 CSV 之前,不能对外说「我们和导师的并发症结果完全一致」, 只能说「糖网实测一致,其余因缺其结果文件未能比对」。
行动项:向导师索取那四个 significant_results_*.csv,拿到后按糖网同一套逐条比对 (蛋白集合、工具 SNP、β、se),可把「推断」变成「实测」。
三、为什么 LTB 在我们这里掉出候选?为什么他的共定位里还有 LTB?
LTB 并没有「不显著」
| 结局 | β | FDR | |
|---|---|---|---|
| 糖网 | +0.652 | 9.05×10⁻¹¹ | 显著 |
| 黄斑病变 | +1.068 | 3.45×10⁻¹⁰ | 显著 |
| 糖肾 | +0.845 | 1.07×10⁻⁶ | 显著 |
| 神经病变 | +0.578 | 0.171 | 不显著 |
| 新生血管性青光眼 | −0.465 | 0.936 | 不显著 |
| 1 型糖尿病 | +1.220 | 2.16×10⁻³¹ | 显著 |
| 2 型糖尿病 | — | — | 未被检验(工具 rs2395470 不在 Mahajan 文件里) |
它掉出候选是三道独立过滤的结果
- 位于 MHC 区(chr6:31,267,484)→ 分层规则 MHC 一票否决 → C 级
- 糖尿病对照臂判为「糖尿病驱动」——它对 T1D 的 β=1.220 大于对任何并发症的效应 (黄斑 1.067、糖肾 0.845、糖网 0.652)
- 共定位不支持:判定为「不支持(仅疾病成簇,蛋白未进簇)」
外加 PheWAS 脱靶 125 个性状,标记为「高多效-成药需谨慎」。
为什么他的共定位里有 LTB —— 这是根因 4 最干净的实例
LTB 的 hyprcoloc 原始输出:
protein traits posterior_prob protein_in_cluster
LTB Nephropathy, Retinopathy 0.9997 FALSE喂进去的是 {LTB, 糖肾, 糖网},返回的簇成员是 Nephropathy, Retinopathy——LTB 不在里面。 这是糖肾与糖网之间的共定位(两者 rg=0.966,真实且预期之中),与 LTB 无关。
而他的代码 4_r9_hyprcoloc_newdiabete.Rmd L431–432 无条件贴上 protein = "LTB", 于是这一行看起来就是「LTB,后验 0.9997」,排位还很靠前。
全库统计:后验过阈的 28 行里,15 行蛋白根本不在簇内——超过一半。 这正是「20 个蛋白里 11 个从未进过簇」的产生机制。
四、「并发症特异 10 条 / 18%」与 UpSet 图的 13 个对不上?
两个数都对,是同名不同义。
| 表 5-2 的 10 | UpSet / 一页看全的 13 | |
|---|---|---|
| 单位 | 关联条数 | 蛋白个数 |
| 分母 | 57 条可比关联 | 31 个并发症显著蛋白 |
| 判据 | 同一工具变异在糖尿病端 p ≥ 0.05 | 该蛋白在 T1D、T2D 上都未达 FDR 显著 |
| 比较对象 | 只跟「信号更强的那一个」糖尿病比 | 跟 T1D 与 T2D 都比 |
- 口径 A 的 10 条只涉及 6 个蛋白:BTN2A1(4 条)、BTN3A2(2 条)、ERMAP、APOL1、IFNAR1、VWC2L
- 口径 B 的 13 个:ACRBP、AOC1、APOL1、BTN2A1、BTN3A2、CLPS、ERMAP、GALNT3、IFNAR1、 LACTB2、TIGIT、TPPP3、VWC2L
差的 7 个是怎么来的
ACRBP、AOC1、CLPS、GALNT3、LACTB2、TIGIT、TPPP3 根本没进那 57 条—— 它们在糖尿病端没有可用工具,被判为「无法判定(糖尿病端缺工具)」。
⚠️ 所以 13 这个数偏宽松:口径 B 把「测不了」当成了「测了没信号」。 这正是本项目反复强调的「『没测』与『测了没发现』是两回事」。
建议改名(把口径写进标签本身)
| 现称 | 建议 |
|---|---|
| 13 个 | 并发症显著且糖尿病端未达显著(含糖尿病端无工具者)——13 个蛋白 |
| 10 条 | 同一工具在糖尿病端 p ≥ 0.05——10 条关联 / 6 个蛋白 |
顺带一个干净的对应关系
口径 A 的 6 个蛋白里,BTN2A1 与 BTN3A2 都在 MHC 区(C 级)。 真正非 MHC 的只有 ERMAP、APOL1、IFNAR1、VWC2L 四个——其中三个正是 A 级候选。
五、我们的 MR 方向对吗?
并发症四端点与 T2D:实测通过
tools/verify_harmonise.R 逐结局检查三项(EA 逐条对齐、b == β结局/β暴露、无残留模糊回文):
| 结局 | 工具数 | EA 错位 | b 与 β 之比最大差 | eaf 相关 |
|---|---|---|---|---|
| 糖网 | 1,587 | 0 | 3.77×10⁻¹⁵ | 0.9841 ✅ |
| 黄斑病变 | 1,587 | 0 | — | 0.9841 ✅ |
| 糖肾 | 1,587 | 0 | 4.44×10⁻¹⁵ | 0.9841 ✅ |
| 神经病变 | 1,587 | 0 | 5.11×10⁻¹⁵ | 0.9841 ✅ |
| 2 型糖尿病 | 1,614 | 0 | 5.55×10⁻¹⁶ | 0.9991 ✅ |
| 1 型糖尿病 | 1,722 | 0 | 5.77×10⁻¹⁵ | −0.5931 ❌ |
★T1D 支线:已确认的真 bug,尚未修复
外部 T1D 源 GCST90824163.h.tsv.gz 的 effect_allele_frequency 整列反转 (以 1000G EUR 为第三方,1,276 个非回文可比位点中 93.7% 判为反转,相关 −0.9922)。
由于 harmonise_data(action=2) 判断回文 SNP 链方向的唯一依据就是等位频率, 喂反的频率导致 220 个回文工具(12.8%)的 β 符号被错误翻转。
不受影响:四个并发症端点、T2D、T1D 的显著蛋白集合与 p/FDR(符号翻转不改 |β|、se、p)、 T1D 的 1,502 个非回文工具、三个候选、共定位、跨平台、赢者诅咒、反向 MR、LDSC。
受影响:「方向背离」6 条里 5 条被重判(TRIM40×2、SIGLEC5×2、WARS;GALNT3 不受影响)——★2026-08-05 修复后实测:这 5 条全部翻正并归入「糖尿病驱动」,方向背离由 6 条降为 1 条; 37%/63% 主句数字可能微调。
完整技术细节、证据与修复计划见 谐化与定向过滤 · 第八节。
六、MR 结果能反映 LDSC 吗?两者有对应关系吗?
不能,也不应该。 两者问的不是同一个问题。
| LDSC 遗传相关 | cis-pQTL MR | |
|---|---|---|
| 问什么 | 两个性状之间的全基因组遗传共享 | 一个暴露 → 一个结局的因果效应 |
| 用多少变异 | 全基因组所有 SNP(且排除 MHC) | 单个 cis 变异 |
| 反映什么 | 多基因背景的重叠 | 某个位点上的局部因果作用 |
「两个病 rg=0.95」完全不排除「同一个蛋白在两者上效应不同」——rg 是几十万个位点的平均, MR 是一个位点。拿 rg 去校验单个 MR 命中是错配的。
但在本课题里有三处真实对应
① rg 给「本该复制」提供期望值 黄斑与糖网 rg = 0.946,本该高度一致。实际 19 个黄斑显著蛋白里 12 个在糖网端仍 FDR 显著 (符合预期),而三个 A 级候选一个都不显著——个别候选偏离群体基线即为红旗。
② rg 直接诊断出数据源错误 T1D↔T2D 现在 rg = 0.087(p=0.011),符合两者病因不同。换源前用 GCST90475661 时是 0.886 ——这个异常高的 rg 正是判定该数据集「标签 T1D、实为 T2D 主导」的关键证据。
③ ★rg 是标题主句的独立佐证(此前未用上)
| 并发症 ↔ 2 型糖尿病 | rg |
|---|---|
| 糖网 | 0.744 |
| 糖肾 | 0.693 |
| 黄斑病变 | 0.680 |
| 神经病变 | 0.591 |
并发症与 T2D 的遗传相关高达 0.59–0.74。若 FinnGen 的并发症端点真的只测 「在糖尿病之上额外得并发症」,rg 不该这么高——它这么高,正因为对照是一般人群、 端点里混着「先得糖尿病」这一段。
对照着看更清楚:并发症之间 rg 0.94–0.97(糖网↔糖肾 0.966、糖网↔黄斑 0.946), 并发症↔T2D 0.59–0.74。两层结构一目了然。
这是完全独立于 MR 的证据,支持「多数关联反映糖尿病易感性」这一主句, 且来自全基因组、不依赖任何单个蛋白或工具变异的假设。
必须同时写的限制
rg 高也可以来自真实的共享病因(糖尿病确实导致并发症), 所以它是佐证而非独立证明。真正定性的仍是探针位点实测 (R9 糖网端 TCF7L2 p=8.7×10⁻²⁹、FTO p=9.6×10⁻⁸)。
建议:把 ③ 写进摘要或 Results 第一节,与糖尿病对照臂那一节挂钩。 现在 LDSC 一节是独立叙述的,挂上之后主句就从「一条 MR 层面的观察」 变成「MR 与全基因组遗传结构两条独立证据指向同一结论」。