前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R包“ieugwasr“教程---SNP信息查询

R包“ieugwasr“教程---SNP信息查询

作者头像
生信与临床
发布2022-08-21 17:38:23
4.5K0
发布2022-08-21 17:38:23
举报

在孟德尔随机化研究中,我们常常会碰到SNP没有rsid的情况,这个时候需要我们把rsid添加上,如果SNP的个数不是很多的话,我们可以使用variants_chrpos()函数:

代码语言:javascript
复制
library(ieugwasr)
SNPinfo1 <- variants_chrpos(chrpos =c("3:46414943", "3:122991235"), radius = 0)
as.data.frame(SNPinfo1)
SNPinfo2 <- variants_chrpos(chrpos =c("3:46414943", "3:122991235"), radius = 100)
as.data.frame(SNPinfo2)

函数variants_chrpos()只有两个参数chrposradius,其中参数chrpos就是用染色体和碱基位置标记的信息,其格式为“chr:pos(染色体号:碱基位置)“,而参数radius就是指以单个位点为中心,向其上下游序列扩展的半径,其默认值为0。例如,当chrpos为3:46414943,radius为100时,则表示寻找在3号染色体上46414843~46415043这段序列上的SNP信息。

下面的第一幅图是radius为0的结果,也即as.data.frame(SNPinfo1) 的输出结果,第二幅图是radius为100的结果,也即as.data.frame(SNPinfo2)的输出结果。这个结果里我们主要关注的就是namegeneinfo,name代表的是SNP的rsid信息,geneinfo则提示离该SNP最近的基因信息。

图1:

图2:

代码语言:javascript
复制
GENEinfo <- variants_gene(gene =c("ENSG00000123374", 1017), radius = 0)
head(as.data.frame(GENEinfo), 25)

同函数variants_chrpos()一样,函数variants_gene()也只有两个参数,其中参数radius在两个函数中是一致的,variants_gene()的参数gene和variants_chrpos()的chrpos类似,表示的是查询的目标基因,它支持ENSEMBLENTREZ两种基因名的输入,其输出结果如下图所示,由于输出的结果和variants_chrpos()类似,这里就不赘述了。

代码语言:javascript
复制
RSIDinfo <- variants_rsid(rsid =c("rs4714457", "rs7784948", "rs2438162"))
as.data.frame(RSIDinfo)

函数variants_rsid()是依据rsid信息来查询SNP的基本信息,它只有rsid这一个参数,其输出结果如下:

接下来,我们将一起学习如何使用ieugwasr包来进行SNP的clump,这里主要使用ld_clump()函数,具体代码如下:

代码语言:javascript
复制
mydata <-TwoSampleMR::extract_instruments("ieu-a-2") #获取IV信息
dim(mydata) #查看数据维度
##[1] 79 15
mydata <- mydata[,c("SNP","pval.exposure")] #选择SNP和暴露的P值这两列
colnames(mydata) <- c("rsid","pval") # 对SNP和暴露的P值重命名
mydata <- ld_clump(dat = mydata,clump_kb = 10000, clump_r2 = 0.001, clump_p = 0.99,
                               pop = "EUR", access_token = NULL,bfile = NULL, plink_bin = NULL
                               ) #对数据进行clump
##[1] 78 3

在利用函数ld_clump()对SNP进行clump时,要求的数据输入格式为两列,SNP列的列名必须为“rsid“,而暴露的P值的列名必须为”pval“。其它参数的含义可以参考往期内容TwoSampleMR包实战教程之去除连锁不平衡(LD)

最后的输出结果如下图所示:

另外, 如果需要对大量SNP进行clump的话,建议大家使用本地的PLINK软件和LD参考数据来做,使用的就是ieugwasr提供的ld_clump_local()函数,米老鼠会在后面的推送中和大家详细介绍如何进行本地clump。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 生信与临床 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com