GWAS分析中曼哈顿图如何添加基因信息

科技   2024-11-23 20:44   英国  

大家好,我是邓飞,虽然我知道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")

生成的图:

搞定了!

GWAS分析先做后学


育种数据分析之放飞自我
本公众号主要介绍动植物育种数据分析中的相关问题, 算法及程序代码.
 最新文章