主题
视网膜 eQTL:给 A 级候选补眼组织证据
目的:三个 A 级候选(ERMAP / IFNAR1 / APOL1)此前只有血浆蛋白与单细胞表达两层证据, 缺眼组织的因果遗传证据。本页用 Advani 2024 的视网膜 cis-eQTL(403 眼) 对 FinnGen R9 的糖尿病黄斑病变与糖网做 MR + 共定位。
结论与做之前的预期几乎完全相反,两处都要看清楚: ① ERMAP 的视网膜 eQTL 与黄斑病变共定位(PP.H4 = 0.95),但方向与血浆层相反;② IFNAR1 —— 原以为"唯一有组织证据"的那个 —— 视网膜 eQTL 层完全阴性。
★ 2026-07-31 订正:本页初版把 ① 说过头了
初版写成"ERMAP 拿到了强共定位""第一次有眼组织层的因果遗传证据"。 经第二轮核查,方向是真的(五项独立核查全过,见第三节), 但强度远不到那个程度,两条硬约束当时没查:
- Advani 的 ERMAP eQTL 在独立队列 Strunz 里没有复制—— Strunz 中 ERMAP 0 条 p<1e-4,而同一文件里 MERTK 有 209 条(最强 9.3e-7), 说明 Strunz 有功效、只是看不到 ERMAP 的 eQTL;
- 疾病侧在该区没有任何全基因组显著位点—— chr1:42.5–43.9 Mb 内 p<5e-8 的位点数为 0,最强就是 rs11210710 的 p=2.43e-5。 所以
PP.H4 = 0.949是两个亚阈值信号之间的共定位。正确表述:视网膜 eQTL 与黄斑病变在同一变异上共定位、方向与血浆层相反, 属**提示性(suggestive)**发现;不能写成"强共定位"或"拿到了组织层因果证据"。
产物:multiomics-mr/05_retina/05d_retina_eqtl_r9dm.R(分析)、05e_retina_figure_r9dm.R(出图)、 results_eqtl_r9dm/(结果,已回灌 mr-pipeline-r9/results_key/retina_eqtl_*)、 图 public/multiomics_mr/retina_eqtl_r9dm.png。
一、★ 先纠正一个错误:ERMAP 的 ENSG 号写错过
待办计划任务 4 原先给 ERMAP 用 ENSG00000164123,在该数据集里返 0 条, 据此写成"ERMAP 做不了、eQTL 层只能补 IFNAR1、价值不大"。这个判断是错的。
正确号取自流水线自己的 mr-pipeline-r9/results/druggability.csv 的 ensembl 列: ENSG00000164010,有 136 条显著记录。
身份已独立核实:该 ENSG 在 chr1:42,817,125–42,844,989, ERMAP 的血浆哨兵 rs11210710 在 chr1:43,209,941,同一 cis 窗口。
教训:基因符号 → ENSG 一律取流水线产物里的号,再用坐标与哨兵 SNP 交叉核实, 不要凭记忆或外部查。脚本里已加断言(3/3 与 druggability.csv 一致才继续)。
覆盖情况
Advani 数据集只覆盖 9,408 个基因(条件 QTL 输出,非全转录组):
| 候选 | ENSG | 显著记录数 | 可做 |
|---|---|---|---|
| IFNAR1 | ENSG00000142166 | 167 | ✔ |
| ERMAP | ENSG00000164010 | 136 | ✔ |
| APOL1 | ENSG00000100342 | 0(非视网膜 eGene) | ✗ |
二、方法
- 暴露:视网膜 cis-eQTL,
Forward_significant = 1,用 1000G EUR 补 eaf(原数据无频率列),F ≥ 10(实际最小 F = 15.4,中位 22.9),plink 本地 clump(r² < 0.1,1 Mb) - 结局:FinnGen R9(与主线一致,非 R13)
DM_MACULOPATHY_EXMORE(3,572/308,547)、DM_RETINOPATHY_EXMORE(10,413/308,633) - MR:单工具 Wald / 多工具 IVW;Steiger 方向检验
- 共定位:
coloc.abf,用未 clump 的整段 cis 区 - 建 build 差异:变异 ID 内 pos 是 hg19、位置列是 hg38 → 全程按 rsID 匹配
端到端核对
本脚本从 finngen_R9_DM_MACULOPATHY_EXMORE.gz 取出的结局效应, 必须与 mr-pipeline-r9 自己算出来的一致,否则就是取错文件或等位翻转:
ERMAP rs11210710 本脚本 beta=+0.101028 R9流水线 beta=+0.101028 差=0.00e+00 ✓★ 这条核对第一版是形同虚设的:循环变量取名
p,而screen_R9_dm/*_significant.csv里恰好有一列就叫p(p 值),于是sig9[protein == p]恒为假、循环一行没跑, 而stopifnot(ok_all)照样"通过"。已改名并补n_checked == 0 就报错的断言。 同类坑本项目已踩到第三次(见 [[方向感知药靶PheWAS]] 的 data.table 作用域一节)。
三、结果
| 基因 | 结局 | 方法 | n | b | p | FDR | coloc SNP | PP.H4 | Steiger |
|---|---|---|---|---|---|---|---|---|---|
| ERMAP | 黄斑病变 | Wald | 1 | +0.093 | 2.5e-05 | 5.0e-05 | 94 | 0.949 | ✔ |
| ERMAP | 糖网 | Wald | 1 | +0.006 | 0.66 | 0.97 | 94 | 0.008 | ✔ |
| IFNAR1 | 黄斑病变 | IVW | 3 | +0.003 | 0.79 | 0.79 | 129 | 0.019 | ✔ |
| IFNAR1 | 糖网 | IVW | 3 | −0.0001 | 0.97 | 0.97 | 129 | 0.010 | ✔ |
① ERMAP:共定位但方向与血浆层相反(提示性,非强证据)
PP.H4 = 0.949(PP.H3 = 0.016)。但见本页开头的订正: 这是两个亚阈值信号之间的共定位,且底层 eQTL 在第二队列未复制, 只能作提示性发现,不能表述为"强共定位"或"眼组织层的因果证据"。
方向是反的,这一点经五项核查是确凿的。把三层都放到同一个 T 等位上看(哨兵 rs11210710):
| 层 | 每 T 等位效应 | z | 方向 |
|---|---|---|---|
| 视网膜 ERMAP 表达 | +0.893 (se 0.179) | +4.98 | ↑ |
| 血浆 ERMAP 蛋白 | −0.091 (se 0.007) | −13.0 | ↓ |
| 黄斑病变风险 | +0.101 (se 0.024) | +4.22 | ↑ |
所以:
- 视网膜 eQTL MR:表达 ↑ → 风险 ↑(b = +0.093)
- 血浆 pQTL MR:蛋白 ↑ → 风险 ↓(b = −1.110,OR 0.329)
两个 MR 方向相反不是计算错误,而是 T 等位对"视网膜转录本"和"血浆蛋白"本身作用相反。 手工复算已确认:血浆侧 Wald = 0.101028 / (−0.091) = −1.110198,与流水线记录逐位相同。
必须在正文披露,且不能简单说成"两层互相印证"。 可能的解释至少有三类,本数据分不开:
- 组织特异调控——同一变异在视网膜与产生血浆 ERMAP 的组织里调控方向不同;
- 转录本 ≠ 蛋白——mRNA 与循环蛋白水平本就常不一致;
- cis-pQTL 的表位效应——变异改变 Olink 抗体结合而非真实蛋白量,这是 cis-pQTL 的已知隐患, 本课题在 deCODE 复制里专门查过(ERMAP 在本地 SomaScan 子集里没有适配体,未能跨平台验证,见"外部 pQTL 复制"页)。
方向的五项独立核查(2026-07-31 第二轮)
这个方向矛盾太反直觉,所以逐项验过,都通过:
| 核查 | 做法 | 结果 |
|---|---|---|
Forward_slope 相对哪个等位 | 与 eQTLGen 血 cis-eQTL 比对共有位点(MERTK,114 对)方向 | 114/114 一致,Spearman ρ = 0.953;若解析反了应为 0% |
| ENSG 身份 | Strunz 数据集有显式 gene_symbol 列,反查其 gene_id | ERMAP → ENSG00000164010,坐标 42,817,122–42,844,991,与 Advani 差 3 bp |
| 工具 SNP 与 Wald | 手工复算 | 工具是 rs11580112:−0.101103 / −1.08880 = +0.092857274,与流水线报的 b 逐位相同 |
| 血浆侧 Wald | 手工复算 | 0.101028 / (−0.091) = −1.110198,与流水线逐位相同 |
| 方向能否复制 | 独立队列 Strunz 视网膜 eQTL(显式 REF/ALT 列) | rs11210710 的 T 等位 slope = +0.0608(p = 0.024),与 Advani 同号 |
另注:rs11210710(slope +0.893)与工具 rs11580112(slope −1.089)是同一信号的两个等位编码方向, 两者各自算出的 Wald 分别是 +0.1131 与 +0.0929,同号,内部自洽。
尺度提醒:Advani 的 slope 比 eQTLGen 与 Strunz 大 12–15 倍(归一化方式不同), 所以 MR 的 beta 量级「每单位视网膜表达」与血浆的「每 SD 蛋白」不可直接比大小, 只有符号可比。本页图的 B 面板用 z = beta/se 正是为此。
⚠️ 发表前必须做的两件事: (a) 用第二个视网膜队列复制这个共定位(EyeGEx / Nat Commun 2026 的 201 眼 NSR+RPE 分开数据); (b) 拿到 ERMAP 的 SomaScan 或质谱 pQTL,排除表位效应。 在这两件之前,写法只能是"视网膜 eQTL 与黄斑病变共定位,但与血浆层方向相反,机制待厘清"。
② IFNAR1:视网膜 eQTL 层阴性
p = 0.79,PP.H4 = 0.019(PP.H1 = 0.864 = 只有暴露侧有信号、结局侧没有)。
而且血浆哨兵 rs914142 根本不在视网膜 eQTL 的显著变异集里—— IFNAR1 的视网膜 eQTL 信号由另一批变异驱动,与黄斑病变不共定位。
这条要改口径:IFNAR1 此前被认为是"三个里唯一有组织证据"的那个, 但那层证据是单细胞表达(伞状神经节细胞 74.4%,AUC 0.757), 不是眼组织的因果遗传证据。视网膜 eQTL 层查完是阴性。
③ APOL1:本层测不了
非视网膜 eGene(该数据集 9,408 个基因里不含它),0 条记录。 "没测"不等于"测了没有",产出里按 0 条如实记录并说明原因。
四、对三个 A 级候选证据链的净影响
| 候选 | 血浆 pQTL | 单细胞表达 | 视网膜 eQTL(本页新增) |
|---|---|---|---|
| ERMAP | MR + 共定位支持 | AUC 0.536 = 无富集 | 共定位 PP.H4 = 0.95 但方向相反;且 eQTL 未在第二队列复制、疾病侧未达全基因组显著 → 仅提示性 |
| IFNAR1 | MR + 共定位支持 | AUC 0.757 = 有富集 | 阴性(PP.H4 = 0.02) |
| APOL1 | MR + 共定位支持 | AUC 0.506 = 无富集 | 非 eGene,测不了 |
净结果是三个候选的组织证据都比原来写的要弱或更复杂,没有一个是"三层一致收敛"。 这与 [[A级候选证据链与两处硬伤]] 的基调一致,且又添一条要披露的内容。
五、局限
- ERMAP 的视网膜工具 clump 后只剩 1 个 SNP(Wald ratio)——做不了异质性与多效性检验。
- 视网膜 eQTL 样本仅 403 眼,功效有限;IFNAR1 的阴性只能说"未发现证据",不能说"已排除"。 独立队列 Strunz 同样查不到显著的 IFNAR1 视网膜 eQTL(0 条 p<1e-4),两套一致。
- ★ ERMAP 的 eQTL 本身未在 Strunz 复制(0 条 p<1e-4),而 MERTK 在 Strunz 有 209 条, 说明不是 Strunz 没功效。这一条与「疾病侧无全基因组显著位点」一起, 构成本页 ① 只能作提示性结论的两条硬约束。
- 组织不匹配的另一面:Advani 数据是全视网膜,未分神经视网膜与 RPE;黄斑病变的病灶层次分不开。
- 未做视网膜 meQTL:AMD 线的经验是用 eQTM 映射靶基因 CpG 覆盖太窄(见 [[project_multiomics_mr]] 步骤5),本线暂未尝试。
- 结局用 R9 与主线一致;R13 的对应端点未做,两版例数差异见 [[FinnGen端点对照定义问题]]。