# 微信公众号 CodeMed
# 【 Heterogeneity异质性
# Cochran's Q test & I2 】
library(TwoSampleMR)
# 前期准备
exp_data <- extract_instruments(
outcomes = "ebi-a-GCST009541")
out_data <- extract_outcome_data(
snps = exp_data$SNP,
outcomes = "ieu-b-102")
dat <- TwoSampleMR::harmonise_data(
exposure_dat = exp_data,
outcome_dat = out_data)
dat <- subset(dat,mr_keep)
# 微信公众号 CodeMed
# 【底层】meta分析 单个SNP
res_single1 <- mr_singlesnp(dat,all_method = c("mr_ivw"))
# 计算I-squ
library(metafor)
res_single2 <- res_single1[grep("^rs",res_single1$SNP),]
res_meta <-metafor::rma(yi=res_single2$b, # 填入res的b, 下同
sei = res_single2$se,
weights = 1/dat$se.outcome^2,
data=res_single2,
method = 'FE')
res_meta
# 计算 Cochran’sQ
res_hete <- TwoSampleMR::mr_heterogeneity(dat)
res_hete
# # Isquare 计算
library(MendelianRandomization)
MRInputObject <- MendelianRandomization::mr_input(
bx = dat$beta.exposure,
bxse = dat$se.exposure,
by = dat$beta.outcome,
byse = dat$se.outcome,
snps = dat$SNP )
#
MendelianRandomization::mr_ivw(
object = MRInputObject,model = "fixed")
# 微信公众号 CodeMed
标签: