統(tǒng)計繪圖 | 這個能不能作為【火山圖】?

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. 常規(guī)火山圖

  • 只選擇一個差異表達結果
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度的火山圖?
簡書 | 小明的數(shù)據分析筆記本 | 跟著Nature Plants學作圖:R語言ggplot2畫變種火山圖

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容