介紹
關(guān)于ggvolcano包和ggplot2包繪制火山圖角寸,以及加標簽、修改配色等鸯两。
獲得差異基因列表后忿项,用以進行差異基因分析的數(shù)據(jù)通常包括包括Gene_ID蓉冈,logFoldChange脆栋,P值和P.adj,上調(diào)下調(diào)信息以及注釋信息(Symbol name或Gene name等)洒擦〈徽火山圖不需要每個樣本的表達量,所以這些信息就足夠了熟嫩。
> 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是專門針對火山圖開發(fā)的包秦踪。它的相關(guān)參數(shù)是直接針對差異基因繪制火山圖設(shè)計的。
- 安裝
install.packages("devtools")
library(devtools)
devtools::install_github("BioSenior/ggvolcano",force = TRUE)
library(ggVolcano)
注意library中的'ggVolcano'的'V'是大寫掸茅。否則安裝成功后椅邓,運行時顯示找不到包。
- 數(shù)據(jù)處理
# 讀入R包
library(ggVolcano)
library(tidyverse)
library(RColorBrewer)
library(ggsci)
library(patchwork)
# RColorBrewer可以生成漸變色盤昧狮,僅作繪圖嘗試景馁,在火山圖中其實并不實用
# patchwork可通過“|”命令合并多個圖,快捷方便逗鸣,但更多時候還是通過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需要識別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)
- 火山圖繪制
繪圖萨蚕,我們簡單繪制一個默認參數(shù)下的圖,隨后嘗試調(diào)整各種參數(shù)
P1 <- ggvolcano(DEG_data,x= "logFC",y ="P.adj",label = "Gene_name")
P1為默認參數(shù)下的結(jié)果蹄胰,其中Gene_name為注釋信息列岳遥,也可以是Gene_ID或自己命名的其它列。默認情況顯示10個label烤送,可通過"label_number = "控制顯示標簽的數(shù)目寒随。output = F表示不輸出文件,如果output = T帮坚,則需要設(shè)置 “filename = ”參數(shù)。默認情況下互艾,x軸為Log2FC试和,Y軸為-Log10FDR,圖例位置在左上方纫普。接下來我們對圖進行部分調(dià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è)置自己想要顯示的標簽拳锚,以list形式輸入,這里我篩選了Gene_name中的前50個名稱在list中寻行。pointSize和pointShape設(shè)置點的大小和形狀霍掺。 legend_position 設(shè)置圖例位置,默認是在左上拌蜘,即UL杆烁,我將其設(shè)置在沒有遮擋的坐下,即DR简卧。
- 漸變色火山圖 gradual_volcano
ggVolcano中有一個獨立的函數(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包進行配色,未設(shè)置點的大小
P4使用R中自帶的grDevices配色骄噪,點從小到大
P5使用ggsci包進行配色尚困,ggsci中可選用漸變色的色盤很少,選擇時需要看說明链蕊。點改為從大到小
雖然漸變色更炫酷滔韵,但是好像不太實用逻谦。