火山图是一种用来区别差异表达基因的常见的图,有如下几种方法:
(1) 使用Graphpad Prism绘制,具体步骤如"小张聊科研"的描述 ( http://www.sohu.com/a/159512191_652735 )。问题:我没有安装Graphpad Prism,网上搜破解版没找到,只好作罢
(2)使用第三方工具,如TBtools ( https://www.jianshu.com/p/909e99af28c9 )或者生信人开发的Sanger工具(http://www.sohu.com/a/196696514_419916),问题来了,我发现要注册或者转发之类的,学习成本太高了
(3) 使用R语言绘制,需要安装ggplot2
问题1: 开始使用的版本3.4与最新版的ggplot2不兼容,需要把R语言更新到最新版3.6终于成功了
问题2: 使用清华大学的R语言镜像,会比较快,不然有可能安装不了ggplot2
完整代码为:
setwd("your/directory")
temp<-read.table("volcano_test.txt",header=T,sep="\t",quote="")
temp$threshold[temp$padj < 0.05 & temp$log2FoldChange>0 ] = "up"
temp$threshold[temp$padj < 0.05 & temp$log2FoldChange<0 ] = "down"
temp$threshold[temp$padj > 0.05 & (temp$log2FoldChange>=0 | temp$log2FoldChange <= 0)] = "non"
p<-ggplot(temp,aes(x=temp$log2FoldChange,y=-log10(temp$padj),colour=threshold))+xlab("log2(Fold Change)")+ylab("-log10(p-Value)")+
geom_point(size=4,alpha=0.6)+
scale_color_manual(values =c("#0072B5","grey","#BC3C28"))+
geom_hline(aes(yintercept=-log10(0.05)),colour="grey",size=1.2,linetype=2)+
geom_vline(aes(xintercept=0), colour="grey",size=1.2,linetype=2)
p #显示图片
点击export---->save as image即可保存图片
主要目前ggplot2主要在windows系统上 运行,在Linux服务器端由于图形化界面不够友好,不建议使用服务器端R语言做图