【孟德尔随机化】TwosampleMR服务器过于拥挤……

2023-11-03 15:12:05 浏览数 (1)

最近大家学习MR热情空前高涨,导致服务器常常拥堵。。。

就算不clump也还是极其卡顿:

难道真的要从vcf开始处理数据吗?

代码语言:javascript复制
 # remotes::install_github("mrcieu/gwasvcf")

  # suppressWarnings(suppressPackageStartupMessages({
  #   library(gwasvcf)
  #   library(VariantAnnotation)
  #   library(dplyr)
  #   library(magrittr)
  # }))

  # data0=VariantAnnotation::readVcf("../Confounders/met-d-SFA.vcf.gz")
  # data1=gwasvcf::vcf_to_tibble(data0,id='ieu-b-4979')

差点卡死,赶紧中止,此路看来不通啊!

没办法,本地看来是跑不了了,有没有捷径可走呢?

零代码转换GWAS VCF文件 - 知乎 (zhihu.com)

再次谢谢医工科研MedicineIT团队

直接就转换为csv文件了( •̀ ω •́ )y~

代码语言:javascript复制
alcohol <- fread("../Confounders/convert_met-d-SFA.vcf.gz.csv",data.table = F)
View(alcohol[1:4,1:9])
dim(alcohol)
# [1] 11633920        9

格式非常简洁!就是数据量特别大

再根据p值先简单筛选一下:

代码语言:javascript复制
alcodat <- alcohol %>% filter(.,pval<1e-05)
 dim(alcodat)
# [1] 17866     9

然后,就可以本地clump了:

ClumpMR/README.md at main · huangyebao/ClumpMR · GitHub deCODE数据处理(三) - 知乎 (zhihu.com)

1000G 参考基因组:https://data.broadinstitute.org/alkesgroup/FUSION/LDREF.tar.bz2

其他的参考基因组可以通过MAGMA | CTG (cncr.nl)找

代码语言:javascript复制
# devtools::install_github("huangyebao/ClumpMR")
# devtools::install_github("explodecomputer/plinkbinr")
library(ClumpMR)
library(plinkbinr)

get_plink_exe()


#在线方式去除连锁不平衡--------
exposure_alco <- clump_dat(alcodat, clump_kb = 10000, clump_r2 = 0.001, clump_p1 = 1, clump_p2 = 1, pop = "EUR")

#或本地方式去除连锁不平衡
ieugwasr::ld_clump_local(clump.dat,clump_r2=0.001,clump_kb=10000,clump_p=1,
                         bfile="path/to/reference/EUR", ## 欧洲的EUR
                         plink_bin="path/to/plink_Windows.exe")

然后,(转了这几个弯)就能产生和运行extract_instruments这一行代码同样的数据了。

【如果是多变量MR分析的话】再把多个变量合并起来,

代码语言:javascript复制
l <- list(exposure1,exposure2,exposure3,exposure4)
mvdat <- rbindlist(l, use.names=TRUE)

over!

0 人点赞