Skip to content

共定位方法选型:为什么只用 coloc.abf

日期:2026-08-07 结论:第 5 步只用 coloc.abf;HyPrColoc 与 SuSiE 本轮不做; 不纳入 T1D/T2D 对照臂

本页记录选型过程中逐条查证的事实与被推翻的说法,供写 Methods 与回应审稿直接引用。


一、文献底本(全部核实到精确出处)

#文献方法出处
L1Giambartolomei C, Vukcevic D, Schadt EE, Franke L, Hingorani AD, Wallace C, Plagnol V. Bayesian test for colocalisation between pairs of genetic association studies using summary statistics.coloc(abf)PLoS Genet 2014;10(5):e1004383 · PMID 24830394 · PMC4022491 · doi 10.1371/journal.pgen.1004383
L2Foley CN, Staley JR, Breen PG, Sun BB, Kirk PDW, Burgess S, Howson JMM. A fast and efficient colocalization algorithm for identifying shared genetic risk factors across multiple traits.HyPrColocNat Commun 2021;12:764 · PMID 33536417 · PMC7858636 · doi 10.1038/s41467-020-20885-8
L3Wallace C. A more accurate method for colocalisation analysis allowing for multiple causal variants.coloc + SuSiEPLoS Genet 2021;17(9):e1009440 · PMID 34587156 · PMC8504726 · doi 10.1371/journal.pgen.1009440
L4Hwang S, Pullin J, Wallace C, Whittaker J, Burgess S. Systematic comparison of colocalization methods using protein quantitative trait loci.四法基准(pQTL)bioRxiv 2025-11-07 · doi 10.1101/2025.11.07.686776
L5Zhao JH, et al. Genetics of circulating inflammatory proteins identifies drivers of immune-mediated disease risk and therapeutic targets.PP4 ≥ 0.8 的用法Nat Immunol 2023 · PMC10457199

L4 只读到摘要

bioRxiv 反复返回 429 / Cloudflare 1015,全文未获取。本页引用 L4 的内容全部出自摘要, 已逐句核对。引用时须标注这一点。

★★ L4 是本次选型最有分量的依据

作者阵容含 coloc 原作者 WallaceMR 方法学的 Burgess。设计是用 pQTL 数据构造「本该共定位」的场景再看四种方法(coloc、coloc-SuSiE、prop-coloc、colocPropTest)认不认。摘要原文:

"In the baseline scenario, all methods report colocalization for the majority of proteins. In other scenarios, methods do not consistently report colocalization, they often report non-colocalization, and they often disagree. In the worst-case scenario, colocalization was only agreed by all four methods for 20% of proteins, despite our experiment being constructed to select for cases where colocalization is expected. This suggests caution in performing and interpreting colocalization analyses is warranted."

它开篇提的正是我们要回答的问题:

"it is unclear whether a non-colocalization result should be taken as a definitive sign that two traits do not share a genetic cause in the region of interest, or merely as suggestive evidence."

「不共定位」不能当作「不共享因果变异」的定论。 这就是 v4 把共定位定为措辞升级关卡而非否决点的直接依据。

★ 另注:L4 明确把「同一蛋白但换平台 / 换人群」列为方法不一致的高发场景 —— 这与我们第 4a/4c 步的观察一致,可交叉引用。


二、逐条问答(问题来自用户,答案均经实测)

Q1:共定位是用 HyPrColoc 那个吗?

本课题此前的定论(2026-07-29)原文

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

SuSiE 的定位(2026-07-31)原文

正文只放 HyPrColoc + coloc.abf;SuSiE 连同其一致性参数与收敛率写进补充材料的方法学局限, 不作判据。

实测依据:SuSiE 32 对尝试、12 对两侧收敛、只有 8 对(25%)给出 PP.H4


Q2:只有 1 个结局的 14 个蛋白,能跑 HyPrColoc 吗?是不是必然不在簇内?

能跑,而且全跑了。 脚本里 MIN_DIS <- 1,性状 = 蛋白 + 它自己的显著结局; 单结局时是 2 个性状,满足 HyPrColoc 下限。

旧仓实测这 14 个的判定:

判定蛋白
支持(蛋白与疾病共定位)ERMAP · GALNT3 · IFNAR1 · WARS
证据不足(蛋白进簇但 PP 未过阈)ACRBP · IL7R · PAM · TPPP3
不支持(未检出共享簇)AIF1 · AOC1 · LACTB2 · VWC2L
不支持(仅疾病成簇,蛋白未进簇)BTN3A2 · NUDT5

「单结局 ⇒ 必然不在簇内」不成立,4 个拿到支持。


Q3:「仅疾病成簇、蛋白未进簇」是什么原因?是 HyPrColoc 不适用吗?

不是方法失效,恰恰是方法在起作用。NUDT5 的原始输出:

n_traits = 3
簇 = "Retinopathy, T2D_mahajan"     posterior_prob = 0.947
protein_in_cluster = FALSE          candidate_snp  = 10:12265895

含义:两个疾病之间共享一个因果变异,而 NUDT5 的 cis-pQTL 是另一个变异 —— 等价于 coloc 的 H3(两个不同因果变异),即「MR 关联可能是 LD 巧合」的直接证据。

对照 IFNAR1(干净的共定位):

n_traits = 2
簇 = "IFNAR1, Maculopathy"          posterior_prob = 0.837
protein_in_cluster = TRUE           candidate_snp  = 21:33353501

★★ 但由此发现:旧的 HyPrColoc 判定不可移植到本轮

NUDT5 那个簇是 Retinopathy + T2D_mahajan —— T2D_mahajan 是对照臂,不是并发症。 旧仓把 T1D/T2D 也当「疾病」喂进了 HyPrColoc。

而本轮口径只有五个并发症。在本轮里 NUDT5 只有 Retinopathy, 性状 = {NUDT5, Retinopathy} = 2 个 → 「疾病成簇而蛋白不在簇内」在逻辑上不可能出现BTN3A2 同理。

旧的四类标签一个都不能当本轮的预期。

★ 另一实情:对单结局蛋白,HyPrColoc 只有 2 个性状,聚簇机制没派上用场, 基本退化成又一次两两共定位,不应被表述为「多性状共享证据」


Q4:HyPrColoc 有 PP.H4 吗?

没有。它不输出 PP.H0–H4 中的任何一个。

方法原始输出列
coloc.abfPP.H0 PP.H1 PP.H2 PP.H3 PP.H4
HyPrColoctraits posterior_prob regional_prob candidate_snp posterior_explained_by_snp dropped_trait

PP.H0–H4L1(coloc)特有的框架 —— 对一对性状穷举 5 个互斥假设 (H0 都无信号/H1 只 A/H2 只 B/H3 两者信号但因果变异不同H4 共享同一因果变异)。

L2(HyPrColoc)不走这个框架:它是多性状的确定性贝叶斯分裂聚类, posterior_prob簇层的量。

实测三条差异

  1. 数值不同:19 对两法都有值的,无一相等(差值中位 0.086、最大 0.2)
  2. 分析单元不同APOE 的四个疾病 PP.H4 各不相同(0.9175 / 0.9982 / 0.9999 / 0.9992), 但 posterior_prob 四个全是 0.9133 —— 因为它们同属一个簇。 多疾病蛋白中 posterior_prob 100% 组内相同PP.H4 0% 组内相同
  3. 覆盖率差极远:142 对里 posterior_prob 有 123 对是 NA(蛋白没进簇 / 没形成簇), 其中 13 对 PP.H4 ≥ 0.8 在 HyPrColoc 侧是 NA (NUDT5 0.977 · PAM 0.959 · SIGLEC5 0.887 · ACRBP 0.867 · LACTB2 0.800 …)

因此「两条同时满足」的实质要写准

不是「两个 PP.H4 都 ≥ 0.8」,而是 「PP.H4 ≥ 0.8 蛋白与该疾病落在同一 HyPrColoc 簇内」。 而且它是把 NA 当成不通过 —— 而 NA 混合了「有信息的不共享」与「簇根本没形成」两种情形。


Q5:T1D / T2D 对照臂要不要纳入共定位?

不纳入。 三条理由:

理由一:共定位证明不了「糖尿病驱动」

若某蛋白在同一位点既与糖网共定位、又与 T2D 共定位,可能是 ①蛋白→糖尿病→糖网(中介)②蛋白分别独立影响两者 ③三者共享上游机制。 共定位对这三种情形给出的结果完全一样 —— 它只回答「是不是同一个因果变异」, 不回答「是不是经由糖尿病中介」

→ 正确工具是 MVMR / 两步中介(已在待办清单)。

理由二:反向推理同样不成立

「与糖网共定位、但不与 T2D 共定位 ⇒ 并发症特异」——不能这么推。 按 L4,即便在本该共定位的构造场景里,最坏情形四法全体一致也只有 20%; 「非共定位」结果普遍出现且方法间常不一致

阳性推不出中介、阴性推不出特异,做出来是一张不能支持任何结论的表, 而它摆在正文里读者会自然按「糖尿病驱动」去读。

理由三:口径与流程

第 5 步在 v4 里的职责是并发症候选的措辞升级关卡;对照臂不是候选、不参与升级。 纳入会把漏斗从 52 对变成 70 对,与前面每一步都对不上。

这条更正了我先前的建议

我曾建议「对照臂单独成表,作为糖尿病驱动的位点级证据,比 MR 效应量对比更强」。 那是 overclaim —— 共定位无法建立中介关系。已作废。


Q6:HyPrColoc 没有 PP.H4,为什么 C1R 还写「PPH4 = 0.86」?

查证:C1R 全文只提 hyprcoloc R package,从头到尾没有 coloc.abf、 没有 Giambartolomei、没有 PP.H0/H1/H2/H3。Methods 原文:

"multi-trait colocalization analysis using HyPrColoc method30 was performed … Colocalization analysis was performed using the hyprcoloc R package69"

答案:他们用 HyPrColoc,却借用了「PPH4」这个词。

为什么说得通:HyPrColoc 簇层后验的含义,他们 Methods 自己写的是 "the probability that both the protein and associated diseases share a single causal variant" —— 这恰好等于 coloc 的 H4 假设。对只有 2 个性状的情形,两者概念上确实对应。

但严格说不规范PP.H4 是 coloc 的 H0–H4 体系里的一项,HyPrColoc 没有那个体系。

★ 对我们的直接后果

我们的 PP.H4 ≥ 0.8 不能说「依据 C1R」 —— C1R 的 0.8 是 HyPrColoc 簇层后验的阈值。 必须挂 Zhao 2023 Nat Immunol(L5)coloc 原文(L1)

Q7:那我们到底用哪个?

用 coloc.abf。理由不是「哪个方法更好」,而是两个研究问的问题不同:

C1R本课题
研究对象共病 —— 蛋白天然关联 ≥2 个病糖尿病并发症,28 个蛋白中 14 个只关联 1 个结局
分析单元多性状簇蛋白 × 结局 的对(整条漏斗按对数走:57→52)
多性状聚簇有东西可聚对那 14 个蛋白只有 2 个性状,聚簇机制空转

HyPrColoc 是为多性状设计的;我们一半候选只有 1 个结局, 用它等于拿多性状工具做两两分析 —— 能跑,但用不上它的长处。

coloc.abf 恰好匹配:两两、给 PP.H0–H4 全谱、分析单元与漏斗一致、 阈值有独立文献支撑(L5)。

HyPrColoc 有一件 coloc.abf 做不了的事 —— 留作后续描述性分析

有 ≥2 结局的那 14 个蛋白,它能回答 「这几个并发症是共享蛋白的那个变异,还是它们自己共享另一个变异?」 (即 NUDT5 那种「疾病成簇、蛋白不在簇内」)。

→ 建议后续对这 14 个蛋白单独跑,回答并发症之间是否共享, 不作判据、不在第 5 步做。

Q8:coloc.abf 要不要求「蛋白进簇」?这里有官方定义吗?

不要求 —— 因为 coloc.abf 里根本没有「簇」这个概念。

coloc 官方文档(包作者 Wallace)明确两点:coloc.abf 比较 "exactly two datasets", 且 "makes the simplifying assumption that each trait has at most one causal variant in the region"

我们的调用就是两个数据集:

r
coloc::coloc.abf(d_prot, d_dis, p1 = P1, p2 = P2, p12 = P12)

蛋白是两个性状之一,按构造永远在里面,不存在被剔出去的可能。

官方定义就是 H0–H4 这五条(coloc 官方文档 / L1 原始设定):

原文定义
H0neither trait has a genetic association in the region
H1only trait 1 has a genetic association in the region
H2only trait 2 has a genetic association in the region
H3both traits are associated, but with different causal variants
H4both traits are associated and share a single causal variant

★★ 两个方法的对应关系

HyPrColoccoloc.abf
蛋白簇内、簇后验高PP.H4 高
蛋白不在簇内,疾病自己成簇PP.H3 高(两性状都有关联但变异不同)
蛋白没关联PP.H1 / PP.H2

差别在信息编码的位置,这决定了误读风险:

  • coloc.abfPP.H4 一个数字已经把「蛋白是否共享」编码进去,无需再查成员资格
  • HyPrColocposterior_prob簇层的,只说「簇内共享得多强」; 「哪些性状在簇里」是另一条独立信息traits 列)—— 两条必须一起看

Q9:怎么正确读别人跑的 HyPrColoc 产物?(F:\project\12

一份此前由他人用同一批数据跑的 HyPrColoc 结果(sum_plot.csv / bin.csv, 覆盖 20 个蛋白、4 个并发症 + T1D/T2D)。实测三个坑:

坑 1:posterior_prob 单看几乎全过

指标数值
posterior_prob ≥ 0.8 的行98 / 104 = 94.2%
这样会判阳性的蛋白19 / 20
其中蛋白根本没进簇的行77

被虚假计入的 11 个:AGER AIF1 ATP6V1G2 BCL2L15 BTN2A1 BTN3A2CFB HCG22 LTB TNXB TRIM40

这个读法没有鉴别力:MHC 区并发症彼此本就强烈共享信号,簇后验自然贴近 1,与蛋白无关。

坑 2:bin.csv 编码的是输入组合,不是簇成员

检验结果
bin 的 1 == 输入的疾病组合100%
bin 的 1 == 实际簇成员48.5%

而且 bin.csv 没有蛋白那一列 —— 用它根本无从判断蛋白进没进簇。例:

AGER  输入 {黄斑, 神经, 视网膜}   bin 三个全标 1
      实际簇 {黄斑, 神经}          ← 视网膜被剔除,bin 里看不出来

坑 3:dropped_trait 列 104 行全是 NA

被剔除的性状没有被记录,只能靠比对 traitsdisease_combination 才能发现。

正确读法只有一条

sum_plot.csvtraits,确认里面有没有字面值 protein。 该文件把蛋白这个性状就命名为 protein

★★ 「蛋白必须进簇」的官方依据(三条)

这不是额外判据,是 HyPrColoc 自己对「共定位」的定义。

① HyPrColoc 原文(L2 · Foley 2021 · PMC7858636)

"each cluster comprises traits sharing a causal variant"

★ "a trait is deemed not [to] colocalize with any other trait in the sample" —— 当它在聚类后仍单独留下时

原文同时确认假设:"at most one causal variant in the genomic region for each trait"。

② HyPrColoc 官方 vignette

"HyPrColoc is Bayesian divisive clustering algorithm for identifying clusters of traits which colocalize at distinct causal variants in a genomic region."

traits 列 = "a cluster of putatively colocalized traits"; 文档并有 "trait 6 is dropped from this cluster" 的示例。

③ C1R 自己的 Methods(第 387–388 行)

"This approach estimates the probability that both the protein and associated diseases share a single causal variant"

→ 估计量里明写包含蛋白。

一句实话

没有任何文献写「用 HyPrColoc 做 pQTL–疾病共定位时必须核对蛋白是否在簇内」这样的操作说明 —— 因为这不是操作步骤,而是定义本身traits 列直接告诉你哪些性状共定位; 蛋白不在其中,方法就已经回答了「不共定位」。

准确表述应为:「蛋白进簇」不是额外判据,而是读懂 HyPrColoc 输出的必要条件

实证:LTB

traits = "retinopathy, nephropathy"   0.9997
traits = "diabete1, nephropathy"      0.9938
traits = "diabete1, retinopathy"      0.9948
候选变异 6_31737349_G_A(chr6:31.74Mb,经典 MHC 内)

8 行没有一行含 protein 0.9997 说的是「视网膜病变与肾病共享同一因果变异」, LTB 蛋白被排除在簇外 —— 不是蛋白–疾病共定位。

Q10:★★ 两个方法的全表对账

按正确读法(蛋白进簇 + 后验 ≥ 0.8),两边都跑了的 19 个蛋白

类别数量蛋白
完全一致7APOE NUDT5 ERMAP WARS PAM GALNT3 IFNAR1
分歧(可解释)2APOL1(他们 0.81 合格;我们 4X 因表位伪影否决)· NOTCH2(他们 0.776 差一点,我们 0.897)
蛋白未进簇 → 我们 weak10AGER AIF1 ATP6V1G2 BCL2L15 BTN3A2 CFB HCG22 LTB TNXB TRIM40
蛋白未进簇 → 我们 medium1BTN2A1(0.635,擦边)

HyPrColoc 侧合格的 8 个及其后验APOE 0.9997 · NUDT5 0.9337 · ERMAP 0.8989 · WARS 0.8943 · PAM 0.8913 · GALNT3 0.8437 · IFNAR1 0.8370 · APOL1 0.8106。

不同软件、不同人、不同时间跑出来,排序几乎相同。 这是第 5 步一次有分量的旁证。

APOL1 的启示

它共定位 0.81 却是表位伪影 —— 共定位识别不出表位问题。 两者查的是不同的东西,不能互相替代。

Q11:MHC 区能不能做共定位?

能跑,但结果不可直接解释。

coloc.abfHyPrColoc 假设「每个性状在该区域至多一个因果变异」。 MHC 有大量独立信号、LD 可延伸数 Mb —— 前提在事实上不成立。 前提垮了,后验被推向 H3,而这可能只是「区域内不止一个信号」造成的。

文献里的标准做法是排除:Zheng 2020 Nat Genet 在工具选择阶段就把 chr6:26–34 Mb 的 SNP 和蛋白一起剔除。我们 v4 决定不排除,是为了保住 CFB(已上市药靶 iptacopan)与 AGER —— 代价就是共定位这一层对它们判不了。

真能处理 MHC 的三条路

  1. 条件分析(COJO)剥离主信号后再 coloc
  2. coloc-SuSiE(允许多个因果变异)—— 但我们实测 LD 面板失配导致整体降级(s 中位 0.827)
  3. HLA 等位基因层面共定位

★ 措辞修正

原先写「MHC 是 coloc.abf 方法失效」。现在看到第二个方法(HyPrColoc)也把这些蛋白排除在簇外, 应改写为「两种共享同一假设的方法一致提示蛋白与疾病信号不同,待条件分析核验」。

但这不构成独立确证 —— 两法共享同一假设,可能以同样方式失效。

★ 另注:C1R 全文与 HyPrColoc 原文(L2)都一次没提过 MHC 或 HLA(均已全文核查), 而 C1R 还把 chr6:26.1 Mb 的 BTN2A1 当共定位结果报出。 这一区的处理在两篇里都是空白,不可援引为先例

案例:LTB 很可能是 HLA 信号的搭车者

LTB 位于 chr6:31.58 Mb,糖尿病对照臂 T1D 的 OR = 3.387, 比三个并发症(2.908 / 2.328 / 1.919)都大。 而 HyPrColoc 的簇是 {T1D, 肾病} 0.9938、{T1D, 视网膜} 0.9948, 候选变异 chr6:31.74 Mb —— T1D 与并发症在 MHC 内共享同一变异,蛋白不在其中

T1D 最强的遗传信号就是 HLA。 合起来读:LTB 与并发症的 MR 关联 很可能是被 LD 上的 HLA-T1D 信号带出来的。⚠️ 仍非定论,理由同上。

Q12:★ 更正 —— C1R 的「moderate」我读错过

我曾说「C1R 明文纳入 moderate,可映射为 0.5 ≤ PP.H4 < 0.8」。这是错的,撤回。

事实:其 Methods 确有 "supported by high or moderate colocalization probabilities" 一句, 但从未给出 moderate 的数值定义,且四个优先候选是 0.86 / 0.99 / 0.86 / 0.94,全部 > 0.8。 把 moderate 映射到 0.5–0.8 是我自己编的

从原文能站住的只剩两条:

  1. 共定位的动词是 prioritize,不是 exclude
  2. 方向相反的 BTN2A1 / FGF5 被报告而非删除(Supplementary Figure 1)

另算一笔账:9 个共定位达标 = 4 个优先 + 2 个方向相反 + 3 个正文完全没交代去向


三、最终选型

依据
方法只用 coloc.abfL1;输出 PP.H0–H4,两两、可解释、审稿人最熟
HyPrColoc不做给的是簇层量、无 PP.H4(Q4);旧判定不可移植(Q3)
SuSiE不做出结果率仅 25%(2026-07-31 定论);L4 亦显示其与 coloc 常不一致
输入52 对 / 28 蛋白不含对照臂Q5
判据PP.H4 ≥ 0.8 升级措辞;0.5–0.8 仅进补充表L5
否决权L4:非共定位不能当定论
MHC 29 对照常算照常报,但不单独升级v4;单因果假设在该区不成立

★ 2026-08-08 用户拍板:下游深挖的输入集

决定内容
第 6 步输入集只用共定位支持的 11 个蛋白PP.H4 ≥ 0.8,全部非 MHC)
MHC 且 PP.H4 < 0.8不进入后续分析,改走「MHC 专用核验」(条件分析 + HLA 等位基因层面)
依据与 C1R 同口径(对优先候选做下游注释);且本轮 HyPrColoc 对账 7/8 一致(Q10)

采用该口径必须同时做到三件事,否则站不住

① 报分母 —— C1R 写的是 "Of the 40 proteins, nine showed…"。 我们对应写「52 对 / 28 蛋白中,13 对 / 11 蛋白 PP.H4 ≥ 0.8」。分母不能消失。

② 落选者照样报告并注明类别 —— C1R 把 BTN2A1/FGF5 放进补充图并给了解释。 我们的补充表须逐个标明属于:MHC 假设不成立(11)/ H4 主导但未达线(4)/ 提示不同变异(2)。

③ 必须写 MHC 那一段 —— 否则 CFB(已上市药靶 iptacopan)与 AGER(经典靶点) 在外部复制稳健的情况下掉出深挖名单,无法向审稿人交代。建议措辞:

该区域内 coloc.abf 与 HyPrColoc 均假设每性状至多一个因果变异,此假设在 MHC 不成立; 两法一致提示蛋白与疾病信号不同,但因共享同一假设不构成独立确证。 故这些候选单列报告,其判定待条件分析与 HLA 等位基因层面核验。

写进去,它们就是「已知待核验」而非「被悄悄丢掉」。

写 Methods 时必须带上的三句

  1. 共定位用 coloc.abf(L1),先验 p1=p2=1e-4p12=1e-5,区域 ±500 kb
  2. 共定位不用于排除候选;依据 L4,非共定位结果不足以断定不共享因果变异
  3. 本轮未使用 HyPrColoc 与 coloc-SuSiE,理由与局限见 Limitations

相关:第 5 步实录 · 分析流程定稿 v4

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