TwoSampleMR是MR-Base数据库开发团队提供的R包,可以调用MR-Base数据库中已有的gwas结果,来进行2SMR分析,官方文档链接如下
https://mrcieu.github.io/TwoSampleMR/
2SMR分析需要两个输入文件,第一个文件为遗传变异与暴露因素的gwas结果,第二个文件为遗传变异与结局变量的gwas结果。对于暴露因素相关的gwas结果,TwoSampleMR支持读取自定义的结果,同时也支持直接调用MR-Base中的结果;对于结局变量相关的gwas结果,仅支持调用MR-Base中的结果。
分析的pipeline示意如下
分为了以下4大步
1. read exposure data
读取暴露因素的gwas结果,支持自定义,文件内容示意如下
对于上述文件,读取的代码如下
代码语言:javascript复制exposure_dat <- read_exposure_data(exp_file)
2. read outcome data
读取结局变量的gwas结果,仅支持读取MR-base数据库中的gwas结果,需要google账号,读取的代码如下
代码语言:javascript复制ao <- available_outcomes()
outcome_dat <- extract_outcome_data(
snps=exposure_dat$SNP,
outcomes=7)
3. Harmonise data
调整暴露因素和结局变量的gwas结果,主要目的
- 将SNP位点统一调整成正链
- 根据allele和频率判断两个gwas结果中的SNP位点是否一致,不一致的进行去除
同一个位点在两个gwas结果中链的方向不一致的情况示意如下
exposure effect = 0.5 effect allele = A other allele = G outcome effect = -0.05 effect allele = C other allele = T
方向不一致的位点只需要统一调整成正链就可以了,snp位点不一致的情况示意如下
exposure effect = 0.5 effect allele = A other allele = G outcome effect = -0.05 effect allele = A other allele = C
从allele可以看出,这两个位点是不一致的,这样的位点需要被去除。这部分对应的代码如下
代码语言:javascript复制dat <- harmonise_data(exposure_dat, outcome_dat)
4. 运行MR分析
协整之后就可以进行MR分析了,对应的代码如下
代码语言:javascript复制res <- mr(dat)
默认采用多种方法进行MR分析。其中MR-Egger回归和IVM方法还支持进行异质性的检验,用法如下
代码语言:javascript复制mr_heterogeneity(dat)
基因多效性则通过MR-Egger回归的截距进行判断,代码如下
代码语言:javascript复制mr_pleiotropy_test(dat)
TwoSampleMR对2SMR的过程进行了高度封装,保证了分析流程的易操作性,高准确度,美中不足的是,结局变量的gwas结果不支持自定义,缺乏了一丝灵活性。