介紹
關(guān)于ggvolcano包和ggplot2包繪制火山圖,以及加標(biāo)簽、修改配色等。
獲得差異基因列表后,用以進(jìn)行差異基因分析的數(shù)據(jù)通常包括包括Gene_ID,logFoldChange,P值和P.adj,上調(diào)下調(diào)信息以及注釋信息(Symbol name或Gene name等)?;鹕綀D不需要每個(gè)樣本的表達(dá)量,所以這些信息就足夠了。
> head(DEG_data)
Gene_ID Gene_name logFC P.Value P.adj regulate
1 LOC117871706 RPS8 -13.09148 1.169818e-11 1.392317e-07 DOWN
2 RPS29 RPS29 12.06191 2.783048e-10 4.575940e-07 UP
3 PDIA2 PDIA2 -10.66046 4.753260e-11 2.015868e-07 DOWN
4 ANXA10 ANXA10 -10.36442 3.167544e-10 4.575940e-07 DOWN
5 PPDPFL PPDPFL -10.27714 7.087988e-09 4.017202e-06 DOWN
6 PFN1 PFN1 -10.20349 5.081167e-11 2.015868e-07 DOWN
ggvolcano
ggvolcano是專門針對(duì)火山圖開發(fā)的包。它的相關(guān)參數(shù)是直接針對(duì)差異基因繪制火山圖設(shè)計(jì)的。
- 安裝
install.packages("devtools")
library(devtools)
devtools::install_github("BioSenior/ggvolcano",force = TRUE)
library(ggVolcano)
注意library中的'ggVolcano'的'V'是大寫。否則安裝成功后,運(yùn)行時(shí)顯示找不到包。
- 數(shù)據(jù)處理
# 讀入R包
library(ggVolcano)
library(tidyverse)
library(RColorBrewer)
library(ggsci)
library(patchwork)
# RColorBrewer可以生成漸變色盤,僅作繪圖嘗試,在火山圖中其實(shí)并不實(shí)用
# patchwork可通過“|”命令合并多個(gè)圖,快捷方便,但更多時(shí)候還是通過cowplot包完成。
data_Female <- read.csv("~/R/LNN/TSE_PS/Limma_DEGs_TSE_vs_PS_Female.csv")%>%
mutate(X = NULL)
data_Female%>%colnames()
DEG_data <- data_Female%>%
mutate(regulate = Direction)%>%
select(Gene_ID,Gene_name,logFC,P.Value,P.adj,regulate)
head(DEG_data)
注意,ggvolcano需要識(shí)別regulate這一列,且包含UP、DOWN和NS信息。我的表格中的這一列為"DIrection",在處理中新建立了“regulate”一列并復(fù)制了Direction里的信息。如果本身列表中不具備這一列,那么可通過包中自帶的功能生成相應(yīng)的“regulate”列。
DEG_data <- add_regulate(data_Female, log2FC_name = "logFC",
fdr_name = "P.adj",log2FC = 1, fdr = 0.05)
- 火山圖繪制
繪圖,我們簡(jiǎn)單繪制一個(gè)默認(rèn)參數(shù)下的圖,隨后嘗試調(diào)整各種參數(shù)
P1 <- ggvolcano(DEG_data,x= "logFC",y ="P.adj",label = "Gene_name")
P1為默認(rèn)參數(shù)下的結(jié)果,其中Gene_name為注釋信息列,也可以是Gene_ID或自己命名的其它列。默認(rèn)情況顯示10個(gè)label,可通過"label_number = "控制顯示標(biāo)簽的數(shù)目。output = F表示不輸出文件,如果output = T,則需要設(shè)置 “filename = ”參數(shù)。默認(rèn)情況下,x軸為L(zhǎng)og2FC,Y軸為-Log10FDR,圖例位置在左上方。接下來我們對(duì)圖進(jìn)行部分調(diào)整。
#準(zhǔn)備目標(biāo)基因集
list <- DEG_data$Gene_name
label_list <- list[1:50]
#
P2 <- ggvolcano(DEG_data,x= "logFC",y ="P.adj",
label = "Gene_name",output = F,
fills = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"),
colors = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"),
x_lab = "log2FC",
y_lab = "-Log10P.Value",
custom_label = label_list ,
pointSize = 2,
pointShape = 18,
legend_position = "DR")
#
P1|P2
fills和colors命令設(shè)置顏色,x_lab和y_lab設(shè)置x、y周名稱。custom_label可以設(shè)置自己想要顯示的標(biāo)簽,以list形式輸入,這里我篩選了Gene_name中的前50個(gè)名稱在list中。pointSize和pointShape設(shè)置點(diǎn)的大小和形狀。 legend_position 設(shè)置圖例位置,默認(rèn)是在左上,即UL,我將其設(shè)置在沒有遮擋的坐下,即DR。

- 漸變色火山圖 gradual_volcano
ggVolcano中有一個(gè)獨(dú)立的函數(shù)ggradual_volcano來繪制漸變色火山圖。
這里需要注意的是,前面的pointSize, pointShape在這里沒法使用,但是可以設(shè)置pointSizeRange來控制大小的變化。這里我設(shè)置了從大到小以及從小到大,可以看看效果。
# gradual_volcano
P3 <- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
label = "Gene_name",output = F,
fills = brewer.pal(5, "RdYlBu"),
colors = brewer.pal(10, "RdYlBu"),
x_lab = "log2FC",
y_lab = "-Log10P.Value",
custom_label = label_list ,
legend_position = "DR")
#
mycolors <- hcl.colors(10)
P4 <- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
label = "Gene_name",output = F,
fills = mycolors,
colors = mycolors,
x_lab = "log2FC",
y_lab = "-Log10P.Value",
custom_label = label_list ,
pointSizeRange = c(1,4),
legend_position = "DR")
#
P5<- gradual_volcano(DEG_data,x= "logFC",y ="P.adj",
label = "Gene_name",output = F,
x_lab = "log2FC",
y_lab = "-Log10P.Value",
custom_label = label_list ,
pointSizeRange = c(4,1),
legend_position = "DR")+
scale_color_gsea()+
scale_fill_gsea()
pdf("gradual_plot.pdf",width = 16, heigh = 6)
P3|P4|P5
dev.off()
P3使用RColorBrewer包進(jìn)行配色,未設(shè)置點(diǎn)的大小
P4使用R中自帶的grDevices配色,點(diǎn)從小到大
P5使用ggsci包進(jìn)行配色,ggsci中可選用漸變色的色盤很少,選擇時(shí)需要看說明。點(diǎn)改為從大到小

雖然漸變色更炫酷,但是好像不太實(shí)用。