主题
04 · 甲基化 SMR
对应脚本:03_meqtl_smr/03a_make_ma.sh(建 .ma)+ 03c_fix_and_run.sh(重映射 + 跑 SMR) 方法:SMR + HEIDI(Zhu 2016)—— summary-based MR,检验"甲基化→疾病",HEIDI 类共定位。
核心坑:SNP ID 对不上
血 mQTL 的 .esi 用 chr:pos 命名,GWAS 和参考 panel 用 rsID,直接跑 SMR 会"no SNPs in common"。
解法:rsID 是跨 build 稳定的,用 EUR.bim 把 .esi 的 chr:pos 映射回 rsID。
bash
# EUR.bim: chr:pos -> rsID
awk 'NR==FNR{rs[$1":"$4]=$2; next} {k=$1":"$4; if(k in rs) $2=rs[k]; print}' \
OFS='\t' "$BIM" "$ESI.orig" > "$ESI"改前先备份 .esi.orig(可回滚)。3.1M/3.49M SNP 匹配上。
跑 SMR
bash
"$SMR" --bfile EUR --gwas-summary "$k.ma" \
--beqtl-summary US_Blood --out "${k}_US_Blood" \
--diff-freq-prop 0.5 --peqtl-smr 5e-8对 DR_strict / AMD(FinnGen) / AMD_iamdgc 三个结局各跑一遍。
robust 判定(在 06 里):FDR<0.05 且 HEIDI 可计算且 p_HEIDI>0.05。
★ 2026-08-01 修:HEIDI 必须三分类
原写法是 heidi_pass := is.na(p_HEIDI) | p_HEIDI > 0.05, 把 p_HEIDI 算不出来(NA)当成了"通过"。HEIDI 算不出通常是区域内工具 SNP 太少, 此时无法排除连锁——与"排除了连锁"是相反的意思。
现改为:
r
heidi_state := fifelse(is.na(p_HEIDI), "not_evaluable",
fifelse(p_HEIDI > 0.05, "pass", "fail_linkage"))
robust := fdr < 0.05 & heidi_state == "pass" # NA 不算通过not_evaluable 的那批单独写入 smr_heidi_not_evaluable.csv,留档而不是丢弃。
真实结果(meQTL 稳健命中,★已按 2026-08-01 新判据)
meqtl_robust=1:CASP10 / TNFRSF10A(AMD)、TNXB(AMD+DR,但 TNXB 是 MHC-LD 假象,已标 caveat)。
★ APOE 与 AGER 已撤下——它们在目标基因里的命中全部是 p_HEIDI = NA, 严格判据下不计入稳健。旧口径的虚高比例:DR 43.7%、AMD 19.6–25.0%。
✅ US_Blood 出处已查明(2026-07-24)
.flist 内部路径 /mnt/data1/EPICQC/UnderstandingSociety/... + EPIC 芯片 CpG 探针(12.6 万)证明:US_Blood = Understanding Society(英国 UKHLS)全血 mQTL,SMR 官方格式(同目录有配套 Hannon et al. 血数据集;__MACOSX 痕迹说明由用户下载)。不再是待核实项,发表时按官方下载页正式引用即可。详见 07 审计 · 更正1。
⚠ 关于 --diff-freq-prop 0.5(已更正先前说法)
官方文档:--diff-freq(默认 0.2)逐 SNP 剔除频率差>0.2 的 SNP —— 本步没动它、仍在剔坏 SNP。--diff-freq-prop(默认 0.05)只是"被剔占比超阈值就报错中止"的保险丝,设 0.5 只是允许更多 SNP 被剔而不中止,不改变用哪些 SNP。英国 mQTL vs 芬兰 GWAS 频率天然有差,抬高它是正常用法。
📋 被剔 SNP 数(发表方法段直接引用,*.snp_failed_freq_ck.list)
| 结局 | 因频率差被剔 SNP 数 | 分析探针数 |
|---|---|---|
| AMD (FinnGen) | 1,023 | 124,401 |
| DR-strict (FinnGen) | 982 | 124,401 |
| AMD (IAMDGC) | 534 | 125,252 |
逐 SNP 频率 QC(--diff-freq 0.2)照常剔除了这些频率不一致的 SNP —— 证明质控在起作用,--diff-freq-prop 0.5 只是没让分析因此中止。