大家好,我是邓飞,虽然我知道GWAS分析后一定是要有曼哈顿图的,没有曼哈顿图的GWAS没有灵魂,但是,谁能想到,需要在曼哈顿图上添加上基因,怎么不在上面画蒙娜丽莎呢???
既然有需求,那就研究一下吧,毕竟,解决问题就意味着能力提升,做困难的事情,能力提升得更快,像我这种凡事依赖ChatGPT的人,如果ChatGPT能解决,我是肯定不会看说明文档的。
之前,我看过高手和小白的区别,小白都去知乎和csdn上找答案了,然后关注了一堆公众号。高手直接去看说明文档了。我充分体验到从小白到高手的过程,要是能当小白,我肯定不愿意看说明文档的。但是网上真的找不到,ChatGPT也是错误百出,于是,我就翻开说明文档,一下就搞定了,很快的。有点不真实,赶紧写篇博客,介绍一下如何对曼哈顿图中添加基因信息。
应用场景:
GWAS分析后,对结果进行曼哈顿图绘制(GWAS的曼哈顿图和QQ图diamante),对显著性位点基因型基因注释(显著SNP的基因注释教程!)
曼哈顿图的数据哪里来?当然是GWAS分析而来,GWAS有不同的模型,得到的结果都是类似的:SNP、染色体、物理位置、P值,这些就够了:
通过下面代码进行绘制曼哈顿图和QQ图,QQ图的代码:
CMplot(dat1,plot.type = "q",threshold = 0.05,file="pdf",file.name = "re1_qq")
QQ图结果:
曼哈顿图代码:
CMplot(dat1,plot.type = "m",threshold = c(1/nrow(dat1)),threshold.col=c('grey','black'),
threshold.lty = c(1,2),threshold.lwd = c(1,1), amplify = T,
signal.cex = c(1,1), signal.pch = c(20,20),signal.col = c("red","orange"),
file.name = "re1_no_gene",
file="pdf")
曼哈顿图结果:
注释完显著性基因之后,把SNP和基因做一个数据框,SNP是一列,基因名是一列,类似:
下面就是把这个基因名,添加到上面的曼哈顿图上面了。
关键参数介绍:
highlight = xx$SNP,这个是指明需要高亮的位点,SNP名称对应的又染色体和物理位置的信息,所以只需要指定SNP的名称就行了,一个向量,有几个基因,就高亮几个SNP,一个也行,八个也行。我曾经准备了所有的SNP信息,事实证明我想复杂了。
highlight.text = xx$gene,基因名和SNP需要一一对应。
完整的代码:
CMplot(dat1,plot.type = "m",threshold = c(1/nrow(dat1)),threshold.col=c('grey','black'),
threshold.lty = c(1,2),threshold.lwd = c(1,1), amplify = T,
signal.cex = c(1,1), signal.pch = c(20,20),signal.col = c("red","orange"),
highlight = xx$SNP,
highlight.text = xx$gene,
file.name = "re1_plus_gene",
file="pdf")
生成的图:
搞定了!