gwas snp 和-ag凯发k8国际
之前的gwas分析中,我查看结果时有过这个疑问,随着不断的学习理解,我已经知道了为什么,这里将我思考的结果分享一下。
1. 错误的理解
某一个snp,效应值(effect)越大,就越显著???
「事实上:」 效应值和显著性是两码事!
2. 用代码说话
gwas分析中,最简单的就是一般线性模型(glm),而glm模型进行的gwas分析中,用r语言实现的代码如下:
mod_m7 = lm(phe.v3 ~ m7_1,data=dd) summary(mod_m7)「结果:」
这个里面:
- estimate就是效应值:3.3265,这个就是snp m9的效应值
- pr就是p值:0.0272,这个就是snp m9的p值
可以看到,这两个是两个指标,他们之间没有必然的联系。
3. gwas分析的思路
- 1,将snp的分型转化为0, 1, 2的形式,主效纯合(major)编码为0,杂合编码为1,次等位纯合编码为2
- 2,x变量为0,1,2的数值,y变量为性状表型值
- 3,对x和y做回归分析y ~ a*x b,a为效应值,a是否显著的p值,为snp的p值
4. snp效应值很大,却不显著
# snp 分型 set.seed(666) x = rep(c(0,1,2),3) x# 模拟表型值 y = 12*x rnorm(9)*10# 作回归分析 mod = lm(y ~ x) summary(mod)# 作图 dd = data.frame(x,y) dd ggplot(dd,aes(x=x,y=y)) geom_point() stat_smooth(method='lm',formula = y~x,colour='red')看一下这个数据:
> ddx y 1 0 7.533110 2 1 32.143547 3 2 20.448655 4 0 20.281678 5 1 -10.168745 6 2 31.583962 7 0 -13.061853 8 1 3.974804 9 2 6.077592计算每种分型对应的表型平均值:
> # 平均值 > aggregate(y~x,data = dd,mean)x y 1 0 4.917645 2 1 8.649869 3 2 19.370070可以看出,分型0对应的是4.9,最小,分型1对应的是8.6,分型2对应的是19.3,趋势是比较明显的。
「看一下回归分析的结果:」
> # 作回归分析 > mod = lm(y ~ x) > summary(mod)call: lm(formula = y ~ x)residuals:min 1q median 3q max -21.148 -12.128 2.243 13.379 21.164 coefficients:estimate std. error t value pr(>|t|) (intercept) 3.753 8.558 0.439 0.674 x 7.226 6.629 1.090 0.312residual standard error: 16.24 on 7 degrees of freedom multiple r-squared: 0.1451, adjusted r-squared: 0.023 f-statistic: 1.188 on 1 and 7 df, p-value: 0.3118可以看出,效应值为7.226,但是p值却是0.312,不显著。
所以说,效应值大的snp位点,不一定是显著的。
「为何会出现这种情况呢?」 我们画一个散点图看一下分布情况:
library(ggplot2) ggplot(dd,aes(x=x,y=y)) geom_point() stat_smooth(method='lm',formula = y~x,colour='red')可以看到,分型为1的表型值,有一个非常高,达到了31,相当于在进行t检验时,标准误se比较高,导致p值较大,不显著。
5. snp效应值很小,却极显著
我们还模拟数据:
# snp 分型 set.seed(666) x = rep(c(0,1,2),3) x# 模拟表型值 y = 0.1*x rnorm(9)*0.01# 作回归分析 mod = lm(y ~ x) summary(mod)# 作图 dd = data.frame(x,y) dd library(ggplot2) ggplot(dd,aes(x=x,y=y)) geom_point() stat_smooth(method='lm',formula = y~x,colour='red')# 平均值 aggregate(y~x,data = dd,mean)「模拟的数据如下:」
> ddx y 1 0 0.00753311 2 1 0.12014355 3 2 0.19644866 4 0 0.02028168 5 1 0.07783126 6 2 0.20758396 7 0 -0.01306185 8 1 0.09197480 9 2 0.18207759计算每种分型对应的表型平均值:
> aggregate(y~x,data = dd,mean)x y 1 0 0.004917645 2 1 0.096649869 3 2 0.195370070可以看到,三种基因型,阶梯感也很强。
「回归分析结果:」
> # 作回归分析 > mod = lm(y ~ x) > summary(mod)call: lm(formula = y ~ x)residuals:min 1q median 3q max -0.021148 -0.012128 0.002243 0.013379 0.021164 coefficients:estimate std. error t value pr(>|t|) (intercept) 0.003753 0.008558 0.439 0.674 x 0.095226 0.006629 14.365 1.89e-06 *** --- signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1residual standard error: 0.01624 on 7 degrees of freedom multiple r-squared: 0.9672, adjusted r-squared: 0.9625 f-statistic: 206.4 on 1 and 7 df, p-value: 1.886e-06可以看出: snp的效应值:0.095 snp的p值:1.89e-6(达到极显著水平)
「作图看一下:」
虽然回归系数(snp效应值很小),但是每个分型对应的表型值相差不多,组内变异(同一种基因型的表型值)远远小于组间变异(不同snp分型对应的表型值),导致进行t检验时,达到极显著水平。
这也就出现了snp的效应值很低,但是却达到了极显著水平。
6. 从生物学水平如何解释?
可以这样理解, 「snp效应值小但显著的位点:」 属于对表型值是有直接影响的,但是影响的效应较小,但是比较稳定,所以才表现出极显著,而效应小
「snp效应大但不显著的位点:」 有可能snp是有大效应的,但是容易受到环境影响,或者由于群体的结构(某个群体内聚集),或者由于某些异常值导致这种情况。也有可能本身就是不显著的。
「林子大了,什么鸟都有!」 毕竟snp都是上万,上十万,上百万的量。而表型值都是上百,上千,很少达到上万的,这就存在很多种情况,导致有些snp效应值很大,但是不显著,有些snp效应值很小,但是极显著。这里需要区分对待一下。
如果有很多snp出现这种情况,必然有妖,查看是否过滤了maf,是否对基因型进行了填充,是否表型数据有异常,如果都检查过了,出现这种情况,我们也只能说:it happens,有时候会出现,这不是不可解释的现象,否者我写这篇文章的意义在哪里呢?除了灌水,还有炫技啊
7. gwas系列相关
笔记 | gwas 操作流程1:下载数据
笔记 gwas 操作流程2-1:缺失质控
笔记 | gwas 操作流程2-2:性别质控
笔记 gwas 操作流程2-3:最小等位基因频率
笔记 gwas 操作流程2-4:哈温平衡检验
笔记 gwas 操作流程2-5:杂合率检验
笔记 gwas 操作流程2-6:去掉亲缘关系近的个体
笔记 gwas 操作流程3:plink关联分析
笔记 | gwas 操作流程4-1:lm模型assoc
笔记 | gwas 操作流程4-2:lm模型linear 数值协变量
笔记 | gwas 操作流程4-3:lm模型 因子协变量
笔记 | gwas 操作流程4-4:lm模型 数值 因子协变量
笔记 | gwas 操作流程4-5:lm模型 数值 因子 pca协变量
笔记 gwas 操作流程5-1:根红苗正的gwas分析软件:gemma
笔记 gwas 操作流程5-2:利用gemma软件进行lmm pca 协变量
总结
以上是ag凯发k8国际为你收集整理的gwas snp 和_gwas分析中:为何有些snp效应值大却不显著?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 手机蓝牙如何减少延时_如何使用车载蓝牙播
- 下一篇: