孟德尔随机化标准流程代码示例

在这篇博客中,我们将通过R代码来探索非酒精性脂肪肝(NAFLD)对COVID-19严重程度的可能影响。我们将利用两个R包:TwoSampleMRMRPRESSO,来执行Mendelian Randomization (MR)分析,这是一种利用基因变异作为工具变量来估计暴露和结果之间因果关系的统计方法。

开始之前

首先,我们需要安装并加载必要的R包:

rCopy code

# 安装(如果尚未安装) install.packages("TwoSampleMR") install.packages("MRPRESSO") # 加载包 library(TwoSampleMR) library(MRPRESSO)

数据准备

我们的目标是研究NAFLD对COVID-19严重程度的影响。为此,我们首先需要准备关于NAFLD的暴露数据:

rCopy code

# 读取暴露数据 exposure_dat <- read_exposure_data(filename = "./NAFLD.txt", sep="\t", snp_col = "rsids", effect_allele_col = "alt", other_allele_col = "ref", beta_col = "beta", se_col = "sebeta", pval_col = "pval", eaf_col = "af_alt") # 对数据进行命名,便于后续处理 exposure_dat$phenotype <- "NAFLD"

数据处理

为了确保我们分析的基因变异之间没有连锁不平衡,我们将对数据进行clump处理:

rCopy code

# 连锁不平衡去除 exposure_dat <- clump_data(exposure_dat)

结果数据获取

接下来,我们需要获取COVID-19作为结果的数据:

rCopy code

# 在线读取COVID-19结果数据 outcome_dat <- extract_outcome_data(outcomes = "ebi-a-GCST011081", snps = exposure_dat$SNP)

数据协调

为了进行MR分析,暴露和结果数据需要进行协调,确保基因变异的方向一致:

rCopy code

# 数据协调 dat <- harmonise_data(exposure_dat = exposure_dat, outcome_dat = outcome_dat, action = 2)

分析与敏感性测试

进行MR分析前,我们先计算F值,以评估使用的工具变量的有效性,并进行敏感性测试:

rCopy code

# F值计算与筛选 dat$F <- (dat$beta.exposure/dat$se.exposure)**2 dat <- subset(dat, F>10) # MR分析 mr_result <- mr(dat) # 敏感性测试 het <- mr_heterogeneity(dat) ple <- mr_pleiotropy_test(dat) mr_presso(data = dat, BetaOutcome = "beta.outcome", BetaExposure = "beta.exposure", SdOutcome = "se.outcome", SdExposure = "se.exposure")

结果呈现

最后,我们通过几种图表直观展示MR分析结果:

rCopy code

# 结果图表展示 mr_funnel_plot(singlesnp_results = mr_singlesnp(dat)) # 漏斗图 mr_forest_plot(mr_singlesnp(dat)) # 森林图 mr_scatter_plot(mr_results = mr_result, dat = dat) # 散点图

通过这些步骤,我们可以评估非酒精性脂肪肝(NAFLD)对COVID-19严重程度的潜在影响,提供更深入的理解和新的研究方向。这种基于Mendelian Randomization的方法为我们提供了一种强有力的工具,来探讨各种生物标志物与疾病之间的因果关系。

欢迎关注我的其它发布渠道