EnhancedVolcano
包可根據(jù)差異分析結(jié)果针史,基于ggplot2繪圖結(jié)構(gòu)斩披,方便地繪制美觀的火山圖,下面根據(jù)自己的理解小結(jié)下基本用法排作。
示例差異基因數(shù)據(jù)
library(airway)
library(magrittr)
data('airway')
airway$dex %<>% relevel('untrt')
ens <- rownames(airway)
library(org.Hs.eg.db)
symbols <- mapIds(org.Hs.eg.db, keys = ens,
column = c('SYMBOL'), keytype = 'ENSEMBL')
symbols <- symbols[!is.na(symbols)]
symbols <- symbols[match(rownames(airway), names(symbols))]
rownames(airway) <- symbols
keep <- !is.na(rownames(airway))
airway <- airway[keep,]
library('DESeq2')
dds <- DESeqDataSet(airway, design = ~ cell + dex)
dds <- DESeq(dds, betaPrior=FALSE)
res <- results(dds,
contrast = c('dex','trt','untrt'))
res <- lfcShrink(dds,
contrast = c('dex','trt','untrt'), res=res, type = 'normal')
res <- as.data.frame(res)
head(res)
# baseMean log2FoldChange lfcSE stat pvalue padj
# TSPAN6 710.0931707 -0.37807189 0.09851236 -3.8404448 0.0001228116 0.0009522932
# TNMD 0.0000000 NA NA NA NA NA
# DPM1 521.2572396 0.19826365 0.10931684 1.8155169 0.0694445184 0.1910397405
# SCYL3 237.6068046 0.03234467 0.13821470 0.2371917 0.8125081096 0.9118161375
# C1orf112 58.0358739 -0.08835419 0.25056704 -0.3194810 0.7493618190 0.8773885438
# FGR 0.3194343 -0.08459224 0.15186225 -0.3948862 0.6929268648 NA
如上乡革,只要包含包含
基因名
寇僧、差異倍數(shù)
、P值
三部分信息的差異結(jié)果就可以用于繪制火山圖沸版。
- 安裝嘁傀、加載包
# BiocManager::install('EnhancedVolcano')
library(EnhancedVolcano)
基本繪制
如下代碼,需要分別交代基因名视粮;x軸為差異倍數(shù)细办;y軸為P值
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue')
如下圖結(jié)果,基本繪制了不錯的火山圖蕾殴。
EnhancedVolcano()
也提供了很多調(diào)整的參數(shù)笑撞,可供優(yōu)化選擇
1、標題修改
-
title =
主標題 -
subtitle =
副標題钓觉,默認為 "EnhancedVolcano" -
caption =
圖注茴肥,默認為基因總數(shù)統(tǒng)計
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
title = 'Disease versus Normal',
subtitle = NULL,
caption = NULL)
2、閾值修改
- 差異倍數(shù):
pCutoff = 10e-32
- p值:
FCcutoff = 2
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
pCutoff = 10e-32,
FCcutoff = 3)
3荡灾、點point的修改
- 點的大腥亢:
pointSize = 2
- 點的不透明度(0~1):
colAlpha = 1/2
- 點的顏色
col = c("grey30", "forestgreen", "royalblue", "red2")
瞬铸,分別對應(yīng)NS,僅差異倍數(shù)础锐,僅P值嗓节,差異倍數(shù)與P值
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
pointSize = 1,
colAlpha = 0.3,
col = c("black","black","black","red"))
4、legend的修改
-
legendLabels=
修改legend的標簽內(nèi)容 -
legendLabSize = 14
修改legend的標簽大小 -
legendPosition = "top"
修改legend的位置 -
legendIconSize = 5
修改legend的圖標大小
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
legendLabels=c('Not sig.',
'Log (base 2) FC',
'p-value',
'p-value & Log (base 2) FC'),
legendPosition = 'right',
legendLabSize = 5,
legendIconSize = 5.0)
可使用ggplot2的語法
+ theme(legend.position="none")
設(shè)置取消legend
5郁稍、設(shè)置point label
- 如上面的圖赦政,
EnhancedVolcano()
會顯示部分具有顯著意義的基因名胜宇。我們也可以自定義修改顯示哪些基因的標簽
p1 = EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = c('VCAM1','KCTD12','ADAM12',
'CXCL12','CACNB2','SPARCL1',
'DUSP1','SAMHD1','MAOA'),
drawConnectors = TRUE)
p2 = EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
col = c("black","black","black","red"),
selectLab = "") +
theme(legend.position="none")
library(patchwork)
p1 | p2