主题
R9 主线:从 2,415 个血浆蛋白到 11 个共定位支持的候选
这条线在回答什么
哪些血浆蛋白对糖尿病并发症有因果作用,而不只是相关。
本页是全流程的一张地图,每一步都配了从产物里读出来的真实数字。 代码在 /home/research/mr-pipeline-r9v3,第一节的数字截至 2026-08-09。
本页只有第一节已更新到 v4,往下都是 v3 时代的写法
2026-08-09 按第 7 步定稿重画了下面这张全景图,用的是 v4 流程与本轮实测数字。
第二节起尚未同步,仍在讲两样东西,它们在 v3/v4 都已经删掉:
- 候选分级 A/B/C/D(
tier) —— 已于 2026-08-09 全面删除。 v4 不给候选分级,只按「过没过否决点」与「能不能升级措辞」记录状态。 - HyPrColoc —— v4 只跑
coloc.abf一种方法,判据是PP.H4。
在整页改完之前,以第一节的图为准;下面各节请当作历史记录读。 (整页重写排在第 7 步的 7.5 图注与审计,不在本次范围内。)
一、全景:v4 八步,以及每一步有权做什么
v4 的要点不是"跑了哪些分析",而是每一步能不能动候选集。 全流程只有两个否决点;外部复制只分流、共定位只改措辞、注释层一个都不剔除。
怎么读这张图:颜色标的是权限,不是重要性。
| 颜色 | 含义 | 哪几步 |
|---|---|---|
| 蓝 | 准备,不动候选集 | 第 0 / 1 / 2 步 |
| 深橙 | 否决点,可以把候选删掉 | 第 3 步、第 4X 步 |
| 土黄 | 只分流,三分法记录,永不否决 | 第 4 步 |
| 墨绿 | 改措辞 / 只注释 / 定稿,都不改去留 | 第 5 / 6 / 7 步 |
| 灰 | 虚线旁支,只供解释 | 通路富集 |
★ 57 − 4 − 1 = 52:全流程一共只删掉 5 对,其中 4 对来自反向 MR、1 对来自表位调查。 「外部复制没复制上」不是删除理由 —— 工具在对照数据集里查不到时无法判定, 按 v4 记为「不可评估」,不计作失败。
★ 发表级版本见成稿图 results/candidate_summary/figures/pipeline_overview_v4 (脚本 analysis/75_figure_F7c_flow.R,图上的数字与本图同源现算)。
二、概念补丁:读下面之前先搞清这 7 件事
这一节和「理论与公式逐项拆解」的分工
那一页讲 MR 的数学(三条 IV 假设、Wald 比值、IVW、MR-Egger、F 统计量、各类偏倚的方向)—— 去看那一页。
这一节讲 这条流水线特有的概念:连锁不平衡、共定位、表位伪影、估计量。 两边不重复。
2.1 孟德尔随机化凭什么敢说「因果」
观察性研究看到「血里某蛋白高的人并发症多」,有三种可能:蛋白导致病、病导致蛋白高(反向)、 或者有第三个因素同时抬高两者(混杂)。光看相关分不出来。
MR 的支点是一个生物学事实:等位基因在受精那一刻随机分配,且此后终身不变。
- 随机分配 → 相当于一次天然的随机对照试验,混杂因素在基因型两组间大致均衡
- 终身不变 → 疾病不可能倒过来改写你的基因型,反向因果在结构上被排除
所以「携带使某蛋白升高的等位基因的人,并发症更多」这句话,比「蛋白高的人并发症多」强得多。
但这只在三条假设成立时才成立
① 工具与暴露强相关;② 工具不通过别的路径影响结局(无水平多效性);③ 工具与混杂因素无关。 第②条是最脆弱的一条,本流水线大半的设计都是在防它——下面 2.2 和 2.3 都是。
2.2 为什么只用 cis 工具,代价是什么
同一个蛋白的遗传工具有两类:
| 位置 | 机制路径 | 多效性风险 | |
|---|---|---|---|
| cis-pQTL | 就在该蛋白自己基因附近(本课题取 ±500 kb) | 直接影响它的转录、翻译、分泌、清除 | 低 |
| trans-pQTL | 在基因组别处 | 要经过一串中间分子才影响到它 | 高——那串中间分子本身就可能独立影响疾病 |
所以本课题只用 cis,这是拿功效换可信度。
代价很具体:99.9% 的蛋白只有 1 个 cis 工具。 而 Cochran's Q、MR-Egger 截距、MR-PRESSO、 留一法这些查多效性的方法,数学上都需要 ≥3 个工具——对单工具 cis-MR 全部不适用。 这不是偷懒,是设计的必然结果。稳健性只能改由别的方式承担:共定位、外部队列复制、换平台复制。
2.3 连锁不平衡:本课题一半的麻烦都来自它
减数分裂时染色体是成段重组的,挨得近的变异会被一起传下去,于是它们的基因型高度相关—— 这就是连锁不平衡(linkage disequilibrium, LD)。
后果:你测到「变异 X 与疾病相关」,真正致病的可能是它旁边的 Y,X 只是搭了顺风车。 单看关联,两者长得一模一样。
MHC 区为什么是雷区
chr6:25–34 Mb 的 MHC 区连锁块极长,几百个基因几乎是捆在一起往下传的。 在那里,「哪个基因才是真凶」在统计上基本无法分辨。
v4 的处置(2026-08-09 更新):MHC 区蛋白不在工具选择阶段排除,也不再归入什么等级—— 27 个带 MHC 标记的蛋白一路带到第 5 步共定位,在那里显形:29 对 MHC 关联全部落在弱/中档, 其中 28 对 PP.H3 = 1.000(数据支持「两个不同的因果变异」而非一个共享变异)。 这正是单因果变异模型在长连锁块里的预期行为,不能读成「这些蛋白是假的」。 要在这里下结论需要 MHC 专用工作(条件分析、HLA 等位基因层共定位),本研究没做。 ⚠️ 其中 CFB 是已上市药 iptacopan 的靶点、AGER 是经典靶点,不能因为 coloc 低就排除。 同理,后面会看到「跨多个并发症共享」的蛋白大多在 MHC—— 那更可能是同一个连锁块的投影,不是共同致病机制。
2.4 共定位在回答什么(MR 回答不了的那个问题)
MR 问:这个变异与疾病相关吗? 共定位问:蛋白信号的峰,和疾病信号的峰,是同一个变异吗?
coloc.abf 把一个区域的可能性穷举成五个互斥假设,各给一个后验概率:
| 假设 | 含义 |
|---|---|
| H0 | 两个性状在这个区域都没有信号 |
| H1 | 只有蛋白有信号 |
| H2 | 只有疾病有信号 |
| H3 | 两个都有信号,但是两个不同的因果变异 ← 就是 2.3 说的搭顺风车 |
| H4 | 两个都有信号,是同一个因果变异 ← 真共定位 |
五个加起来等于 1。判据是 PP.H4 > 0.8。
关键在于 H3 和 H4 的区别:H3 高 = 两个独立信号恰好挨着,正是要排除的假象; H4 高 = 同一个变异同时驱动蛋白和疾病,才是想要的证据。
一个必须知道的前提假设
coloc.abf 假设每个性状在这个区域只有一个因果变异。区域一宽就可能装进多个独立信号, 模型无法表达"多个",只能把它们判成 H3。
→ 这正是本页第六节那个「大区域 PP.H3 全是 1.000」的来源:那是模型撞墙,不是生物学阴性。
三种共定位方法的分工:
| 方法 | 做什么 | 本课题的处置 |
|---|---|---|
coloc.abf | 两两比对,给 H0–H4 后验 | 用 |
HyPrColoc | 多性状一起做,把共享同一因果变异的性状聚成「簇」 | ⛔ v4 不用(v3 用过,判据是簇后验 PP>0.7 且蛋白在簇内;见 §七的存档) |
coloc-SuSiE | 放松「只有一个因果变异」,允许多个 | 不用——LD 面板失配已实测,见第六节 |
2.5 表位伪影:为什么必须换平台再测一次
血浆蛋白组学并不直接「数分子个数」,而是靠结合试剂:
- Olink 用抗体结合目标蛋白
- SomaScan 用适配体(一段折叠成特定形状的单链核酸)
两者都是「结合上去,然后读信号强度」。
问题来了:如果工具变异恰好是个错义突变(改掉一个氨基酸),它可能根本不改变蛋白浓度, 只是改变了那个位置的形状,让抗体结合得没那么牢 → 仪器读数下降,但血里的蛋白一点没少。
这叫表位伪影(epitope artifact)。它会让你把「结合效率的变化」误当成「蛋白丰度的变化」, 进而得出一个完全错误的因果结论。
怎么识别:换一种结合试剂
抗体和适配体结合的位点不同,被同一个氨基酸替换扰动的方式自然也不同。 所以同一个变异在两个平台上:
- 方向一致 → 更可能是真的浓度变化(IFNAR1:三方都是负向)
- 方向相反 → 强烈提示是表位伪影(APOL1:抗体 −0.318,两个适配体队列 +0.378 / +0.462)
- 另一平台无信号 → 说不清,只能记为未获支持(ERMAP:deCODE p=0.62)
2.6 估计量:这批端点到底在比什么人
这一条最容易被跳过,但它决定了结论能不能成立。
FinnGen 的「糖尿病黄斑病变」端点:
- 病例 = 有糖尿病并发症的人
- 对照 = 一般人群——里面既有非糖尿病人,也有没并发症的糖尿病人
所以这个对比里同时装着两重效应:「会不会得糖尿病」+「得了之后会不会出并发症」。 估计出来的是复合效应,不是并发症特异效应。
这不是理论担忧,是实测的:把 TCF7L2、PTPN22、FTO 这几个公认的糖尿病易感位点 拿去测四个并发症端点,全部显著。
解法:同一个蛋白再对 T1D / T2D 本身做一遍 MR,两边效应量级一比就分开了—— 这就是第七节那道「糖尿病对照」判据的来历。实测 61% 的显著关联属于「糖尿病驱动」。
2.7 反向 MR:为什么必须先剔掉蛋白自己的 cis 区
反向 MR 是把方向倒过来:用疾病的工具变异去预测蛋白水平,看疾病是不是反过来改变了蛋白。
陷阱在于:如果某个疾病工具恰好落在这个蛋白自己的基因 cis 区内, 那它当然与该蛋白水平强相关——但那是 cis 效应,不是「疾病导致蛋白变化」。不剔就是必然的假阳性。
实测 AGER × 糖网:剔除前 p = 3.2×10⁻²⁶,剔掉 7 个落在 cis 区的工具后 p = 0.032。 差了 24 个数量级。 MHC 区的蛋白还要额外剔掉整个 MHC 区;全库共剔除 379 个工具。
七件事串起来就是这条流水线
① MR 给因果方向 → ② 只用 cis 压多效性 → ③ 但 LD 会制造假象 → ④ 所以要共定位 → ⑤ 平台伪影要靠换平台查 → ⑥ 估计量要靠糖尿病对照校正 → ⑦ 反向因果要靠剔 cis 区的反向 MR 排除。
每一道都在防一类特定的假阳性,缺哪一道就会在那一类上出错。
三、三份输入数据
| 角色 | 数据集 | 规模 | 用途 |
|---|---|---|---|
| 暴露 | UKB-PPP(Olink 抗体平台) | 34,557 欧裔 / 2,415 蛋白 | 血浆蛋白水平的遗传工具 |
| 结局 | FinnGen R9 | 5 个并发症端点 | 疾病侧关联 |
| 对照 | T1D GCST90824163 / T2D Mahajan noUKBB | 20,355 / 55,005 例 | 区分「并发症特异」还是「糖尿病本身」 |
| LD 面板 | 1000G EUR | 503 人 | clumping 与共定位(这个 503 后面会出事) |
作图约定(2026-08-03 定)
图上只印干净的疾病名,内部流水线 ID 一律不出现在图里。
| 内部 ID(数据键,不变) | 图上显示 |
|---|---|
Retinopathy / Maculopathy | Diabetic retinopathy / Diabetic maculopathy |
NeovascGlaucoma | Neovascular glaucoma |
Neuropathy / Nephropathy | Diabetic neuropathy / Diabetic nephropathy |
T1D_gcst | Type 1 diabetes |
T2D_mahajan | Type 2 diabetes |
映射集中在 analysis/_viz_common.R 的 pretty_outcome(),只作用于显示层—— CSV 产物、合并键、分层判据一律仍用内部 ID。未登记的 ID 会直接报错, 防止原始 ID 悄悄漏到图上。
★ 数据来源不印在图里,写在图注(PPT 每张图的说明行、Word 的数据来源表)。 理由:同一疾病有多个来源——T2D 主分析 Mahajan noUKBB、敏感性 MVP GCST90475667; T1D 主分析 GCST90824163、零重叠复制 Crouch GCST90013791。 把来源印在坐标轴上,不同图之间就无法对照了。
一处必须记住的口径
FinnGen 并发症端点的对照是一般人群,不是「没有并发症的糖尿病人」。 所以估计的是「糖尿病 + 并发症」的复合效应——这正是必须加第三行那个糖尿病对照的原因。
详见 FinnGen 端点对照定义问题。
四、工具变量 → MR → 显著关联
本节是 v3 时代的记录
下文出现的 A/B/C/D 分级与 HyPrColoc 在 v4 都已不存在。 v4 的对应说法见 §七:不给候选分级,只记「过没过否决点」与「能不能升级措辞」。
每个蛋白只取自己基因附近(cis)的变异做工具,这样最不容易有水平多效性。 工具强度实测 最小 F = 43.8、中位 F = 784,远高于常用的 10。
| 结局 | 病例 | 对照 | 可用工具蛋白 | FDR<0.05 显著 |
|---|---|---|---|---|
| 视网膜病变 | 10,413 | 308,633 | 1,587 | 24 |
| 黄斑病变 | 3,572 | 308,547 | 1,587 | 19 |
| 新生血管性青光眼 | 1,100 | 366,206 | 1,587 | 0 |
| 神经病变 | 2,843 | 271,817 | 1,587 | 5 |
| 肾病 | 4,111 | 308,539 | 1,587 | 9 |
| T1D(对照) | 20,355 | 797,363 | 1,722 | 57 |
| T2D(对照) | 55,005 | 400,308 | 1,614 | 28 |
七个结局合计 142 个「蛋白-疾病对」/ 95 个蛋白,其中:
- 并发症端 57 对 / 31 个蛋白(上表前五行)
- 糖尿病对照端 85 对(T1D 57 + T2D 28)
★ 这 142 对会原样全部进入下一步共定位——糖尿病对照端不是陪跑的, 它在共定位里的作用见第六节。
单位说明:全文一律用「蛋白-疾病对」,简称「对」
一个「对」= 一个蛋白 × 一个疾病。 同一个蛋白在几个并发症上都显著,就算几对。 31 个蛋白之所以摊成 57 对:
| 一个蛋白命中了几个并发症 | 蛋白数 | 贡献对数 |
|---|---|---|
| 1 个 | 16 | 16 |
| 2 个 | 7 | 14 |
| 3 个 | 5 | 15 |
| 4 个 | 3 | 12 |
| 合计 | 31 | 57 |
★ 把 31 撑成 57 的那 8 个蛋白(命中 ≥3 个),有 6 个在 MHC 区—— AGER / BTN2A1 / HCG22 各命中 4 个,CFB / LTB / TNXB 各 3 个;非 MHC 的只有 APOE 和 BCL2L15。 所以「一个蛋白横跨多个并发症」主要是 MHC 超长连锁块造成的,不是共同致病机制。
赢者诅咒的信号
黄斑病变每千例的显著数最高、|beta| 中位数最大——这是赢者诅咒的典型特征。 而三个 A 级候选恰好全出自这一端,后面必须格外小心。
五、漏斗:数字怎么一路掉下来的
本节是 v3 时代的记录
下文出现的 A/B/C/D 分级与 HyPrColoc 在 v4 都已不存在。 v4 的对应说法见 §七:不给候选分级,只记「过没过否决点」与「能不能升级措辞」。
读这张图要注意单位
前两格是蛋白数,中间两格对与蛋白都标了,最后两格是蛋白数。 「对」和「蛋白」不能直接相减——下面共定位那一节的「142」之所以看着比「57」大, 一半原因就是踩了这个单位差(另一半是它含了糖尿病对照端)。
六、共定位:排除「只是连锁」的假象
本节是 v3 时代的记录
下文出现的 A/B/C/D 分级与 HyPrColoc 在 v4 都已不存在。 v4 的对应说法见 §七:不给候选分级,只记「过没过否决点」与「能不能升级措辞」。
MR 显著也可能只是蛋白的变异和疾病的变异挨得近,并非同一个因果变异。
先解开「57 怎么变成 142」这个疑问
答案是:它没有变。筛查阶段产出的本来就是 142 对,共定位的输入也是 142 对。
之前流程图的 ③ 那格只写了并发症端的 57,到 ④ 又换成全部的 142, 是我在图上制造了一个不存在的跳变,已改。
筛查阶段(第四节那张表)跑的是 7 个结局,把每个结局的显著数加起来:
| 结局 | 显著对数 | 属于 |
|---|---|---|
| 视网膜病变 | 24 | 并发症端 |
| 黄斑病变 | 19 | 并发症端 |
| 新生血管性青光眼 | 0 | 并发症端 |
| 神经病变 | 5 | 并发症端 |
| 肾病 | 9 | 并发症端 |
| 小计 57 | ||
| T1D(GCST90824163) | 57 | 糖尿病对照端 |
| T2D(Mahajan noUKBB) | 28 | 糖尿病对照端 |
| 小计 85 | ||
| 合计 | 142 |
这 142 对全部进共定位,coloc_abf_pairs.csv 实测就是 142 行、涉及 95 个蛋白—— 与筛查输出逐条对得上。
所以正确的链条是:
筛查 142 对 / 95 蛋白 ──共定位──▶ 32 对通过
其中并发症端 57 对/31 蛋白 ──▶ 15 对/12 蛋白142 → 142,没有跳变;32 和 15 都是在收窄。
那为什么糖尿病端也要跟着跑共定位?
不是顺手跑的——HyPrColoc 是把多个性状放在一起聚簇的, 糖尿病结局必须在场,才看得出某个蛋白的信号是不是连糖尿病本身一起共享。
看 7 个有共定位支持的蛋白各自的簇(coloc_cluster 实测原文):
| 蛋白 | 簇里有谁 | 读出什么 |
|---|---|---|
| ERMAP | ERMAP、黄斑病变 | 只跟并发症共享 |
| IFNAR1 | IFNAR1、黄斑病变 | 只跟并发症共享 |
| APOL1 | APOL1、黄斑病变 | 只跟并发症共享 |
| GALNT3 | GALNT3、视网膜病变 | 只跟并发症共享 |
| WARS | WARS、视网膜病变 | 只跟并发症共享 |
| APOE | APOE、黄斑、肾病、糖网、T2D | ★ 糖尿病也在簇里 |
| NOTCH2 | NOTCH2、黄斑、糖网、T1D、T2D | ★ 糖尿病也在簇里 |
APOE 和 NOTCH2 的簇里站着糖尿病本身——同一个因果变异既驱动蛋白、又驱动并发症、 也驱动糖尿病。这就是「糖尿病驱动」最直接的图形化证据,也是它们只能进 B 级的原因。
反过来,三个 A 级候选的簇里只有黄斑病变、没有糖尿病——这才是「并发症特异」的实证。
→ 如果不把糖尿病端一起放进共定位,这个区分根本做不出来。 那 85 对不是陪跑的,是判据的一半。
两处必须写进局限
① 区域越宽,PP.H3 越高。 Spearman = 0.594;最大区域档(7,250–22,605 个 SNP) 36 对里 35 对 PP.H3 = 1.000、0 对通过。那是「每个性状只有一个因果变异」这个假设撞墙, 不是生物学阴性。所以大区域的阴性只能写「该区域宽度下无法判定」。
★ 但 2026-08-03 已界定影响面:最宽档 36 对全部来自 MHC 区蛋白, 而它们因 MHC 一票否决本就归 C 级;把这 36 对改判为「未评估」,A/B/C/D 分层一个不变。 非 MHC 的 93 对里该相关仅 0.056——这条局限只影响 MHC 区的表述。 (此前记的 Spearman = 0.671、Q4 = 37 对复现不出来,已订正为 0.594 / 36 对;通过数不变。)
② 本该解决①的 SuSiE 没跑成。 32 对里 20 对不收敛;实测 estimate_s_rss, 蛋白侧 s 中位 0.827、32/32 对 >0.3(理想应接近 0)。关键是连收敛的那 16 对 s 也有 0.775 ——不是「没跑出来的不能用」,是全都不能用。
完整诊断见 共定位的两处方法学局限。
根子在 LD 面板只有 503 人,而结局是芬兰人群、暴露是英国人群。 三个 A 级候选的区域都在中等宽度(3,854–4,515 个 SNP),PP.H4 = 0.926–0.967,不受这两处局限影响。
七、v4:不分级
一句话
v4 不给候选分级。 没有 A/B/C/D,没有「优先靶点」。 每一对关联只有两件事被记录:过没过否决点,以及能不能升级措辞。
v3 那套四级分层(本节末尾存档)建立在两个已经不存在的东西上:候选分级字段 tier (2026-08-09 全面删除)与 HyPrColoc(v4 只跑 coloc.abf)。 更要紧的是,v3 自己实测出来一个必须交代的事实:四道判据里只有一道真正在分 A/B (见存档里那张表)。与其保留一个名不副实的分级,不如按每一步的真实权限如实记录。
v4 的账:57 → 52 → 13
| 步 | 做了什么 | 对候选集的效果 |
|---|---|---|
| 第 2 步 | BH FDR < 0.05(按结局分组) | 57 对 / 31 蛋白 |
| 第 3 步 反向 MR | ★ 否决点 | −4 对 |
| 第 4 步 外部复制 | ★ 只分流:4a 22/4/27 · 4b 28/6/19 · 4c 12/5/36 | 0 |
| 第 4X 步 表位/PAV | ★ 全流程唯一否决点,6 条报警全查 | −1 对(APOL1 × 黄斑) |
| = 存活 | 52 对 / 28 蛋白 | |
| 第 5 步 共定位 | ★ 措辞升级关卡,PP.H4 ≥ 0.8 且非 MHC | 13 对 / 11 蛋白可升级措辞,一个都不剔除 |
| 第 6 步 注释 | 九个分子层 · PheWAS · 成药性 | 0 |
57 − 4 − 1 = 52。 全流程一共只删掉 5 对。
和 v3 的说法怎么对应
| v3 说法 | v4 的对应 |
|---|---|
| A 级 3 个(ERMAP / IFNAR1 / APOL1) | ⛔ 不再存在。APOL1 已在第 4X 步被否决(表位伪影,唯一的否决);ERMAP 与 IFNAR1 是 13 对里的 2 对 |
| B 级「共定位支持但需注意」 | 并入同一批 13 对,注意事项写在图注与正文,不再用等级表达 |
| C 级 11 个(MHC 一票否决) | MHC 不再一票否决;它们照常走到第 5 步,结果是全部落弱/中档(见 §2.3) |
| D 级「仅 MR 支持」 | 就是 52 对里没拿到措辞升级的那 39 对,仍在所有下游表里 |
| 「四道判据全部通过」 | ⛔ 不许这样写。v4 只说「过了两个否决点」+「共定位是否支持升级措辞」 |
这三条 v3 结论在 v4 依然成立
- 糖尿病对照是这条线最有价值的判据:61% 的显著关联属于「糖尿病驱动」, 它们作用于「得不得糖尿病」而不是「得了会不会伤眼」。v4 把它保留为描述性分类, ⛔ 但它不是过滤器,不删任何候选。
- 跨多结局共享不是加分项:共享的蛋白大多在 MHC,那是连锁不平衡的投影。
- MHC 区给不出答案 ≠ MHC 区是阴性:
CFB(iptacopan 靶点)、AGER都在里面。
📦 v3 存档:原「分层筛选:31 个蛋白怎么筛成 3 个」(2026-08-03 版,已不适用)
⚠️ 以下全部是历史记录,请勿据此写作。 其中的 A/B/C/D 分级、tier 字段、 HyPrColoc 判据、32_targets_table.R 与 target_decision_table.csv 在 v4 都已删除或废弃。 保留它是因为几条结论(尤其「四项判据里只有一项真正在分 A/B」)的推理过程仍有参考价值。
先补上最容易断的一步:13 个共定位支持蛋白 → 7 个
上一节 HyPrColoc 给出的是 13 个簇 = 13 个蛋白 = 19 对。但分层表里只有 7 个有共定位支持。 差的 6 个不是被筛掉的,是根本不属于并发症这条线——它们的簇里只有糖尿病:
| 蛋白 | 簇内性状 | 去向 |
|---|---|---|
| ABO / ERI1 / MINDY1 | 只与 2 型糖尿病成簇 | 不进并发症候选层 |
| IL10 / KIT / KLK1 | 只与 1 型糖尿病成簇 | 不进并发症候选层 |
| ERMAP / IFNAR1 / APOL1 | + 黄斑病变 | → A 级 |
| APOE | + 黄斑病变 / 糖肾 / 糖网 + 2 型糖尿病 | → B 级(糖尿病驱动) |
| NOTCH2 | + 黄斑病变 / 糖网 + 1 型 / 2 型糖尿病 | → B 级(糖尿病驱动) |
| WARS / GALNT3 | + 糖网 | → B 级(方向背离) |
★ 这一步在 PPT 里原先是缺的(2026-08-03 补成第 26 页)。少了它,读者会觉得「A 级」这个标签 是凭空出现的——上一页刚说完「跨多结局共定位的只有 APOE 与 NOTCH2」,下一页 A 级却是另外三个。 顺带说清一件反直觉的事:跨多结局在这里不是加分项。 APOE 与 NOTCH2 恰恰因为簇里同时含糖尿病, 被判为「糖尿病驱动」而降到 B 级。
分层规则本身
分层规则写在 analysis/32_targets_table.R:76-81,是一个优先级级联,不是逐道串行的漏斗:
三处容易记错的地方(2026-08-03 订正)
① MHC 是一票否决,不是最后一道。 in_MHC 的蛋白根本进不了 A/B,与有没有共定位支持无关。 实测 11 个 C 级蛋白的 coloc_support 全部为 FALSE。
② 「共定位支持」用的是 HyPrColoc,不是 coloc.abf。 判据是「簇后验 PP>0.7 且蛋白在簇内」, 比 coloc.abf 严 → 7 个蛋白(= A 级 3 + B 级 4),不是第六节 coloc.abf 的 12 个。 差的 5 个(ACRBP、LACTB2、NUDT5、PAM、SIGLEC5)是 coloc.abf 判通过、但 HyPrColoc 没把蛋白放进簇里。
★ 补一句省得反复对账:coloc_compare_hypr_vs_abf.csv 的 verdict 只有三类—— 两法都支持 19 对 / 仅 coloc.abf 13 对 / 两法都不支持 110 对,没有「仅 HyPrColoc」。 即 HyPrColoc 通过必然 coloc.abf 也通过,所以本数据下 「共定位支持」≡「两法都支持」,两种说法指的是同一批。
③ 最后一道是方向,不是 PheWAS。 代码里的条件是 targeting_flag != "★方向相反-若成药可能对某些结局不利"。 phewas_flag 是并排报告的警示列,从没进过分层规则——三个 A 级恰好都是「低多效」是相关,不是判据。
★★ 而且这一道对三个 A 级候选实际上是空转的:它们的 targeting_flag 实测全是 「单病(不适用)」——只作用于一个疾病,根本没有跨疾病方向可比,只是「未被判为方向相反」所以没被否决。 不能写成「通过了方向一致性检验」,准确说法是「该条不适用,因而未构成否决」。
★★ 四项判据里只有一项真正在分 A/B(2026-08-03 实测)
把上面 ①③ 两条的实测结论并排放,会得到一个必须主动交代的事实:
| 判据 | 本数据下是否真的起作用 |
|---|---|
| 非 MHC(一票否决) | 空转 —— 11 个 MHC 区蛋白 coloc_PP 全为 NA,无一通过共定位,否决权从未触发 |
| HyPrColoc 共定位支持 | 起作用(31 → 7) |
| 糖尿病对照分类 | 只有这一条在分 A/B |
| 方向未判为相反 | 空转 —— 7 个的 targeting_flag 全为「方向一致」或「单病(不适用)」 |
所以 A 级的准确定义就两条:共定位支持 + 并发症特异(或增强)。
写作时不得表述为「四道判据全部通过」。 那会给出比实际更强的筛选印象, 而审稿人只要把 hyprcoloc_shared.csv 与 target_decision_table.csv 一交叉就能看出来。
糖尿病对照那一条是这条线最有价值的判据
实测有 61% 的显著关联在糖尿病易感性端也显著(APOE、PAM、NOTCH2 等)—— 它们作用的是「得不得糖尿病」,不是「得了糖尿病会不会伤眼」。 没有这一道,一半的候选会被讲成并发症靶点。
MHC 一票否决不是形式主义
C 级那 11 个全在 MHC 区。跨并发症「共享」的 5 个蛋白也全在 MHC—— 那是连锁不平衡造成的假象,不能读成「共同致病机制」。
八、跨平台复制:分水岭
Olink 用抗体测蛋白,SomaScan 用适配体。如果工具变异恰好是个错义突变, 改的可能是抗体结合能力而不是蛋白真实浓度——这叫表位伪影。检验办法只有一个:换平台再测一次。
cis-pQTL 效应量(等位已对齐,ΔEAF ≤ 0.036):
| 蛋白 | 变异 | Olink β | deCODE β | deCODE p | ARIC β | ARIC p | 判定 |
|---|---|---|---|---|---|---|---|
| IFNAR1 | rs914142 | −0.450 | −0.166 | 1.1e−69 | −0.392 | 8.0e−99 | ✅ 三方同向 |
| APOL1 | rs136168 | −0.318 | +0.378 | 1.8e−251 | +0.462 | 7.8e−111 | ❌ 方向相反 |
| ERMAP | rs11210710 | −0.091 | +0.004 | 0.62 | −0.050 | 0.0029 | ⚠ 另一平台无信号 |
为什么 ARIC 不能省
只有 deCODE 的话,平台和人群是一起变的(英国-抗体 vs 冰岛-适配体),说不清是哪个造成差异。 ARIC 是第三个人群、但同一个平台,这就把分歧锁定在平台上。这是 deCODE 自己给不了的。
九、多组学定向验证
给三个候选各补几层证据,看蛋白层的信号在基因表达和甲基化上能不能对上。
| 层 | 数据 | 结果 |
|---|---|---|
| 血液 eQTL | eQTLGen | IFNAR1 显著,但 PP.H3 > H4,且糖尿病对照端也显著 |
| 视网膜 eQTL | Advani / Strunz | ERMAP 共定位 PP.H4=0.949,但方向与血浆层相反;IFNAR1 完全阴性 |
| 甲基化 SMR | mQTL + HEIDI | IFNAR1 拿到唯一稳健命中,但不能定方向 |
| 单细胞 | 视网膜图谱 18 种细胞 | 只有 IFNAR1 站得住;图谱没有血管内皮/周细胞/脉络膜,正是文献报道 APOL1 的地方 |
最容易踩的坑
跨层比较的往往不是同一个变异。 eQTL 顶点和 pQTL 哨兵之间 r² 只有 0.095 / 0.031。 所以「方向相反」不构成矛盾,mRNA 与蛋白不一致本来就是全基因组普遍现象——不能拿它来反对候选。 只有换成同一个变异去比,才有资格下结论。
十、三个候选现在各自在哪
本节是 v3 时代的记录
下文出现的 A/B/C/D 分级与 HyPrColoc 在 v4 都已不存在。 v4 的对应说法见 §七:不给候选分级,只记「过没过否决点」与「能不能升级措辞」。
| 候选 | 状态 | 共定位 | 跨平台 | MR(黄斑) | 要点 |
|---|---|---|---|---|---|
| IFNAR1 | ✅ 唯一全部通过 | PP.H4 = 0.940 | 三方同向 | OR 0.782 / 0.514 / 0.754 | 三个平台 OR 全 < 1,方向稳健 |
| APOL1 | ❌ 已撤回·表位伪影 | PP.H4 = 0.926 | 两个适配体队列均反向 | OR 1.521 vs 0.703 / 0.749 | 工具变异与已发表错义位点 r²=1.000(相距 488 bp);「血浆水平致病」作废 |
| ERMAP | ⚠ 最弱·三面受敌 | PP.H4 = 0.967 | deCODE p=0.62 无信号 | — | 糖网端效应衰减 28 倍;视网膜 eQTL 方向与血浆层相反 |
一句话讲清现在的处境
开局有三个 A 级候选,走完跨平台复制只剩一个。
这不是失败——能主动把自己两个候选否掉,正是这套流程值钱的地方。 换成只做 MR 不做跨平台,这三个会一起被写成阳性结果发出去。
十一、还没做的(按性价比排)
| 方案 | 预期 | 成本 |
|---|---|---|
| 缩小共定位区域窗口(哨兵 ±100–250 kb 而非 ±1 Mb) | 直接对着病根;Q4 那 37 对有望变为可判定 | 低(区域缓存已在) |
| 用 deCODE 自己的 cis-pQTL 重选工具做敏感性分析 | 同济那篇做了,评审最可能问 | 低 |
| GTEx / HPA 组织表达谱 | 补组织落位 | 中 |
| 换更大 / 更匹配的 LD 面板 | 可能救回部分 SuSiE | 高,且期望值已很低 |
相关页面
- 共定位的两处方法学局限
- APOL1 表位伪影与结论撤回
- 多组学定向验证:三个 A 级候选 —— v3 分级口径,见 §七存档
- A 级候选证据链与两处硬伤 —— v3 分级口径,见 §七存档