增强火山图,要不要试一下?

2019-06-26 23:27:11 浏览数 (1)

包作者:Kevin Blighe撰文:协和医学院 苑晓梅编辑:生信宝典 时间:2019-06-03

前言

最近道听途说EnhancedVolcano绘制火山图的方便性,所以本人就根据其说明文档进行操作。但在操作过程中发现,其shape功能并没有在help文档中找到,经过搜索在github上看到了以下的答复 。。。(说明整个文档功能并没有完全开发,需进行选择)

1 Introduction

火山图是可视化差异表达分析结果的有效方法。这次更新的EnhancedVolcano目的就是两个(1)使转录本基因名称的显示更加的合理化,避免出现相互重叠的现象;(2)允许用户通过颜色,形状和阴影参数配置在同一绘图空间中识别多达3种不同类型的属性。

2 Installation

2.1 1. 下载安装包

代码语言:javascript复制
# if (!requireNamespace('BiocManager', quietly = TRUE))
#    install.packages('BiocManager')
# BiocManager::install('EnhancedVolcano')
if (!requireNamespace('devtools', quietly = TRUE))
   install.packages('devtools')
devtools::install_github('kevinblighe/EnhancedVolcano')

2.2 2. 加载R包

代码语言:javascript复制
 library(EnhancedVolcano)

3 开始

作者使用该流程: RNA-seq workflow: gene-level exploratory analysis and differential expression。具体来说,我们将加载airway数据,其中不同的气道平滑肌细胞用地塞米松治疗。

代码语言:javascript复制
library(airway)
library(magrittr)

data('airway')
# %<>%复合赋值操作符, 功能与 %>% 基本是一样的,但多了一项额外的操作,就是把结果写到左侧对象。
# 对dex列进行relevel,再把revel后的结果赋值到airway$dex。
airway$dex %<>% relevel('untrt')

使用DESeq2进行差异表达,以创建两组结果(DESeq2差异基因分析和批次效应移除):

代码语言:javascript复制
  library('DESeq2')

  dds <- DESeqDataSet(airway, design = ~ cell   dex)
  dds <- DESeq(dds, betaPrior=FALSE)
  # compare trt & untrt
  res1 <- results(dds,
    contrast = c('dex','trt','untrt'))
  # shrink log2 fold change
  res1 <- lfcShrink(dds,
    contrast = c('dex','trt','untrt'), res=res1)
  # compare different cells
  res2 <- results(dds,
    contrast = c('cell', 'N061011', 'N61311'))
  res2 <- lfcShrink(dds,
    contrast = c('cell', 'N061011', 'N61311'), res=res2)

查看下数据结构

代码语言:javascript复制
head res1
代码语言:javascript复制
log2 fold change (MAP): dex trt vs untrt 
Wald test p-value: dex trt vs untrt 
DataFrame with 6 rows and 6 columns
                         baseMean      log2FoldChange              lfcSE
                        <numeric>           <numeric>          <numeric>
ENSG00000000003  708.602169691234  -0.374152710396614 0.0988428916720785
ENSG00000000005                 0                  NA                 NA
ENSG00000000419  520.297900552084   0.202062036081026  0.109739490807055
ENSG00000000457  237.163036796015  0.0361672062398394  0.138337785736641
ENSG00000000460  57.9326331250967 -0.0844566831590659  0.249890471495246
ENSG00000000938 0.318098378392895 -0.0841390331826692  0.151334283397515
                              stat               pvalue                padj
                         <numeric>            <numeric>           <numeric>
ENSG00000000003   -3.7877506903658 0.000152017272634539 0.00128363812227422
ENSG00000000005                 NA                   NA                  NA
ENSG00000000419   1.84294384315416   0.0653372100766985    0.19654584069126
ENSG00000000457  0.264356843264039    0.791504963002101   0.911458000845921
ENSG00000000460 -0.307052600205469    0.758803335537917   0.895034449952733
ENSG00000000938  -0.39379516719652    0.693732272741941                  NA

3.1 绘制最基本的火山图

对于最基本的火山图,只需要一个数据框或测试结果矩阵,包含转录本名称,log2FC以及adjusted或unajusted的P值。 log2FC的默认cut-off值是 > | 2 |; P值的默认cut-off值为10e-6。

代码语言:javascript复制
EnhancedVolcano(res1,
   # 基因名字
    lab = rownames(res1),
    x = 'log2FoldChange',
    y = 'pvalue',
    xlim = c(-5, 8))

图例:NS-非显著基因;Log2 FC倍数大于阈值的基因;P 统计显著的基因;P & Log2 FC 差异基因

4 高级功能

默认情况下,EnhancedVolcano将仅尝试标记设置的阈值筛选出的差异基因,即p CutoffFC cutoff。 此外,它只会标记可以合理地适合绘图空间的基因。 用户可以选择性地提供他/她希望在图中标记的转录本名称的矢量(as selectLab)。

在这个例子中,还修改了点和标签大小,帮助改善清晰度,保障更多的转录本进入差异分析中。

代码语言:javascript复制
  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)

4.2 调整点的颜色和透明度

默认配色方案可能不是每个人都喜欢。 在这里,只有通过log2FC和P值筛选的差异转录本都是红色的,其他一切都是黑色的。 还调整’alpha’的值,它控制绘制点的透明度:1 = 100%不透明; 0 = 100%透明

代码语言:javascript复制
  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,
    # Colour shading for plotted points, corresponding to < abs(FCcutoff) && > pCutoff, 
    # > abs(FCcutoff), < pCutoff, > abs(FCcutoff) && < pCutoff. 
    # 无显著,倍数大(左下、右下),P小 (中上), 显著差异
    # > DEFAULT = c("grey30", "forestgreen", "royalblue", "red2").
    col=c('black', 'black', 'black', 'red3'),
    colAlpha = 1)

4.3 调整绘制点的形状

它可以帮助将不同的点绘制成不同的形状。 默认形状是圆形。 用户可以通过shape参数指定形状,该参数接受单个或四个可能的值:如果有四个值,则这些值将映射到也由颜色指定的标准名称; 如果是单个值,则所有点都用此值绘制。

For more information on shape encoding search online at ggplot2 Quick Reference: shape

代码语言:javascript复制
 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的开发版

调整画图点的形状

代码语言:javascript复制
  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,
    # 同上面col
    # 无显著,倍数大(左下、右下),P小 (中上), 显著差异
    shape = c(1, 4, 23, 25),
    colAlpha = 1)

4.4 调整cut-off线并添加额外的阈值线

cut-off线可以通过以下参数进行调整。 “cutoffLineType”以下参数进行修改:“blank”, “solid”, “dashed”, “dotted”, “dotdash”, “longdash”, “twodash”;cutoff线的颜色和粗细可以通过 ‘cutoffLineCol’ 和 ‘cutoffLineWidth’进行修改,如果不需要该cut-off线,可以设置“cutoffLineType=“blank” or cutoffLineWidth=0.”

也可以通过参数‘hline’ and ‘vline’ 显示其他的cut-off线;

代码语言:javascript复制
  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,
    # 取消cutoff线
    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)

4.5 调整图例位置,大小和文本

代码语言:javascript复制
 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)

4.6 绘制调整后的p值

作者通过 bquote 函数修改轴标题

代码语言:javascript复制
  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)

4.7 通过添加连接线来添加更多标签

为了标记更多点,可以通过短线连接标签, 这些连接线的宽度和颜色也可以分别用widthConnectorscolConnectors进行修改;

代码语言:javascript复制
  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')

4.8 仅标记关键转录本

在许多情况下,人们可能只希望标记他们感兴趣的关键转录本。 因此,可以通过selectLab参数提要标记的转录本的名字。当然,只有通过差异基因阈值筛选的名字才会被标记。

代码语言:javascript复制
 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)

4.9 给标签加框

代码语言:javascript复制
  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')

4.10 使用自定义值着色方案

在这个例子,作者希望将log2FC> 2.5的所有转录本标记为“high”,将log2FC <-2.5的转录本标记为“low”。

代码语言:javascript复制
# create custom key-value pairs for 'high', 'low', 'mid' expression by fold-change
# 通过named vector生成自定义颜色
    # 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))
代码语言:javascript复制
## [1] "Mid"  "low"  "high"
代码语言:javascript复制
    unique(keyvals)
代码语言:javascript复制
## [1] "black"     "royalblue" "gold"
代码语言:javascript复制
 keyvals[1:20]
代码语言:javascript复制
##     Mid     Mid     Mid     Mid     Mid     Mid     Mid     Mid     Mid 
## "black" "black" "black" "black" "black" "black" "black" "black" "black" 
##     Mid     Mid     Mid     Mid     Mid     Mid     Mid     Mid     Mid 
## "black" "black" "black" "black" "black" "black" "black" "black" "black" 
##     Mid     Mid 
## "black" "black"
代码语言:javascript复制
  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))

4.11 使用自定义value对覆盖颜色和/或形状进行修改

代码语言:javascript复制
  # 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))
代码语言:javascript复制
## [1] "PBC"         "Cell-type 1" "Cell-type 2"
代码语言:javascript复制
    unique(keyvals.shape)
代码语言:javascript复制
## [1]  3 17 64
代码语言:javascript复制
    keyvals.shape[1:20]
代码语言:javascript复制
## 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 
## PBC PBC 
##   3   3
代码语言:javascript复制
 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))
代码语言:javascript复制
## [1] "Mid"  "low"  "high"
代码语言:javascript复制
    unique(keyvals.colour)
代码语言:javascript复制
## [1] "black"     "royalblue" "gold"
代码语言:javascript复制
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))

4.12 Shade 指定的转录本

此功能最适用于仅显示1或2个关键转录本。用户可以使用’shapeCustom’参数来更识别不同类型的转录本。

代码语言:javascript复制
  # define different cell-types that will be shaded
  celltype1 <- c('ENSG00000106565', 'ENSG00000002933')
  celltype2 <- c('ENSG00000230795', 'ENSG00000164530')
代码语言:javascript复制
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))

5 Session info

代码语言:javascript复制
sessionInfo()
代码语言:javascript复制
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 18.04.2 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.10-bioc/R/lib/libRblas.so
## LAPACK: /home/biocbuild/bbs-3.10-bioc/R/lib/libRlapack.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
##  [1] grid      parallel  stats4    stats     graphics  grDevices utils    
##  [8] datasets  methods   base     
## 
## other attached packages:
##  [1] gridExtra_2.3               DESeq2_1.25.0              
##  [3] magrittr_1.5                airway_1.5.0               
##  [5] SummarizedExperiment_1.15.1 DelayedArray_0.11.0        
##  [7] BiocParallel_1.19.0         matrixStats_0.54.0         
##  [9] Biobase_2.45.0              GenomicRanges_1.37.8       
## [11] GenomeInfoDb_1.21.1         IRanges_2.19.6             
## [13] S4Vectors_0.23.6            BiocGenerics_0.31.2        
## [15] EnhancedVolcano_1.3.1       ggrepel_0.8.1              
## [17] ggplot2_3.1.1               knitr_1.23                 
## 
## loaded via a namespace (and not attached):
##  [1] bit64_0.9-7            splines_3.6.0          Formula_1.2-3         
##  [4] assertthat_0.2.1       highr_0.8              latticeExtra_0.6-28   
##  [7] blob_1.1.1             GenomeInfoDbData_1.2.1 yaml_2.2.0            
## [10] RSQLite_2.1.1          pillar_1.4.1           backports_1.1.4       
## [13] lattice_0.20-38        glue_1.3.1             digest_0.6.19         
## [16] RColorBrewer_1.1-2     XVector_0.25.0         checkmate_1.9.3       
## [19] colorspace_1.4-1       htmltools_0.3.6        Matrix_1.2-17         
## [22] plyr_1.8.4             XML_3.98-1.19          pkgconfig_2.0.2       
## [25] genefilter_1.67.1      zlibbioc_1.31.0        purrr_0.3.2           
## [28] xtable_1.8-4           scales_1.0.0           tibble_2.1.2          
## [31] htmlTable_1.13.1       annotate_1.63.0        withr_2.1.2           
## [34] nnet_7.3-12            lazyeval_0.2.2         survival_2.44-1.1     
## [37] crayon_1.3.4           memoise_1.1.0          evaluate_0.14         
## [40] MASS_7.3-51.4          foreign_0.8-71         tools_3.6.0           
## [43] data.table_1.12.2      stringr_1.4.0          locfit_1.5-9.1        
## [46] munsell_0.5.0          cluster_2.0.9          AnnotationDbi_1.47.0  
## [49] compiler_3.6.0         rlang_0.3.4            RCurl_1.95-4.12       
## [52] rstudioapi_0.10        htmlwidgets_1.3        labeling_0.3          
## [55] bitops_1.0-6           base64enc_0.1-3        rmarkdown_1.13        
## [58] gtable_0.3.0           DBI_1.0.0              R6_2.4.0              
## [61] dplyr_0.8.1            bit_1.1-14             Hmisc_4.2-0           
## [64] stringi_1.4.3          Rcpp_1.0.1             geneplotter_1.63.0    
## [67] rpart_4.1-15           acepack_1.4.1          tidyselect_0.2.5      
## [70] xfun_0.7
cut

0 人点赞