用R画火山图的几种方法

微信公众号:生物信息学习

火山图(volcano plot)常用于显著差异基因表达的展示,包含显著和差异两个重要信息。

那么如何看懂一张火山图所包含的信息呢?首先需要知道,火山图的横坐标通常用log2(fold change)表示,差异越大的基因分布在两端,纵坐标用-log10(pvalue)表示,T检验显著性P值的负对数。由于P值越小表示越显著,所以我们进行-log10(P value)转化后,转化值越大表示差异越显著。通常差异倍数越大的基因T检验越显著,所以左上角和右上角的值往往是我们关注的。

随机生成log2FoldChange和padj的数值

log2FoldChange<-sample(rnorm(10000,mean=0,sd=4),1000,replace=T)
padj<-sample(runif(10000,0,0.08),1000,replace=T)
#log2FoldChange和padj合并到一个数据框
mydata <- data.frame(log2FoldChange,padj)
##对满足不同条件的数据给不同的标记,放入Condition列,颜色放入color列
mydata$Condition=ifelse(mydata$log2FoldChange>=1 & mydata$padj<=0.05,"up",ifelse(mydata$log2FoldChange<=-1 & mydata$padj<=0.05,"down","normal"))
mydata$color=ifelse(mydata$log2FoldChange>=1 & mydata$padj<=0.05,"red",ifelse(mydata$log2FoldChange<=-1 & mydata$padj<=0.05,"green","gray"))

接下来就开始画图。

1.直接用plot画图

plot(mydata$log2FoldChange,-log10(mydata$padj),col=mydata$color,pch=20,cex=.3,xlab="log2 fold change",ylab="-log10 p-value",font.lab=2,font.axis=2,cex.axis=.9)
##用abline给几条虚线
abline(v=1,lty=3)
abline(v=-1,lty=3)
abline(h=-log10(0.05),lty=3)

结果图如下所示:

image

2.用ggplot2画图

library(ggplot2)
p <-ggplot(data=mydata, aes(x=log2FoldChange, y=-log10(padj), colour=Condition)) + geom_point(alpha=0.8, size=1)  +  xlab("log2 fold change") + ylab("-log10 padj")+geom_hline(yintercept=-log10(0.05),linetype=4)+geom_vline(xintercept=c(-1,1),linetype=4)+scale_color_manual(values=c('up'='red','down'='green','normal'='gray'))
p

结果如下图所示:

image

关注微信公众号:生物信息学习,并私信:volcano,即可获得包含了如何保存图片的代码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • volcano plot 火山图 火山图(Volcano Plot)是做RNA-Seq分析的时候特别常用的一张图,...
    黄晶_id阅读 14,569评论 2 29
  • 欢迎关注生信宝典,获取更好阅读体验。 http://mp.weixin.qq.com/s?__biz=MzI5MT...
    生信宝典阅读 9,771评论 5 11
  • 最新 Sublime Text 3165 注册码:http://blog.circle.ink/sublime-l...
    a5326ba2688f阅读 3,576评论 0 1
  • 平凡皆苦生,我不愿与你度此。 得你时,我必立于尊,共昌繁。 乡庭园林居如仙子? 不如金纸挥乐生。 待我诺实行。 娶...
    习习山风阅读 1,397评论 0 1
  • 据说下雨,意外放晴,老天爷也灿烂了一回。 跑操,两节课,改两个班146份试卷,听课一节,评课一节,讨论教研活动一节...
    何何木头人阅读 1,521评论 0 3