| volcano | R Documentation | 
Produce volcano plot(s) of the given effect size and p values.
volcano(x, ...)
## Default S3 method:
volcano(x, pval, effect0 = 0, sig.level = 0.05, 
                            effect.low = NULL, effect.high = NULL,
                            color.low = "#4575B4", color.high = "#D73027",
                            xlab = "effect size", ylab = "-log10(p value)",
                            title = "Volcano Plot", alpha = 1, shape = 19, 
                            na.rm = TRUE, ...)
x | 
 in case of default method: measure of effect size.  | 
pval | 
 numeric, (adjusted) p values.  | 
effect0 | 
 single numeric, value for no effect.  | 
sig.level | 
 single numeric, significance level.  | 
effect.low | 
 
  | 
effect.high | 
 
  | 
color.low | 
  color used if effect size smaller than   | 
color.high | 
  color used if effect size larger than   | 
xlab | 
 label of x-axis.  | 
ylab | 
 label of y-axis.  | 
title | 
 title of plot.  | 
alpha | 
 blending factor (default: no blending.  | 
shape | 
 point shape used.  | 
na.rm | 
  single logical, remove   | 
... | 
 further arguments that may be passed through.  | 
The plot generates a ggplot2 object that is shown. 
Object of class gg and ggplot.
Matthias Kohl Matthias.Kohl@stamats.de
Wikipedia contributors, Volcano plot (statistics), Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Volcano_plot_(statistics)&oldid=900217316 (accessed December 25, 2019).
For more sophisticated and flexible volcano plots see for instance: Blighe K, Rana S, Lewis M (2019). EnhancedVolcano: Publication-ready volcano plots with enhanced colouring and labeling. R/Bioconductor package. https://github.com/kevinblighe/EnhancedVolcano.
## Generate some data
x <- matrix(rnorm(1000, mean = 10), nrow = 10)
g1 <- rep("control", 10)
y1 <- matrix(rnorm(500, mean = 11.75), nrow = 10)
y2 <- matrix(rnorm(500, mean = 9.75, sd = 3), nrow = 10)
g2 <- rep("treatment", 10)
group <- factor(c(g1, g2))
Data <- rbind(x, cbind(y1, y2))
pvals <- apply(Data, 2, function(x, group) hsu.t.test(x ~ group)$p.value,
               group = group)
## compute log-fold change
logfc <- function(x, group){
  res <- tapply(x, group, mean)
  log2(res[1]/res[2])
}
lfcs <- apply(Data, 2, logfc, group = group)
volcano(lfcs, pvals, xlab = "log-fold change")
volcano(lfcs, pvals, effect.low = -0.25, effect.high = 0.25, 
        xlab = "log-fold change")
volcano(lfcs, p.adjust(pvals, method = "fdr"), 
        effect.low = -0.25, effect.high = 0.25, 
        xlab = "log-fold change", ylab = "-log10(adj. p value)")
volcano(2^lfcs, pvals, effect0 = 1, effect.low = 1/2^0.25, effect.high = 2^0.25,
        xlab = "mean difference")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.