曼哈顿图和QQ图绘制-R语言

今天学习了一下怎么画Manhattan图和qq图,其实如果你有了关联分析的结果,画图非常简单,用R语言里面的qqman。帮助文档给予了非常详细的说明,我们拿自己的数据画图,改改参数就可以,非常简单。下面是对文档的翻译学习。

准备

install.packages("qqman") # 安装qqman包
library(qqman)  #加载qqman
vignette("qqman") #查看帮助文档

qman包含了一个GWAS结果的数据集,可以用来创建曼哈顿图和q-q图。数据gwasResults数据中包含了22条染色体上的16,470个snp。

View(gwasResults)#查看实例数据

1 首先可以看看gwasResults里面都有啥

gwasResults数据

数据里面含有4列,分别是:
SNP名称;染色体名称;SNP的物理位置;GWAS关联的p值。所以,如果你有自己的数据,需要改成这样的格式,才能画曼哈顿图,不然会报错,一定要注意,列的名字都是大写字母。

2 画Manhattan图,很简单,只要一个命令

manhattan(gwasResults)
manhattan

3 自定义修改参数

manhattan(gwasResults, main = "Manhattan Plot", ylim = c(0, 10), cex = 0.6, cex.axis = 0.9, col = c("blue4", "orange3"), suggestiveline = F, genomewideline = F,  chrlabs = c(1:20, "P", "Q"))
#main 标题名
#ylim 纵轴标尺
#cex = 0.6 点的大小减小到60%
#cex.axis= 0.9 将坐标轴的字体减小到90%
#col是改变点的颜色
#suggestiveline = F 不设置阈值线段
#genomewideline = F 啥意思没搞清
3chrlabs = c(1:20, "P", "Q")给染色体指定名字
image.png

4 指定某一条染色体画Manhattan

manhattan(subset(gwasResults, CHR == 1))
image.png

5 高亮感兴趣的SNP,前提是你把感兴趣的SNP名字单独存为一个dataframe

View(snpsOfInterest)#这个dataframe是你感兴趣的SNP名字

manhattan(gwasResults, highlight = snpsOfInterest)
image.png

6 局部Manhattan图和高亮SNP

manhattan(subset(gwasResults, CHR == 3), highlight = snpsOfInterest, xlim = c(200, 500), main = "Chr 3")
image.png

7 图中显示SNP的P值

manhattan(gwasResults, annotatePval = 0.01)
#每条染色体上p值超过0.01的SNP的会被标注出p值
image.png

8 也可以注释所有的超过指定阈值的SNP

manhattan(gwasResults, annotatePval = 0.005, annotateTop = FALSE)
image.png

9 画qq图

qq(gwasResults$P)
image.png

10 qq图加参数

qq(gwasResults$P, main = "Q-Q plot of GWAS p-values", xlim = c(0, 7), ylim = c(0,12), pch = 18, col = "blue4", cex = 1.5, las = 1)
image.png

以上纯粹是对qqman包的文档翻译。

你可能感兴趣的:(曼哈顿图和QQ图绘制-R语言)