美文网首页
R可视化——ggplot2包绘制火山图

R可视化——ggplot2包绘制火山图

作者: 科研那点事儿 | 来源:发表于2022-08-12 11:22 被阅读0次

    火山图(Volcano plot)是一种将统计测试中的统计显著性量度(如p value)和变化幅度相结合,从而能够帮助快速直观地识别那些变化幅度较大且具有统计学意义的数据点(基因等)的散点图,因图形与火山喷发相似而得名。

加载数据

数据主要由三行构成——基因名称列、Log2FoldChange(差异倍数)、pvalue(p值)。

# 读取数据
df <- read.table(file="data.txt",sep="\t",header=T,check.names=FALSE)
head(df)
image.png

基本火山图绘制

library(ggplot2)
ggplot(df, aes(log2FoldChange, -log10(pvalue))) + geom_point(alpha=0.6, size=2)
image.png

设置阈值并用不同颜色显示

1、设置阈值
#数据分类
df$group<-as.factor(ifelse(df$pvalue < 0.05 & abs(df$log2FoldChange) >= 2, 
                           ifelse(df$log2FoldChange>= 2 ,'up','down'),'NS')) 
2、绘图
p<-ggplot(df, aes(log2FoldChange, -log10(pvalue))) + 
  geom_point(aes(color = group),alpha=0.6, size=2)+
  scale_color_manual(values = c( 'red','green','grey'))#颜色
p
image.png
3、添加辅助线
p+geom_vline(xintercept = c(-2, 2), lty=3,color = 'black', lwd=0.5) + #竖直辅助线
  geom_hline(yintercept = -log10(0.05), lty=3,color = 'black', lwd=0.5)#垂直辅助线
image.png
4、主题设置
p1<-p+geom_vline(xintercept = c(-2, 2), lty=3,color = 'black', lwd=0.5) + #竖直辅助线
  geom_hline(yintercept = -log10(0.05), lty=3,color = 'black', lwd=0.5)+#垂直辅助线
  theme_bw()+
  theme(legend.title = element_blank(),
        panel.grid = element_blank())+
  labs(title="volcanoplot",
       x = 'log2 fold change',
       y = '-log10 pvalue')
p1
image.png

添加标签

#设置标签——将p值小于0.05且差异倍数大于4的进行标注
df$label<-ifelse(df$pvalue<0.05&abs(df$log2FoldChange)>=4,"Y","N")
df$label<-ifelse(df$label == 'Y', as.character(df$gene), '')
#添加标签——使用ggrepel包完成
library(ggrepel)
p2+geom_vline(xintercept = c(-4, 4), lty=3,color = 'red', lwd=0.5)+
  geom_text_repel(aes(x = log2FoldChange,
                      y = -log10(pvalue),          
                      label=label),                       
                  max.overlaps = 10000,
                  size=3,
                  box.padding=unit(0.8,'lines'),
                  point.padding=unit(0.8, 'lines'),
                  segment.color='black',
                  show.legend=FALSE)
image.png

相关文章

  • ggplot2绘制分裂小提琴图

    本节来介绍如何使用ggplot2绘制分裂小提琴图 加载R包 ggplot2绘制分裂小提琴图 ggplot2绘制云雨图

  • python--seaborn盒形图

    seaborn是专门用于统计数据可视化的包,可媲美R语言中的ggplot2包。本文介绍用seaborn绘制盒形图。...

  • R可视化——ggplot2包绘制火山图

        火山图(Volcano plot)是一种将统计测试中的统计显著性量度(如p value)和变化幅度相结合,...

  • ggplot2优雅的绘制高端热图

    本节来介绍如何通过ggplot2绘制复杂热图 加载R包 加载数据 数据清洗 绘制热图 ggtree绘制聚类树 绘制...

  • KEGG Pathway通路结果绘制气泡图

    参考CSDN博客ntuYision:使用R语言ggplot2包绘制pathway富集分析气泡图(Bubble图):...

  • ggplot2优雅的绘制华夫图

    R包安装与加载 数据清洗 数据可视化 ggplot2版华夫图

  • 03-08

    06 R语言作图 图就是数据,数据就是图 常用可视化R包 作图:base,ggplot2, ggpubr;拼图:p...

  • 可视化

    可视化 cpm 去除文库大小的影响 pca图 画热图 火山图 拼图 patchwork包只能用来拼ggplot2画...

  • python--seaborn散点图

    seaborn是专门用于统计数据可视化的包,可媲美R语言中的ggplot2包。本文介绍用seaborn绘制散点图。...

  • python--seaborn直方图

    seaborn是专门用于统计数据可视化的包,可媲美R语言中的ggplot2包。本文介绍用seaborn绘制直方图。...

网友评论

      本文标题:R可视化——ggplot2包绘制火山图

      本文链接:https://www.haomeiwen.com/subject/pbmxgrtx.html