美文网首页R画图
统计绘图 | 这个能不能作为【火山图】?

统计绘图 | 这个能不能作为【火山图】?

作者: shwzhao | 来源:发表于2022-07-28 19:57 被阅读0次

1. 火山图?

之前瞥到了小明的 跟着Cell学作图:R语言ggplot2作图展示差异表达的基因,但没有细看,根据印象做了下面这个图。

  • 差异表达结果合并
awk 'NR==1{print}FNR>1{print}' *vs0.txt > allvs0.txt
  • 在 R 中读取
library(tidyverse)
df_deg <- read_tsv("allvs0.txt")
  • 作图,其中
    不显示padj大于0.5的基因;
    df_degcontrast 列:1vs0 | 2vs0 | 3vs0 | 4vs0 | 5vs0,不同的组的差异表达结果;
    df_degchange列:Up | Down | Stable,可根据log2FoldChangepadj定义;
    my_gene 是我想突出的基因构成的向量。
ggplot(filter(df_deg, padj <= 0.05 & !geneids %in% my_genes)) +
  geom_point(aes(contrast, log2FoldChange, color = change, size = -log10(padj), alpha = -log10(padj)),
             # size = 3,
             position = "jitter") +
  geom_point(data = filter(df_deg, (log2FoldChange >= 1 | log2FoldChange <= -1) & padj <= 0.05 & geneids %in% my_genes),
             aes(contrast, log2FoldChange), # size = -log10(padj)
             position = "jitter",
             size = 4,
             shape = 21,
             color = "black",
             fill = "#fee08b") +
  # ylim(-15, 15) +
  geom_hline(yintercept = c(-1, 1), 
             linetype = 'dotdash',
             color = 'grey30') +
  scale_color_manual(values = c(Up = "#e6550d", Down = "#3182bd", Stable = "#636363")) +
  scale_alpha(range = c(0.3, 1)) +
  labs(x = 'Group', y = 'Log2(fold change)') +
  theme_bw()
image.png

2. 常规火山图

  • 只选择一个差异表达结果
library(tidyverse)
library(ggrepel)

df_deg <- read_tsv("1vs0.txt")

ggplot(df_deg) +
  geom_point(aes(log2FoldChange, -log10(padj), color = change),
             show.legend = F) +
  geom_point(data = filter(df_deg, (log2FoldChange >= 1 | log2FoldChange <= -1) & padj <= 0.05 & geneids %in% my_genes),
             aes(log2FoldChange, -log10(padj)),
             # shape = 21,
             # fill = "black",
             color = "#fee08b") +
  geom_text_repel(data = filter(df_deg, (log2FoldChange >= 1 | log2FoldChange <= -1) & padj <= 0.05 & geneids %in% my_genes),
                  aes(log2FoldChange, -log10(padj)),
                  label = "^-^",
                  box.padding = 0.5,
                  max.overlaps = Inf) +
  scale_color_manual(values = c(Up = "#e6550d", Down = "#3182bd", Stable = "#636363")) +
  geom_hline(yintercept = -log10(0.05), 
             linetype = 'dotdash',
             color = 'grey30') +
  geom_vline(xintercept = c(-1, 1), 
             linetype = 'dotdash',
             color = 'grey30') +
  labs(x = 'Log2(fold change)', y = '-log10(p-value)') +
  xlim(-10, 10) +
  ylim(0, 30) +
  theme_bw()
image.png

3. 倾斜火山图

  • 这个啊,应该叫做【热狗图】。

公众号 | 生信宝典 | 什么是倾斜45度的火山图?
简书 | 小明的数据分析笔记本 | 跟着Nature Plants学作图:R语言ggplot2画变种火山图

相关文章

  • 统计绘图 | 这个能不能作为【火山图】?

    1. 火山图? 之前瞥到了小明的 跟着Cell学作图:R语言ggplot2作图展示差异表达的基因[https://...

  • MATLAB 绘图(二)

    概述 本次的内容涉及到除了线图以外的绘图,包括离散绘图、极坐标绘图、曲面绘图和统计绘图。 离散绘图:茎干图、阶梯图...

  • Day—4

    R 编程语言,是进行统计计算和绘图的环境 R语言的基础绘图系统主要由基础包graphics提供 Rstudio 图...

  • 再肝一个R包!一行代码绘制精美火山图!

    一行代码绘制火山图的R包诞生了!在过去的一年中,师兄先后生信绘图系列和高分SCI复现系列中更新了多种不同的火山图的...

  • R统计绘图 - 热图

    欢迎关注天下博客:http://blog.genesino.com/2017/06/heatmap-plot/Ju...

  • 绘图-几种基本统计图的实现分析

    前言 在开发中我们会遇到各种统计图,或者各种绘图,本文通过对基本三大统计图:折线图、柱状图、扇形图的实现来掌握基本...

  • RNA-seq学习:No.12 EnhancedVolcano绘

    EnhancedVolcano包可根据差异分析结果,基于ggplot2绘图结构,方便地绘制美观的火山图,下面根据自...

  • Python 数据可视化:常用图形

    Bokeh 与以往的绘图工具类似,不同之处在于,前面的工具都是以绘制统计图,通常会直接提供专门绘制统计图的函数,但...

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

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

  • 瑞德学习R语言day03

    factor(变量) 因子类型的转化 R语言绘图 使用ggplot2绘图导入依赖 绘制柱状图 统计一组数中元素的情...

网友评论

    本文标题:统计绘图 | 这个能不能作为【火山图】?

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