Skip to content

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 的 .esichr: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=1CASP10 / 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,023124,401
DR-strict (FinnGen)982124,401
AMD (IAMDGC)534125,252

逐 SNP 频率 QC(--diff-freq 0.2)照常剔除了这些频率不一致的 SNP —— 证明质控在起作用,--diff-freq-prop 0.5 只是没让分析因此中止。

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