前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言基于seqMeta实现GWAS数据元分析

R语言基于seqMeta实现GWAS数据元分析

作者头像
一粒沙
发布2020-11-25 15:05:29
1.4K0
发布2020-11-25 15:05:29
举报
文章被收录于专栏:R语言交流中心R语言交流中心

全基因组关联分析(GWAS)为研究单核苷酸多态性提供了便利,同时为我们后期研究遗传表型多样性提供了媒介。然而,GWAS研究因为是种群研究往往需要大量的队列信息,那么多中心、大样本的数据研究成为必要的步骤。我们今天介绍一个基于SNP共位点信息集合也就是对应的基因,用于GWAS多研究的元分析工具包seqMeta。该包可以适应不相关个体的连续、二进制和生存结果,以及相关个体的连续结果。我们还为条件分析和并行化提供了方便的函数。首先看下包的安装:

代码语言:javascript
复制
install.packages(seqMeta)

接下来我们看下此包的几个核心函数:

1. prepScores 各研究贡献打分。其函数构成

其中主要的参数:

Z指的是数据矩阵,行(样本)*列(SNPs),这里的SNPs指的是转化为0,1,2的值的矩阵数据。当然也有缺失值可以用NA来标注。

Formula 指的是一个需要加入的协变量公式。数据变量来源于后面的data数据。

SNPInfo 指的是SNPs和基因对应的数据矩阵,构成是Name和Gene。

Data 指的是和样本一一对应的其它临床信息。成为SNP分析的协变量数据源。

Kins 指的是家族亲属关系矩阵。

我们来看下包中自带的实例:

代码语言:javascript
复制
data(seqMetaExample)#包含了我们上面所需的几个数据参数。
c1 <- prepScores(Z1, y~bmi+sex, SNPInfo= SNPInfo, data = pheno1)
c2 <- prepScores(Z2, y~bmi+sex, SNPInfo= SNPInfo, kins = kins,data = pheno2)

2. skatMeta基于SKAT(sequenceKernel association test)方法的元分析。

其中主要的参数:

Wts主要指的是SNPInfo中的权重值的设定。

Method指的P值的计算方法

实例:

代码语言:javascript
复制
meta.results <- skatMeta(c1, c2, SNPInfo= SNPInfo)

上表中各变量的含义:

当然也可以对单研究进行分析:

代码语言:javascript
复制
study1.results <- skatMeta(c1, SNPInfo =SNPInfo)

3. burdenMeta 元负担分析。主要是基于纳入的mafRange对SNPInfo进行加权处理。确定引入的burden。

其中主要的参数mafRange主要是指的突变频率的范围,此处包括端点在内。

实例:

代码语言:javascript
复制
meta.t1.results <- burdenMeta(c1, c2,wts = function(maf){maf < 0.01}, SNPInfo = SNPInfo)
代码语言:javascript
复制
meta.t1.results <- burdenMeta(c1, c2,wts =1, mafRange = c(0,0.01), SNPInfo = SNPInfo)

通过上面两种方式会得到同样的结果,所有我们只需要设置一个参数即可。

4. skatOMeta 最佳SKAT分析方法。结合SKAT和burden分析两者进行元分析

其中主要的参数是rho主要指的0~1之间的数值,用来表征(1-rho)SKAT和(rho)Burden的比例。

实例:

代码语言:javascript
复制
meta.skato.results <- skatOMeta(c1, c2,rho=seq(0,1,length=11), burden.wts = function(maf){dbeta(maf,1,25)}, SNPInfo =SNPInfo, method = "int")
format(head(meta.skato.results),digits=2)

上表中值的意义:

Pmin指的是参数中的rho;errflag指的是是否有错误的P-value值。如果有的话需要更换method,以确保值为0。

5. singlesnpMeta 单个SNP的评估,上面都是基于区域的meta分析,此函数基于单个SNP进行计算。

其中主要的参数是否计算studyBetas,默认是TRUE,计算的。

实例:

代码语言:javascript
复制
meta.ss.results <- singlesnpMeta(c1, c2,SNPInfo = SNPInfo, studyBetas = TRUE)
format(head(meta.ss.results),digits=2)

当然我们也可以通过prepCox构建生存模型,实例如下:

代码语言:javascript
复制
c1.cox <- prepCox(Z=Z1, Surv(time,status) ~ bmi + strata(sex),SNPInfo = SNPInfo, data =pheno1)

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

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