前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🤒 CMplot | GWAS分析中的QQplot是什么鬼(三)

🤒 CMplot | GWAS分析中的QQplot是什么鬼(三)

作者头像
生信漫卷
发布2022-10-31 17:07:21
2.8K1
发布2022-10-31 17:07:21
举报

1写在前面

1.1 什么是Q-Q plot?

在GWAS研究中,还有一种常用的图形就是Q-Q plot,虽然它的颜值可能不如曼哈顿图, 但是它表达的信息比曼哈顿图要丰富得多😽, 相当于GWAS研究的质控图


1.2 Q-Q plot的原理是什么?

Q-Q plot全称是quantile-quantile plot,也就是分位图,基本原理是通过比较两个概率分布的分位数,从而实现对两个概率分布进行比较。


1.3 Q-Q plot怎么解读?

STEP1 Q-Q plotY轴是SNP位点的p值(实际结果,即observed); X轴是则是均匀分布的概率值(期望值,即Expected); Note! 上述指标均为换算为-log10后的数值。

STEP2 如果traits并非真的受SNP的影响,那么会看到GWASp值分布和均匀分布的结果集中在一条直线上; 💔 如果traits真的受SNP的影响,GWASp值会在随X轴的增大,突然出现与均匀分布的快速分离。🤜🤛


2用到的包

代码语言:javascript
复制
rm(list = ls())
library(CMplot)

3示例数据

代码语言:javascript
复制
data(pig60K)
data(cattle50K)

4Single_track Q-Q plot

代码语言:javascript
复制
CMplot(pig60K,plot.type="q",
       box=F,
       file="jpg",
       memo="",
       dpi=300,conf.int=TRUE,
       conf.int.col=NULL,
       threshold.col="red",
       threshold.lty=2,
       file.output=F,
       verbose=F,
       width=5,height=5)

5Multi_tracks Q-Q plot

🧐常遇到的问题: ✅ 如何把不同的traits画在一张图上 ✅ 如果存在缺失值,怎么标记出来

我们先无中生有造几个缺失值出来,分别在trait2trait3中。 🤫 这里我们把NA标记成

代码语言:javascript
复制
pig60K$trait1[sample(1:nrow(pig60K), round(nrow(pig60K)*0.80))] <- NA
pig60K$trait2[sample(1:nrow(pig60K), round(nrow(pig60K)*0.25))] <- NA

CMplot(pig60K,
       plot.type="q",
       col=c("dodgerblue1", "olivedrab3", "darkgoldenrod1"),
       threshold=1e-6,
       ylab.pos=2,
       signal.pch=c(19,6,5), # shape of significant points.
       signal.cex=1.2,
       signal.col="red", # the colors of significant points 
       conf.int=T, # whether to plot confidence interval on QQ-plot.
       box=F,
       multracks=T,
       cex.axis=2,
       file="jpg", memo="",dpi=300,
       file.output=F,verbose=F,
       ylim=c(0,8),
       width=5,height=5)

当然你也可以三个分开然后在一起

代码语言:javascript
复制
CMplot(pig60K,
       plot.type="q",
       col=c("dodgerblue1", "olivedrab3", "darkgoldenrod1"),
       threshold=1e-6,
       ylab.pos=2,
       signal.pch=c(19,6,5), # shape of significant points.
       signal.cex=1.2,
       signal.col="red", # the colors of significant points 
       conf.int=T, # whether to plot confidence interval on QQ-plot.
       box=F,
       multracks=F,
       cex.axis=2,
       file="jpg", memo="",dpi=300,
       file.output=F,verbose=F,
       ylim=c(0,8),
       width=5,height=5)


最后祝大家早日不卷!~


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

本文分享自 生信漫卷 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
    • 1.1 什么是Q-Q plot?
      • 1.2 Q-Q plot的原理是什么?
        • 1.3 Q-Q plot怎么解读?
        • 2用到的包
        • 3示例数据
        • 4Single_track Q-Q plot
        • 5Multi_tracks Q-Q plot
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档