Skip to content

R9 复现重跑(2026-07-29)

这页干什么

记录 用本流水线复现导师 Whole story line.docx 的 R9 方案 这一轮的完整过程:数据核查 → 备份 → 隔离环境 → 改动清单 → 运行 → 结果对照。 每一步都可复核。运行中的部分会随进度更新。

一、缘起与目标

主线分析已迁到 FinnGen R13(见 分家重跑定稿)。本轮回到 R9,目的是用我们的流水线复现导师原方案,形成 R9 与 R13 的逐条对照。

选定路线:A —— 走我们的流水线跑 R9(而非用导师原始 .Rmd 逐数字复刻)。理由见下方第六节"预期差异"。

二、先核查:docx 到底用了哪些数据

Whole story line.docx 正文没有写任何数据集编号(Methods 全为描述性文字)。实际数据源是从同批次代码 F:\project\MR code\ 的读盘路径反推的:

实际用的数据代码位置
暴露UKB-PPP cis-pQTL,protein_info.csv,hg37,samplesize=54219,只留 cis/trans=="cis"1_r9_mr_diabetes.Rmd:26,58
糖网finngen_R9_DM_RETINOPATHY_EXMORE.gz:72
黄斑病变finngen_R9_DM_MACULOPATHY_EXMORE.gz:182
新生血管性青光眼finngen_R9_DM_NEOVASCULAR_GLAUCOMA.gz:267
糖尿病肾病finngen_R9_DM_NEPHROPATHY_EXMORE.gz:352
糖尿病神经病变finngen_R9_DM_NEUROPATHY.gz:435
T1DGCST90475661.tsv.gz(外部)2_diabete_validation.Rmd:186
T2DMahajan.NatGenet2018b.T2D-noUKBB.European.txt(外部)2_diabete_validation.Rmd:81
AMD(敏感性支线)finngen_R9_H7_AMD.gz8_sensitivity_AMD.Rmd:72
下游UpSetR / HyPrColoc(±500kb, PP≥0.7) / PheWAS 用 GWAS Atlas / 网络3_ 4_ 6_ 7_

核查中发现的三个问题

  1. docx 的 Table 1 病例数与它实际分析的文件对不上。 docx 写 T1D 4,526 / T2D 49,101 / DR 12,681 / 新青光眼 1,353;R9 官方 manifest 实测为 T1D 4,196 / T2D 57,698 / DR 10,413 / 新青光眼 1,100。 代码注释里出现的是 r7.risteys.finngen.fi(其中 T2D_WIDE 恰为 49,101)→ Table 1 数字抄自 R7 Risteys 页面,而分析读的是 R9 文件。且 T1D/T2D 的 MR 实际用外部 GCST/Mahajan,Table 1 给的却是 FinnGen 的数。 ➡️ 本轮输出的表格按真正读入的文件重出。

  2. docx 的 T1D 用 GCST90475661,已证实不是干净的 1 型糖尿病(MVP phecode,TCF7L2 p=9.5e-66,与 T2D 的 rg=0.886)。详见 外部 T1D 数据源问题。 ➡️ 本轮照原样使用(目的就是复现原方案),但结果中 T1D 一列会显式标注"不可按 1 型糖尿病解读"。

  3. docx 自身前后不一致:正文称共定位 36 个显著,图注 Fig2 写 20 个;"maculopathy 5 unique" 与 "maculopathy (6)" 重复矛盾。 ➡️ 以本轮实际结果为准。

三、备份(前置动作,已完成)

检查项结果
打包results/(R13 全部结果)13G → 5.46GB
gzip 完整性校验✅ 通过
归档条目数632
WSL 内副本/home/research/backups/results_R13_full_20260729.tgz
D 盘副本D:\mrdata\results_R13_full_20260729.tgz(5,459,327,126 字节,与源同尺寸)
results/未改动

四、隔离环境

R9 这一轮跑在独立工作副本 /home/research/mr-pipeline-r9/,与 R13 主线 /home/research/mr-pipeline/ 完全隔离,results/ 互不覆盖。副本只复制代码(804K),数据经软链指向 /mnt/d/mrdata/,不重复占盘。

为什么必须建副本

流水线只有 01/02/04/05/06/12/13/14 认 release 参数;07(可成药性)/10(eQTL共定位)/11(单细胞)/17–21 里 R13_dmR13_amd 是写死的,而 03(PheWAS) 会扫描所有 screen_* 目录并覆盖 results/phewas。直接在原目录跑 R9 会污染 R13 的下游产物。

五、本轮结局清单(7 个,单一 FDR 家族 R9_dm

#数据文件病例 / 对照说明
1finngen_R9_DM_RETINOPATHY_EXMORE.gz10,413 / 308,633docx 原样
2finngen_R9_DM_MACULOPATHY_EXMORE.gz3,572 / 308,547docx 原样
3finngen_R9_DM_NEOVASCULAR_GLAUCOMA.gz1,100 / 366,206docx 原样
4finngen_R9_DM_NEPHROPATHY_EXMORE.gz4,111 / 308,539docx 原样
5finngen_R9_DM_NEUROPATHY.gz2,843 / 271,817docx 原样
6GCST90475661.tsv.gz16,971 / 418,767外部 T1D(已知污染,标注)
7Mahajan.NatGenet2018b.T2D-noUKBB.European.txt55,005 / 400,308外部 T2D

暴露:UKB-PPP cis-pQTL 1,954 蛋白(N=54,219),见 暴露端核查

不含 AMD → 本轮无 AMD 家族,不跑 08(IAMDGC 复制)、10(视网膜 eQTL 共定位)、18–21(湿实验 shortlist)。

六、⚠️ 预期差异:复现 ≠ 数字全等

我们的实现有三处刻意不同于导师原版,改回去等于把已知错误再犯一遍:

#差异后果
1T2D(Mahajan) 匹配键:导师用 chr:pos:NEA:EA 固定顺序键,实测漏掉 700/1,656 个工具(42%);我们用等位排序键,方向交给 harmonise我们的 T2D 可检验蛋白数接近翻倍,显著数会明显不同
211 个共用哨兵 SNP(如 rs1859788 = PILRA+PILRB):导师那版两个蛋白用了同一个暴露 β;我们按各自真实 β 校正p 值/FDR/显著性不受影响,只有 OR/CI 变;其中 2 组方向会翻转
3Steiger 定向过滤 + F 统计量:我们在批量筛查中真正执行实测剔除 0 个 SNP,保留该步是为方法学可核

因此本轮结果与 docx 的数字不会逐个相同,差异均可解释、且方向是"更正确"。

七、代码改动清单(都在副本内,主线未动)

文件改动
outcome_manifest.csv上述 7 行 release: R9 → R9_dm;其余 R9 行改 R9_unused 不参与
analysis/04_ldsc.RKEEP 新增 R9_dm(新青光眼 1,100 例太小不入 LDSC,与 R13_dm 口径一致)
analysis/05_hyprcoloc.RCOMPL 新增 R9_dm = 5 个并发症(含新青光眼)
analysis/07_druggability.py靶点来源 network_R13_* → network_R9_dm
analysis/_singlecell_io.py候选基因来源同上
analysis/17_replicate_external.ROUT2REPLRetinopathy="DR_mvp"(R9 的 DR 叫 Retinopathy 而非 RetinopathyStrict);只跑 do_family("R9_dm")
run_pipeline.sh改写为单家族编排,去掉 AMD 专属阶段

八、运行的阶段

:01 筛查 → 02 可视化 → 03 PheWAS → 04 LDSC → 05 HyPrColoc(PP>0.7) → 06 网络 → 07 可成药性 → 09 汇总 → 11 单细胞 → 12/13/14/15 出图 → 17 外部复制 → 16 汇总

覆盖 docx 的全部五步(MR → 共定位 → PheWAS → 网络 → 药靶方向),另加 LDSC、外部队列复制、单细胞定位 三层增量。

外部复制映射:Retinopathy → MVP DR (GCST90475689)Neuropathy → MVP 神经 (GCST90475676)Nephropathy → Salem2019 糖肾 DN

启动时间:2026-07-29 08:30(./run_pipeline.sh force,从零重算,不复用任何缓存)

九、结果

9.1 筛查层(阶段 01,已完成)

结局病例/对照可检验蛋白minF中位FFDR<0.05 显著
Retinopathy(糖网)10,413 / 308,6331,58743.878424
Maculopathy(黄斑病变)3,572 / 308,5471,58743.878419
NeovascGlaucoma(新青光眼)1,100 / 366,2061,58743.87840
Neuropathy(神经病变)2,843 / 271,8171,58743.87845
Nephropathy(糖肾)4,111 / 308,5391,58743.87849
T1D_gcst(外部 T1D)⚠️16,971 / 418,7671,68740.6768.521
T2D_mahajan(外部 T2D)55,005 / 400,3081,61443.9780.528

所有工具 F 统计量最小 40.6,远高于弱工具门槛 10,相关性假设满足。

⚠️ T1D_gcst 一行不可按 1 型糖尿病解读(MVP phecode,实为 T2D 主导),见 外部 T1D 数据源问题

9.2 与历史 R9 记录的一致性核对

五个 FinnGen 结局 + 外部 T1D 的显著数与既有 R9 endpoint 清单逐个吻合(DR 24 / 黄斑 19 / 新青光眼 0 / 神经 5 / 糖肾 9 / T1D 21),说明本轮从零重算复现了历史结果,流水线行为稳定。

唯一不同的是 T2D(Mahajan):本轮 28,旧记录 7。 这正是第六节预告的差异 #1 —— 旧数字出自"固定顺序等位键"实现(漏掉 42% 工具),修复为等位排序键后可检验蛋白从约 950 涨到 1,614,显著数随之从 7 涨到 28。旧的 7 是缺陷产物,28 是修正后的正确值。

9.3 与 R13 主线的覆盖率对照

R9(本轮)R13(主线)
FinnGen 结局可检验蛋白1,5871,659
外部 T1D1,6871,722(换源后为 GCST90824163)
外部 T2D(Mahajan)1,6141,614

R13 覆盖率略高(+72 蛋白),与其更新的填补面板一致。暴露端起点两者相同,均为 1,954。

9.4 遗传相关(阶段 04 LDSC)

纳入 6 个性状(新青光眼 1,100 例太小,h2 估计不可靠,不入矩阵):

rg糖网黄斑神经糖肾T1D_gcstT2D_mahajan
糖网10.9460.7340.9660.7810.744
黄斑0.94610.6010.9420.7700.680
神经0.7340.60110.7510.7720.591
糖肾0.9660.9420.75110.7690.693
T1D_gcst0.7810.7700.7720.76910.886
T2D_mahajan0.7440.6800.5910.6930.8861

观察尺度 h2:糖网 0.188 · 黄斑 0.305 · 神经 0.279 · 糖肾 0.272 · T1D 0.171 · T2D 0.122,z 全部 ≥5.85。

本轮独立复现了 GCST90475661 的污染判据

rg(T1D_gcst, T2D_mahajan) = 0.886 (SE 0.046),与 2026-07-27 在 R13 数据上的实测值一致。真 T1D 与 T2D 的遗传相关文献值约 0.1。在 R9 数据上独立复现同一异常值,为该数据源实为 T2D 主导的结论再加一层证据。

9.5 共定位(阶段 05 HyPrColoc,PP>0.70)

30 个蛋白进入多性状共定位:

判定数量
支持(蛋白与疾病共定位)8
不支持(仅疾病成簇,蛋白未进簇 → 疑 LD 巧合)11
不支持(未检出共享簇)5
证据不足(蛋白进簇但 PP 未过阈)6

共定位支持的 8 个蛋白:

蛋白染色体簇内最佳 PP共定位疾病
NUDT5100.934糖网
ERMAP10.899黄斑病变
WARS140.894糖网
PAM50.891糖网
APOE190.869黄斑病变 + 糖肾 + 糖网(跨 3 病)
GALNT320.844糖网
IFNAR1210.837黄斑病变
APOL1220.815黄斑病变

APOL1 共定位的是黄斑病变,不是糖肾。 这与 2026-07-27 全量核查得出的"APOL1 指向应为黄斑病变而非糖肾"完全一致,本轮在 R9 上再次独立验证。

9.6 整合网络与候选靶点(阶段 06)

MR 显著边 57 条(31 蛋白 × 4 结局),共定位支持 10 对。

层级边数
A1 候选靶点(跨病共定位)3
A2 候选靶点(单病共定位)7
C 仅 MR(共定位不支持)47

A 级候选靶点 8 个蛋白 / 10 条边(A1 跨病 1 个 = APOE;A2 单病 7 个),方向冲突全为 FALSE:

蛋白干预方向共定位疾病数脱靶表型数备注
APOE抑制3656⚠️ 高多效,作药靶需谨慎
PAM增强130
WARS抑制126
NUDT5抑制125
ERMAP增强16
IFNAR1增强14
APOL1抑制12
GALNT3增强12

与上一轮 R9(A1 1 + A2 12)的差别是分母不同,不是结果不稳

上一轮 R9 跑的是全部 21 个终点(含 AMD、增殖性 DR、酮症酸中毒等),本轮按 docx 只跑 5 个并发症 → 能产生 A2 的结局本来就少。结局范围不同导致的差异,不构成前后矛盾。

9.7 可成药性(阶段 07,Open Targets)

8 个靶点全部解析成功。IFNAR1 是唯一有现成药可谈重定位的:已有 12 个在研/上市药物,且方向一致(MR 提示需"增强",现有药物方向吻合)。其余 7 个 phase 0:APOE/PAM/APOL1 小分子与抗体两条路均可及;WARS/NUDT5 仅小分子;ERMAP/GALNT3 仅抗体。

9.8 视网膜单细胞定位(阶段 11,HRCA 图谱)

蛋白表达最高的细胞类型(均值,表达比例)
APOEMüller 细胞(3.67,92%)→ 定位极明确
PAM视网膜节细胞 parasol(1.32,99%)/ 无长突细胞
WARS视网膜节细胞(0.35,76%)
NUDT5视网膜节细胞(0.33,70%)
IFNAR1视网膜节细胞(0.33,74%)
GALNT3Müller 细胞(0.22,17%)
ERMAP视锥细胞(0.16,9%)
APOL1几乎不表达(小胶质 1%、RPE 1%)

APOL1 的组织落位不支持视网膜局部作用

遗传学信号有、共定位过阈,但视网膜里几乎测不到表达 → 更可能通过系统性(肾/循环)途径影响,写作时不能当成视网膜局部靶点

9.9 外部队列独立复制(阶段 17)

显著命中 106 行,其中有外部队列可判 38 行,复制成功(方向一致 且 p<0.05)12 行

结局复制队列可判复制成功
糖网MVP DR (GCST90475689)2410
神经病变MVP 神经 (GCST90475676)51
糖尿病肾病Salem2019 糖肾 DN91

复制成功明细:

结局蛋白发现集 OR复制集 p
糖网PAM0.8882.22e-17
糖网APOE1.1393.61e-11
糖网NUDT53.0805.56e-07
糖网NOTCH20.5983.08e-07
糖网AOC10.8092.24e-04
糖网LTB1.9195.91e-04
糖网TNXB1.3094.95e-03
糖网AIF10.6221.34e-02
糖网GALNT30.8463.19e-02
糖网HCG220.6823.78e-02
糖肾BTN2A11.8078.71e-03
神经AGER0.1462.63e-02

糖网 24 个显著蛋白里 10 个在 MVP 独立队列复制成功(42%),其中 PAM、APOE、NUDT5、GALNT3 同时也是共定位支持的 A 级候选 —— MR + 共定位 + 外部复制三层同时过关,是本轮证据最强的一组。

Salem2019 糖肾队列的 sumstats 不含样本量,Steiger 定向过滤无法计算,脚本已显式记录并跳过(不影响方向一致性与 p 判定)。此为既有待办,非本轮新问题。

9.10 产出清单

  • 图 19 张(600dpi PNG + 矢量 PDF 双份):筛查火山图/UpSet/森林图/效应热图、8 张区域共定位图、LDSC h2 与 rg 热图、PheWAS 多效性图 2 张、整合网络图、单细胞点图
  • 汇总 Excelresults/REPORT/MR_publication_tables.xlsx,含 7 个结局汇总 + 106 条显著关联 + 10 张下游表
  • 运行时长:08:30 → 09:16,约 46 分钟(含一次汇总层返工)

九·补、对齐导师口径:把外部 T1D/T2D 纳入共定位家族

导师原方案(hypco_new.tiff / PPT Slide 2)的共定位 UpSet 里含 diabetetp1/diabetetp2,其"20 个共定位显著"包含蛋白与糖尿病本身共定位的部分;我们首轮只把 5 个并发症放进簇,所以是 8 个。为使两边可直接比较,把外部 T1D/T2D 也加入共定位家族重跑。

仅并发症版本另存于 results/hyprcoloc_R9_dm_complonly/network_R9_dm_complonly/,两版并存可比。

加进去之前发现的两个真障碍

问题表现处理
① Mahajan 是 GRCh37共定位按 chr:pos 合并,基准是 GRCh38(UKB-PPP 蛋白区域 + FinnGen)。直接挂进来会全表失配且静默(区域读到 0 行 → 跳过,不报错)新建 tools/lift_mahajan_hg38.R,经 rsID 桥接转成 hg38
② 区域读取器按 FinnGen 列布局写死$1 chrom $2 pos … $9 beta $10 sebeta;而 GCST90475661 是 OR + CI 且 standard_error全是 `#NA``_region_io.R 加格式分派(finngen / gcst_or),后者 β=log(OR)、SE=(log CI上−log CI下)/3.92

另修:05 里 match_mode=="rsid" 的过滤会把 position 模式的 Mahajan 静默剔掉,已放开。

Mahajan hg37 → hg38 的桥接方法

不用 liftover 链文件,改用两跳实测坐标表(对不上的直接丢弃,不做插值):

Mahajan chr:pos(hg37) --[1000G EUR.bim]--> rsID --[FinnGen R9]--> chr:pos(hg38)
步骤数量
1000G EUR.bim(hg37,带 rsID)8,539,903
FinnGen R9(hg38,带 rsID)18,708,460
两侧都命中,构成映射表7,737,656(占 bim 90.6%)
Mahajan 原始行21,508,698
成功映射到 hg387,359,770(34.2%)

覆盖率 34.2% 必须如实报告

桥接只能覆盖 1000G EUR 面板里的 854 万个 SNP,Mahajan 其余变异无 rsID 可依。但对共定位无实质影响:每个 ±500kb 区域仍剩一两千个 SNP,远超本流水线的区域下限(50)。 自检:rs7903146(TCF7L2) 转换后落在 hg38 10:112998590,与 FinnGen 实测一致,β 保持 0.300。

对齐后的结果

仅并发症(首轮)含 T1D/T2D(对齐版)
进入共定位的蛋白3040
共定位支持810
蛋白-疾病对1019
A 级候选靶点8(A1 1 + A2 7)9(A1 3 + A2 6)

每个结局的共定位蛋白数:糖网 6 · 黄斑 5 · T2D 4 · T1D 3 · 糖肾 1

新增进 A 级的是 NOTCH2(与糖网 + T1D + T2D 三性状共定位,脱靶 21)。ABO 也获得共定位支持,但只与基础病共定位、在并发症上无 MR 显著边,故不进候选清单。

跨病共定位从 1 个升到 3 个(APOE、NOTCH2、PAM),这正是纳入基础病后应有的变化——它反映的是"蛋白同时作用于糖尿病本身与并发症",解释时不能说成"跨并发症共享"

新靶点 NOTCH2 的下游信息(下游各层已同步重跑)

结果
共定位糖网 + T1D + T2D 三性状同簇,PP=0.755
MR 方向糖网 OR=0.598(保护)→ 干预方向为增强
外部复制MVP 糖网复制成功,p=3.08e-07
可成药性小分子/抗体均可及;已有 1 个 phase 2 药物,但方向相反/不明——不是可直接重定位的对象
视网膜表达星形胶质细胞(0.48, 32%) / Müller 细胞(0.42, 32%) / RPE(0.37, 25%)——胶质与 RPE 均有表达

NOTCH2 同时满足 MR + 共定位 + 外部复制三层,是本轮对齐后新增的、证据完整的候选。

对齐后 A 级 9 个靶点的可成药性:IFNAR1 仍是唯一"有药且方向一致"的(12 个药物);NOTCH2 有药但方向不符;其余 7 个 phase 0。

九·补二、新增两张对标导师 PPT 的图

导师我们新增状态
PPT Slide 2 共定位 UpSetanalysis/22_figure_coloc_upset.Rhyprcoloc_R9_dm/figures/coloc_upset.{png,pdf} + 出图矩阵 CSV 供核对✅ 已完成
PPT Slide 4/5 PheWAS 域分类散点analysis/23_figure_phewas_domain.R⚠️ 受限,见下

PheWAS 域分类图:改用 GWAS Catalog EFO 父类,已可用

第一版失败的原因:导师那张图的横轴(Activities / Body Structures / Cardiovascular / …)是 GWAS ATLAS 独有的 Domain 分类,他的 PheWAS 是逐 SNP 从 ATLAS 网页手工导出、文件自带 Domain 列。我们走 OpenGWAS API,实测其元数据:

  • subcategory 对主力数据集普遍为空ebi-a 4,529 条、ukb 2,719 条全部无值(占 66%)
  • category 只有 Continuous/Binary/Risk factor/Metabolites,是数据类型不是生理域
  • 结果 92.2%(10,118/10,976)落入 Unclassified,图无信息量

解决方案(2026-07-29):改用 GWAS Catalog 的 EFO 父类目录——官方策展、可引用,且比 ATLAS(停在 2019 年)更新。两个官方文件一次性下载到 /mnt/d/mrdata/gwascatalog/

文件来源内容
trait_mappings.tsvebi.ac.uk/gwas/api/search/downloads/trait_mappings110,339 行;EFO URI → Parent term
studies.tsv…/downloads/studies_alternative89,982 研究;GCST + PUBMEDID + MAPPED_TRAIT_URI

映射链(三级,无猜测):

  1. ebi-a-GCSTxxxxx → 直接取 GCST 号 → studies.tsv 的 EFO URI → 父类
  2. 其余数据集 → OpenGWAS 元数据的 pmidstudies.tsv 的 PUBMEDID → 父类
  3. 取不到 → 标 Unclassified,覆盖率在图注里显式披露
来源关联条数
GWAS Catalog(GCST 直连)3,628
GWAS Catalog(PMID 回连)2,172
未分类5,176
覆盖率全部关联 52.8% · Bonferroni 显著关联 51.9%

两个刻意的取舍

① 不用 OpenGWAS subcategory 兜底。 混用会让图上同时出现 Immune system disorder(GWAS Catalog) 与 Immune system(OpenGWAS)、Anthropometric 这类同义不同名的域 —— 两套分类体系混在一张图里,发表时是硬伤。宁可标 Unclassified 并如实披露(兜底只能多覆盖 238 条,2.2%)。 Unclassified 一律排到横轴最后一位。 它是条数最多的一栏,排首位会误导读图。

未覆盖的 47% 主要是 ukb-b-*(Neale lab UKB GWAS,多数无 PMID,2,719 条)、ubm-*(脑影像)、eqtl-*。要继续提高覆盖率需再接 UKB showcase 字段树,属下一步可选项。

图已符合本课题作图规范(全英文 + DejaVu Sans + theme_minimal + PNG/PDF 双份),每个域标注最强的 1 条关联,图注写明覆盖率与 P 值封顶(1e-300)。

九·补三、加跑 coloc.abf(PP.H4),两法交叉验证

为什么加

本课题此前只有 HyPrColoc。HyPrColoc 给的是"性状簇",不给两两 PP.H4,而 PP.H4 是子刊药靶文章最通用的判据(Nat Immunol 2023 SCALLOP 用 PP4 ≥ 0.8)。导师原实现也只跑了 HyPrColoclibrary(coloc) 加载了但零调用),所以这是两边共同的缺口。

新增 analysis/24_coloc_abf.R + analysis/25_coloc_compare.R,复用 05 的区域缓存。数据集构造:

  • 蛋白:type="quant", sdY=1(UKB-PPP 蛋白水平经秩逆正态变换,效应量即 SD 单位)
  • 疾病:type="cc", s=ncase/(ncase+ncontrol), N=ncase+ncontrol
  • 先验沿用 config:p1=p2=1e-4, p12=1e-5;coloc.abf 基于 Z²,等位定向不敏感

结果:83 对,两法高度一致

对数蛋白数
PP.H4 ≥ 0.82314
PP.H4 ≥ 0.73120
两法一致性对数
两法都支持19
仅 coloc.abf 支持4
仅 HyPrColoc 支持0
两法都不支持60

HyPrColoc 判阳的 19 对,coloc.abf 的 PP.H4 全部 ≥ 0.896,无一例外

蛋白疾病HyPrColoc PPcoloc.abf PP.H4PP.H3区域 SNP
APOE糖网0.9171.0000.0004,523
APOET2D0.9170.9990.0012,812
ABOT2D0.9960.9980.0023,231
APOE糖肾0.9170.9980.0014,523
APOET1D0.9170.9820.0124,702
PAMT1D0.7390.9800.0204,203
NUDT5糖网0.9450.9770.0145,327
ERMAP黄斑0.8990.9670.0193,978
PAM糖网0.7390.9590.0364,086
WARS糖网0.8940.9560.0434,195
NOTCH2T1D0.7550.9530.0462,605
NOTCH2T2D0.7550.9520.0481,387
GALNT3糖网0.8440.9480.0224,134
IFNAR1黄斑0.8370.9400.0463,854
APOL1黄斑0.8150.9260.0624,515
PAMT2D0.7390.9240.0762,031
APOE黄斑0.9170.9170.0444,523
NOTCH2黄斑0.7550.8970.0922,504
NOTCH2糖网0.7550.8960.1042,504

仅 coloc.abf 支持的 4 对(HyPrColoc 未检出任何簇):SIGLEC5–黄斑 0.887 · ACRBP–糖网 0.867 · TSPAN8–T2D 0.839 · LACTB2–糖网 0.800。这 4 个是新增候选线索,需单独评估。

★ 关键交叉验证:导师那 11 个"蛋白从未进簇"的蛋白

对 AGER、AIF1、ATP6V1G2、BCL2L15、BTN2A1、BTN3A2、CFB、HCG22、LTB、TNXB、TRIM40 共 38 个蛋白-疾病对跑 coloc.abf:

结果数量
PP.H4 ≥ 0.80 / 38
PP.H3 = 1.000(两个不同的因果变异)37 / 38

PP.H3 = 1.0 的含义就是"蛋白与疾病在该区域是两个不同的因果变异",即 LD 巧合。两个独立方法(HyPrColoc 的簇成员判定、coloc.abf 的 H3/H4 分解)给出完全一致的结论。

原因也很清楚:

MHC 区(chr6)占比
11 个"从未进簇"蛋白10 / 11(仅 BCL2L15 在 chr1)
10 个共定位成功蛋白0 / 10

MHC 的长程 LD 让多个疾病在该区域共享 HLA 信号而聚成一簇,但蛋白的 cis-pQTL 是另一个因果变异 —— 这正是 MHC 区为什么是假阳性雷区 说的情形,这次拿到了两法互证的定量证据。

定论

本课题共定位层的最终判据改为:PP.H4 ≥ 0.8(coloc.abf,主)+ 蛋白必须在 HyPrColoc 簇内(辅,用于回答跨病共享)。两条同时满足的 19 对 / 10 个蛋白即为共定位支持的候选。

十、过程中修掉的一个问题

首次汇总(阶段 09/16)输出 显著关联总数: 0。原因是 analysis/09_report.py 里家族名同样写死为 R13_dm/R13_amd,第七节改动清单遗漏了这一处。已改为 R9_dm 并重跑阶段 16,修复后为 106 条显著关联 + 10 张下游表

教训:本流水线的"写死 R13"分布在 07/09/10/11/17/18–21 多个脚本里,换 release 时需逐个排查,仅靠 run_pipeline.sh 传参不够。

十一、隔离验证

目录大小内容
/home/research/mr-pipeline/results(R13 主线)13Gscreen_R13_dm screen_R13_amd hyprcoloc_R13_* eqtl_coloc shortlist完好未动
/home/research/mr-pipeline-r9/results(本轮)4.0Gscreen_R9_dm hyprcoloc_R9_dm ldsc_R9_dm network_R9_dm

两者无任何文件重叠,R13 主线结果与备份包三重可回滚。

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