The SummarizedExperiment (se) class offers a useful way to store multiple row
and column metadata along with the values from an experiment and is widely used
in computational biology.
Although subsetting se's is possible with base R notation (ie using []
),
se's cannot be manipulated using grammar from the tidyverse. As a
consequence, it is not possible to manipulate se's in pipelines using the
pipe operator.
This package contains a number of wrapper functions to extend the usage of se's: - dplyr functions: to use dplyr's grammar of data manipulation - arithmetic functions: to perform arithmetic on 2 se's - write functions: to print the options of a se and to write se's to delimited files
As an example, compare how cleanse is used to subset rows for gene_group NOTCH and then arrange the columns by patient | Using native syntax | Using cleanse | |:----------------------------------------------------------------------------------|:---------------------------------------| |
rowdata <- rowData(se)se <- se[rowdata$gene_group == "NOTCH", ]se <- se[, order(se$patient)]|
se <- se %>% filter(row, gene_group == "NOTCH") %>% arrange(col, patient)|
Usage information can be found by reading the vignettes: browseVignettes("cleanse")
.
Functions that subset the se based on the rowData or colData
- filter()
picks rows/cols based on the se's attached rowData/colData
- slice()
picks rows/cols by position
- arrange()
changes the ordering of the rows
- sample_slice()
picks a random portion of rows or cols from the se.
Functions that change the se's rowData or colData
- select()
selects variables
- rename()
renames variables
- mutate()
adds new variables that are functions of existing variables
- drop_metadata()
drops all rowData and colData having only 1 unique value
-
subtracts values from the assays in 2 se's+
adds values from the assays in 2 se's/
divides values from the assays in 2 se's*
multiplies values from the assays in 2 se'sround
rounds the assay values of a sewrite_csv()
writes a se to csvwrite_tsv()
writes a se to tsvwrite_delim()
writes a se to a delimited fileif (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("cleanse")
library(cleanse)
# -- An example se called seq_se is provided
# Example pipe
data(seq_se)
seq_se %>%
filter(row, gene_group == "NOTCH") %>%
filter(col, site %in% c("brain", "skin")) %>%
arrange(col, patient) %>%
round(3)
# Example sampling
data(seq_se)
seq_se %>% slice_sample(row, prop=.2)
# Example arithmetic subtracting the expression values at T=0 from T=4
data(seq_se)
(filter(seq_se, col, time == 4)) - (filter(seq_se, col, time == 0))
If you encounter a clear bug, please file a minimal reproducible example on github.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.