Skip to contents

Visualize the number of observations per sample.

Usage

rare_stacked(
  biom,
  rline = TRUE,
  counts = TRUE,
  labels = TRUE,
  y.transform = "log10",
  ...
)

Arguments

biom

An rbiom object, such as from as_rbiom(). Any value accepted by as_rbiom() can also be given here.

rline

Where to draw a horizontal line on the plot, intended to show a particular rarefaction depth. Set to TRUE to show an auto-selected rarefaction depth, FALSE to not show a line, or an integer for a custom position. Default: TRUE.

counts

Display the number of samples and reads remaining after rarefying to rline reads per sample. Default: TRUE.

labels

Show sample names under each bar. Default: TRUE.

y.transform

Y-axis transformation. Options are "log10" or "none". Default: "log10".

Use xaxis.transform or yaxis.transform to pass custom values directly to ggplot2's scale_* functions.

...

Additional parameters to pass along to ggplot2 functions. Prefix a parameter name with r. to ensure it gets passed to (and only to) geom_hline. For instance, r.color = "black" ensures only the horizontal rarefaction line has its color set to "black".

Value

A ggplot2 plot.
The computed data points and ggplot command are available as $data and $code, respectively.

Examples

    library(rbiom) 
    
    rare_stacked(hmp50)

    
    rare_stacked(hmp50, rline = 500, r.linewidth = 2, r.linetype = "twodash")

    
    fig <- rare_stacked(hmp50, counts = FALSE)
    fig$code
#> ggplot(data) +
#>   geom_rect(
#>     mapping = aes(xmin = .xmin, xmax = .xmax, ymin = .ymin, ymax = .ymax, fill = .group), 
#>     color   = NA ) +
#>   geom_hline(
#>     yintercept = 1183, 
#>     color      = "red", 
#>     linetype   = "dashed" ) +
#>   labs(
#>     fill = "Reads", 
#>     x    = "Sample", 
#>     y    = "Sequencing Depth\n(log10 scale)" ) +
#>   scale_x_discrete() +
#>   scale_y_continuous(
#>     breaks       = 10^(0:5), 
#>     minor_breaks = as.vector(2:9 %o% 10^(0:4)), 
#>     labels       = scales::label_number(scale_cut = scales::cut_si("")), 
#>     expand       = c(0, 0), 
#>     transform    = "log10" ) +
#>   theme_bw() +
#>   theme(
#>     text               = element_text(size = 14), 
#>     panel.grid.major.x = element_blank() )