小郭叨叨叨:
本文档主要介绍EnhancedVolcano
包及参数说明。
作者 Kevin Blighe,R包信息参见Publication-ready volcano plots with enhanced colouring and labeling本文档仅为 EnhancedVolcano 包介绍内容的搬运工,究其原因:
- 忠实原意,享受原汁原味;
- 懒,翻译的脑子我都懒得动。
对于喜欢中文介绍的读者,这里为大家推荐一篇:增强火山图,要不要试一下?
本文档搬运时间:2019-07-07.
Install
if (!requireNamespace('BiocManager', quietly = TRUE))
install.packages('BiocManager')
BiocManager::install('EnhancedVolcano')
devtools::install_github('kevinblighe/EnhancedVolcano') #install development version
建议安装 development version,部分功能只有此版本有,详情请在文中查找
Quick start
library(EnhancedVolcano)
library(airway)
library(magrittr)
Follow the tutorial (from Section 3.1) of RNA-seq workflow: gene-level exploratory analysis and differential expression. load airway
data where different airway smooth muscle cells were treated with dexamethasone.
data('airway')
airway$dex %<>% relevel('untrt')
# %<>%复合赋值操作符, 除与 %>% 功能基本一样外,还将结果写到左侧对象。
# 对airway$dex列进行relevel,再把revel后的结果赋值到airway$dex。
# relevel: reorder levels of factor
Conduct differential expression using DESeq2 in order to create 2 sets of results:
library('DESeq2')
dds <- DESeqDataSet(airway, design = ~ cell + dex)
dds <- DESeq(dds, betaPrior=FALSE)
res1 <- results(dds,
contrast = c('dex','trt','untrt'))
res1 <- lfcShrink(dds,
contrast = c('dex','trt','untrt'), res=res1)
res2 <- results(dds,
contrast = c('cell', 'N061011', 'N61311'))
res2 <- lfcShrink(dds,
contrast = c('cell', 'N061011', 'N61311'), res=res2)
Plot the most basic volcano plot
For the most basic volcano plot, only a single data-frame or -matrix of test results is required, containing transcript names
, log2FC
, and adjusted or unadjusted P values
. The default cut-off for log2FC is >|2|; the default cut-off for P value is 10e-6.
EnhancedVolcano(res1,
lab = rownames(res1),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-5, 8))
图例:NS
-非显著基因;Log2 FC
-倍数大于阈值的基因;P
-统计显著的基因;P & Log2 FC
-差异基因.
Advanced features
Virtually: all aspects of an EnhancedVolcano plot can be configured for the purposes of accommodating all types of statistical distributions and labelling preferences.
By default, EnhancedVolcano will only attempt to label genes that pass the thresholds that you set for statistical significance, i.e., pCutoff
and FCcutoff
.
In addition, it will only label as many of these that can reasonably fit in the plot space. The user can optionally supply a vector of transcript names (as selectLab
) that s/he wishes to label in the plot.
Modify cut-offs for log2FC and P value; specify title; adjust point and label size
Maybe:
P value cut-off of 10e-6 : too relaxed
log2FC cut-off of >|2| : too stringent
In this example, we also modify the point and label size, which can help to improve clarity where many transcripts went into the differential expression analysis.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-8, 8),
title = 'N061011 versus N61311',
pCutoff = 10e-16,
FCcutoff = 1.5,
transcriptPointSize = 1.5,
transcriptLabSize = 3.0)
参数 | 说明 | 默认值 |
---|---|---|
pCutoff | Cut-off for statistical significance. A horizontal line will be drawn at -log10(pCutoff). | DEFAULT = 0.05. OPTIONAL. |
FCcutoff | Cut-off for absolute log2 fold-change. Vertical lines will be drawn at the negative and positive values of FCCutoff. | DEFAULT = 2.0. OPTIONAL. |
transcriptPointSize | Size of plotted points for each transcript. | DEFAULT = 0.8. OPTIONAL. |
transcriptLabSize | Size of labels for each transcript. | DEFAULT = 3.0. OPTIONAL. |
Adjust colour and alpha for point shading
adjust the value for 'alpha', which controls the transparency of the plotted points: 1 = 100% opaque; 0 = 100% transparent.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-8, 8),
title = 'N061011 versus N61311',
pCutoff = 10e-16,
FCcutoff = 1.5,
transcriptPointSize = 1.5,
transcriptLabSize = 3.0,
col=c('black', 'black', 'black', 'red3'),
colAlpha = 1)
参数 | 说明 | 默认值 |
---|---|---|
col | Colour shading for plotted points, corresponding to < abs(FCcutoff) && > pCutoff, > abs(FCcutoff), < pCutoff, > abs(FCcutoff) && < pCutoff. | DEFAULT = c("grey30", "forestgreen", "royalblue", "red2"). OPTIONAL. |
colAlpha | Alpha for purposes of controlling colour transparency of transcript points. | DEFAULT = 0.5. OPTIONAL. |
Adjust shape of plotted points
Default shape is a circle. The user can specify their own shape encoding via the shape
parameter, which accepts either a single or four possible values: if four values, these then map to the standard designation that is also assigned by the colours; if a single value, all points are shaped with this value.
For more information on shape encoding search online at ggplot2 Quick Reference: shape
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-8, 8),
title = 'N061011 versus N61311',
pCutoff = 10e-16,
FCcutoff = 1.5,
transcriptPointSize = 3.0,
transcriptLabSize = 3.0,
shape = 8,
colAlpha = 1)
# 注意Bioconductor版本该处shape功能并不能用,需要安装github的开发版
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-8, 8),
title = 'N061011 versus N61311',
pCutoff = 10e-16,
FCcutoff = 1.5,
transcriptPointSize = 2.0,
transcriptLabSize = 3.0,
shape = c(1, 4, 23, 25),
colAlpha = 1)
Adjust cut-off lines and add extra threshold lines
The lines that are drawn to indicate cut-off points are also modifiable. The parameter cutoffLineType
accepts the following values: "blank", "solid", "dashed", "dotted", "dotdash", "longdash", and "twodash". The colour and thickness of these can also be modified with cutoffLineCol
and cutoffLineWidth
. To disable the lines, set either cutoffLineType="blank"
or cutoffLineWidth=0
.
Extra lines can also be added via hline
and vline
to display other cut-offs.
To make these more visible, we will also remove the default gridlines.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-6, 6),
title = 'N061011 versus N61311',
pCutoff = 10e-12,
FCcutoff = 1.5,
transcriptPointSize = 1.5,
transcriptLabSize = 3.0,
colAlpha = 1,
cutoffLineType = 'blank',
cutoffLineCol = 'black',
cutoffLineWidth = 0.8,
hline = c(10e-12, 10e-36, 10e-60, 10e-84),
hlineCol = c('grey0', 'grey25','grey50','grey75'),
hlineType = 'longdash',
hlineWidth = 0.8,
gridlines.major = FALSE,
gridlines.minor = FALSE)
参数 | 说明 | 默认值 |
---|---|---|
cutoffLineType | Line type for FCcutoff and pCutoff ("blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash"). | DEFAULT = "longdash". OPTIONAL. |
cutoffLineCol | Line colour for FCcutoff and pCutoff. | DEFAULT = "black". OPTIONAL. |
cutoffLineWidth | Line width for FCcutoff and pCutoff. | DEFAULT = 0.4. OPTIONAL. |
hline | Draw one or more horizontal lines passing through this/these values on y-axis. For single values, only a single numerical value is necessary. For multiple lines, pass these as a vector, e.g., c(60,90). | DEFAULT = NULL. OPTIONAL. |
hlineType | Line type for hline ('blank', 'solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'). | DEFAULT = 'longdash'. OPTIONAL. |
hlineCol | Colour of hline. | DEFAULT = 'black'. OPTIONAL. |
hlineWidth | Width of hline. | DEFAULT = 0.4. OPTIONAL. |
vline | Draw one or more vertical lines passing through this/these values on x-axis. For single values, only a single numerical value is necessary. For multiple lines, pass these as a vector, e.g., c(60,90). | DEFAULT = NULL. OPTIONAL. |
vlineType | Line type for vline ('blank', 'solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'). | DEFAULT = 'longdash'. OPTIONAL. |
vlineCol | Colour of vline. | DEFAULT = 'black'. OPTIONAL. |
vlineWidth | Width of vline. | DEFAULT = 0.4. OPTIONAL. |
gridlines.major | Logical, indicating whether or not to draw major gridlines. | DEFAULT = TRUE. OPTIONAL |
gridlines.minor | Logical, indicating whether or not to draw minor gridlines. | DEFAULT = TRUE. OPTIONAL |
Adjust legend position, size, and text
The position of the legend can also be changed to "left" or "right" (stacked vertically), or 'top' or "bottom" (stacked horizontally). The legend text, label size, and icon size can also be modified.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-6, 6),
pCutoff = 10e-12,
FCcutoff = 1.5,
cutoffLineType = 'twodash',
cutoffLineWidth = 0.8,
transcriptPointSize = 3.0,
transcriptLabSize = 4.0,
colAlpha = 1,
legend=c('NS','Log (base 2) fold-change','P value',
'P value & Log (base 2) fold-change'),
legendPosition = 'right',
legendLabSize = 16,
legendIconSize = 5.0)
参数 | 说明 | 默认值 |
---|---|---|
legend | Plot legend text. DEFAULT = c("NS", "Log2 FC", "P", "P & Log2 FC"). | OPTIONAL. |
legendPosition | Position of legend ("top", "bottom", "left", "right"). | DEFAULT = "top". OPTIONAL. |
legendLabSize | Size of plot legend text. | DEFAULT = 14. OPTIONAL. |
legendIconSize | Size of plot legend icons / symbols. | DEFAULT = 4.0. OPTIONAL. |
legendVisible | Logical, indicating whether or not to show the legend. | DEFAULT = TRUE. OPTIONAL. |
Note: to make the legend completely invisible, specify: legendVisible = FALSE
Plot adjusted p-values
Volcano plots do not have to be produced with nominal (unadjusted P values), even if this is the common practice. Simply provide a column name relating to adjusted P values and you can also generate a volcano with these. In this case, the cutoff for the P value then relates to the adjusted P value. Here, we also modify the axis titles by supplying an expression via the bquote
function.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'padj',
xlim=c(-6,6),
xlab = bquote(~Log[2]~ 'fold change'),
ylab = bquote(~-Log[10]~adjusted~italic(P)),
pCutoff = 0.0001,
FCcutoff = 1.0,
transcriptLabSize = 4.0,
colAlpha = 1,
legend=c('NS','Log2 FC','Adjusted p-value',
'Adjusted p-value & Log2 FC'),
legendPosition = 'bottom',
legendLabSize = 10,
legendIconSize = 3.0)
参数 | 说明 | 默认值 |
---|---|---|
xlab | Label for x-axis. | DEFAULT = bquote(Log[2] "fold change"). OPTIONAL. |
ylab | Label for y-axis. | DEFAULT = bquote(-Log[10]italic(P)). OPTIONAL. |
axisLabSize | Size of x- and y-axis labels. | DEFAULT = 18. OPTIONAL. |
Fit more labels by adding connectors
In order to maximise free space in the plot window, one can fit more transcript labels by adding connectors from labels to points, where appropriate. The width and colour of these connectors can also be modified with widthConnectors
and colConnectors
, respectively. Further configuration is achievable via typeConnectors
("open", "closed"), endsConnectors
("last", "first", "both"), and lengthConnectors
(default = unit(0.01, 'npc')).
The result may not always be desirable as it can make the plot look overcrowded.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
xlim = c(-6,6),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 10e-14,
FCcutoff = 2.0,
transcriptPointSize = 3.0,
transcriptLabSize = 4.0,
colAlpha = 1,
legend=c('NS','Log (base 2) fold-change','P value',
'P value & Log (base 2) fold-change'),
legendPosition = 'right',
legendLabSize = 12,
legendIconSize = 4.0,
drawConnectors = TRUE,
widthConnectors = 0.2,
colConnectors = 'grey30')
参数 | 说明 | 默认值 |
---|---|---|
drawConnectors | Logical, indicating whether or not to connect plot labels to their corresponding points by line connectors. | DEFAULT = FALSE. OPTIONAL. |
widthConnectors | Line width of connectors. | DEFAULT = 0.5. OPTIONAL. |
typeConnectors | Have the arrow head open or filled ('closed')? ('open', 'closed'). | DEFAULT = 'closed'. OPTIONAL. |
endsConnectors | Which end of connectors to draw arrow head? ('last', 'first', 'both'). | DEFAULT = 'first'. OPTIONAL. |
lengthConnectors | Length of the connectors. | DEFAULT = unit(0.01, 'npc'). OPTIONAL |
colConnectors | Line colour of connectors. | DEFAULT = 'grey10'. OPTIONAL. |
Only label key transcripts
In many situations, people may only wish to label their key transcripts / transcripts of interest. One can therefore supply a vector of these transcripts via the selectLab
parameter, the contents of which have to also be present in the vector passed to lab
. In addition, only those transcripts that pass both the cutoff for log2FC and P value will be labelled.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = c('ENSG00000106565','ENSG00000187758'),
xlim = c(-6,7),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 10e-14,
FCcutoff = 2.0,
transcriptPointSize = 3.0,
transcriptLabSize = 5.0,
shape = c(4, 35, 17, 18),
colAlpha = 1,
legend=c('NS','Log (base 2) fold-change','P value',
'P value & Log (base 2) fold-change'),
legendPosition = 'right',
legendLabSize = 14,
legendIconSize = 5.0)
参数 | 说明 | 默认值 |
---|---|---|
selectLab | A vector containing a subset of lab. | DEFAULT = NULL. OPTIONAL. |
Draw labels in boxes
To improve label clarity, we can draw simple boxes around the plots labels. This works much better when drawConnectors
is also TRUE.
EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = c('ENSG00000106565','ENSG00000187758',
'ENSG00000230795', 'ENSG00000164530',
'ENSG00000143153'),
xlim = c(-5.5,8),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 10e-14,
FCcutoff = 2.0,
transcriptPointSize = 3.0,
transcriptLabSize = 5.0,
transcriptLabCol = 'black',
transcriptLabFace = 'bold',
boxedlabels = TRUE,
colAlpha = 4/5,
legend=c('NS','Log (base 2) fold-change','P value',
'P value & Log (base 2) fold-change'),
legendPosition = 'right',
legendLabSize = 14,
legendIconSize = 4.0,
drawConnectors = TRUE,
widthConnectors = 1.0,
colConnectors = 'black')
参数 | 说明 | 默认值 |
---|---|---|
boxedlabels | Logical, indicating whether or not to draw labels in boxes. | DEFAULT = FALSE. OPTIONAL. |
Over-ride colouring scheme with custom key-value pairs
In certain situations, one may wish to over-ride the default colour scheme with their own colour-scheme, such as colouring transcripts by pathway, cell-type or group. This can be achieved by supplying a named vector as colCustom
.
In this example, we just wish to colour all transcripts with log2FC > 2.5 as 'high' and those with log2FC < -2.5 as 'low'.
# create custom key-value pairs for 'high', 'low', 'mid' expression by fold-change
# set the base colour as 'black'
keyvals <- rep('black', nrow(res2))
# set the base name/label as 'Mid'
names(keyvals) <- rep('Mid', nrow(res2))
# modify keyvals for transcripts with fold change > 2.5
keyvals[which(res2$log2FoldChange > 2.5)] <- 'gold'
names(keyvals)[which(res2$log2FoldChange > 2.5)] <- 'high'
# modify keyvals for transcripts with fold change < -2.5
keyvals[which(res2$log2FoldChange < -2.5)] <- 'royalblue'
names(keyvals)[which(res2$log2FoldChange < -2.5)] <- 'low'
unique(names(keyvals))
[1] "Mid" "low" "high"
unique(keyvals)
[1] "black" "royalblue" "gold"
keyvals[1:20]
Mid Mid Mid Mid Mid Mid Mid Mid Mid Mid Mid Mid
"black" "black" "black" "black" "black" "black" "black" "black" "black" "black" "black" "black"
Mid Mid Mid Mid Mid Mid Mid Mid
"black" "black" "black" "black" "black" "black" "black" "black"
p1 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = rownames(res2)[which(names(keyvals) %in% c('high', 'low'))],
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'Custom colour over-ride',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptPointSize = 3.5,
transcriptLabSize = 4.5,
shape = c(6, 4, 2, 11),
colCustom = keyvals,
colAlpha = 1,
legendPosition = 'top',
legendLabSize = 15,
legendIconSize = 5.0,
drawConnectors = TRUE,
widthConnectors = 0.5,
colConnectors = 'grey50',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'partial',
borderWidth = 1.5,
borderColour = 'black')
p2 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = rownames(res2)[which(names(keyvals) %in% c('high', 'low'))],
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'No custom colour over-ride',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptPointSize = 3.5,
transcriptLabSize = 4.5,
colCustom = NULL,
colAlpha = 1,
legendPosition = 'top',
legendLabSize = 15,
legendIconSize = 5.0,
drawConnectors = FALSE,
widthConnectors = 0.5,
colConnectors = 'grey50',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'full',
borderWidth = 1.0,
borderColour = 'black')
library(gridExtra)
library(grid)
grid.arrange(p1, p2,
ncol=2,
top = textGrob('EnhancedVolcano',
just = c('center'),
gp = gpar(fontsize = 32)))
grid.rect(gp=gpar(fill=NA))
参数 | 说明 | 默认值 |
---|---|---|
colCustom | Named vector / key-value pairs that will over-ride the default colour scheme. The order must match that of toptable. Names / keys relate to groups / categories; values relate to colour. | DEFAULT = NULL. OPTIONAL. |
Over-ride colour and/or shape scheme with custom key-value pairs
In this example, we first over-ride the existing shape scheme and then both the colour and shape scheme at the same time.
# define different cell-types that will be shaded
celltype1 <- c('ENSG00000106565', 'ENSG00000002933',
'ENSG00000165246', 'ENSG00000224114')
celltype2 <- c('ENSG00000230795', 'ENSG00000164530',
'ENSG00000143153', 'ENSG00000169851',
'ENSG00000231924', 'ENSG00000145681')
# create custom key-value pairs for different cell-types
# set the base shape as '3'
keyvals.shape <- rep(3, nrow(res2))
# set the base name/label as 'PBC'
names(keyvals.shape) <- rep('PBC', nrow(res2))
# modify the keyvals for cell-type 1
keyvals.shape[which(rownames(res2) %in% celltype1)] <- 17
names(keyvals.shape)[which(rownames(res2) %in% celltype1)] <- 'Cell-type 1'
# modify the keyvals for cell-type 2
keyvals.shape[which(rownames(res2) %in% celltype2)] <- 64
names(keyvals.shape)[which(rownames(res2) %in% celltype2)] <- 'Cell-type 2'
unique(names(keyvals.shape))
[1] "PBC" "Cell-type 1" "Cell-type 2"
unique(keyvals.shape)
[1] 3 17 64
keyvals.shape[1:20]
PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC PBC
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
p1 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = rownames(res2)[which(names(keyvals) %in% c('high', 'low'))],
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'Custom shape over-ride',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptPointSize = 3.5,
transcriptLabSize = 4.5,
shapeCustom = keyvals.shape,
colCustom = NULL,
colAlpha = 1,
legendLabSize = 15,
legendPosition = 'left',
legendIconSize = 5.0,
drawConnectors = TRUE,
widthConnectors = 0.5,
colConnectors = 'grey50',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'partial',
borderWidth = 1.5,
borderColour = 'black')
# create custom key-value pairs for 'high', 'low', 'mid' expression by fold-change
# set the base colour as 'black'
keyvals.colour <- rep('black', nrow(res2))
# set the base name/label as 'Mid'
names(keyvals.colour) <- rep('Mid', nrow(res2))
# modify keyvals for transcripts with fold change > 2.5
keyvals.colour[which(res2$log2FoldChange > 2.5)] <- 'gold'
names(keyvals.colour)[which(res2$log2FoldChange > 2.5)] <- 'high'
# modify keyvals for transcripts with fold change < -2.5
keyvals.colour[which(res2$log2FoldChange < -2.5)] <- 'royalblue'
names(keyvals.colour)[which(res2$log2FoldChange < -2.5)] <- 'low'
unique(names(keyvals.colour))
[1] "Mid" "low" "high"
unique(keyvals.colour)
[1] "black" "royalblue" "gold"
p2 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = rownames(res2)[which(names(keyvals) %in% c('High', 'Low'))],
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'Custom shape & colour over-ride',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptPointSize = 5.5,
transcriptLabSize = 0.0,
shapeCustom = keyvals.shape,
colCustom = keyvals.colour,
colAlpha = 1,
legendPosition = 'top',
legendLabSize = 15,
legendIconSize = 5.0,
drawConnectors = TRUE,
widthConnectors = 0.5,
colConnectors = 'grey50',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'full',
borderWidth = 1.0,
borderColour = 'black')
library(gridExtra)
library(grid)
grid.arrange(p1, p2,
ncol=2,
top = textGrob('EnhancedVolcano',
just = c('center'),
gp = gpar(fontsize = 32)))
grid.rect(gp=gpar(fill=NA))
Shade certain transcripts
In this example we add an extra level of highlighting key transcripts by shading.
This feature works best for shading just 1 or 2 key transcripts. It is expected that the user can use the shapeCustom
parameter for more in depth identification of different types of transcripts.
# define different cell-types that will be shaded
celltype1 <- c('ENSG00000106565', 'ENSG00000002933')
celltype2 <- c('ENSG00000230795', 'ENSG00000164530')
p1 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = celltype1,
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'Shading cell-type 1',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptPointSize = 8.0,
transcriptLabSize = 5.0,
transcriptLabCol = 'purple',
transcriptLabFace = 'bold',
boxedlabels = TRUE,
shape = 42,
colCustom = keyvals,
colAlpha = 1,
legendPosition = 'top',
legendLabSize = 15,
legendIconSize = 5.0,
shade = celltype1,
shadeLabel = 'Cell-type I',
shadeAlpha = 1/2,
shadeFill = 'purple',
shadeSize = 1,
shadeBins = 5,
drawConnectors = TRUE,
widthConnectors = 1.0,
colConnectors = 'grey30',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'partial',
borderWidth = 1.5,
borderColour = 'black')
p2 <- EnhancedVolcano(res2,
lab = rownames(res2),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = celltype2,
xlim = c(-6.5,6.5),
xlab = bquote(~Log[2]~ 'fold change'),
title = 'Shading cell-type 2',
pCutoff = 10e-14,
FCcutoff = 1.0,
transcriptLabSize = 5.0,
transcriptLabCol = 'forestgreen',
transcriptLabFace = 'bold',
shapeCustom = keyvals.shape,
colCustom = keyvals.colour,
colAlpha = 1,
legendPosition = 'top',
transcriptPointSize = 4.0,
legendLabSize = 15,
legendIconSize = 5.0,
shade = celltype2,
shadeLabel = 'Cell-type II',
shadeAlpha = 1/2,
shadeFill = 'forestgreen',
shadeSize = 1,
shadeBins = 5,
drawConnectors = TRUE,
widthConnectors = 1.0,
colConnectors = 'grey30',
gridlines.major = TRUE,
gridlines.minor = FALSE,
border = 'full',
borderWidth = 1.0,
borderColour = 'black')
library(gridExtra)
library(grid)
grid.arrange(p1, p2,
ncol=2,
top = textGrob('EnhancedVolcano',
just = c('center'),
gp = gpar(fontsize = 32)))
grid.rect(gp=gpar(fill=NA))
参数 | 说明 | 默认值 |
---|---|---|
shapeCustom | Named vector / key-value pairs that will over-ride the default shape scheme. The order must match that of toptable. Names / keys relate to groups / categories; values relate to shape encodings. | DEFAULT = NULL. OPTIONAL. |
巨人的肩膀
Publication-ready volcano plots with enhanced colouring and labeling