zl程序教程

您现在的位置是:首页 >  其它

当前栏目

“站长,火山图咋画?”

火山 站长
2023-06-13 09:15:26 时间

火山图 就是比热图更热的图~~~

少废话,直接上代码~

基于R.3.4.4

#载入相关包
library(ggplot2)
library(ggrepel)
library(ggsci)
library(dplyr)
#提取数据,resG是注释过基因名字的DEseq2结果
Vol.TG<-na.omit(resG) 
#给结果加上change,其中padj和log2FoldChange后面的值根据自己的需要修改
Vol.TG$change <- as.factor(ifelse(Vol.TG$padj < 0.01 & abs(Vol.TG$log2FoldChange) > 1,ifelse(Vol.TG$log2FoldChange > 1,'UP','DOWN'),'NOT'))
#加个配色
mypal_V = pal_gsea("default", n = 3, alpha = 0.9)(3)
#开始设置ggplot
#其中geom_point中alpha是点的透明度,size是点大小都可以修改。
#其中xlim是x轴范围,自己根据数据调整
#theme_bw中base_size是图中文字字号
#theme中那些事调整格子的,想知道效果删掉一个看一下。
#scale_color_manual中values后面值是配色,可以用c("","","")自己填颜色代号调整。limits代表change的顺序,这个要配合颜色顺序调整。
p <- ggplot(data = Vol.TG, aes(x = log2FoldChange, y = -log10(padj), color = change))
+geom_point(alpha=0.8, size = 1)
+xlim(-9,9)+theme_bw(base_size = 18)
+theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank())
+scale_color_manual(name = "", values = mypal_V, limits = c("DOWN", "NOT", "UP"))
#输出p
p
#加上基因名,其中padj和log2FoldChange后面的值根据自己的需要修改
p+geom_text_repel(data=filter(Vol.TG,padj < 0.01,abs(log2FoldChange)>6), aes(label=genename))

效果图

为了让大更好的掌握这个用法,Chris生命科学小站qq群里有resG的例表给大家练习用。如果想知道这个resG是怎么得到的,请看下面星球介绍。