An introduction to the iSEE interface
iSEE 2.19.3
Compiled date: 2025-03-06
Last edited: 2020-04-20
License: MIT + file LICENSE
iSEE is a Bioconductor package that provides an interactive Shiny-based graphical user interface for exploring data stored in SummarizedExperiment
objects (Rue-Albrecht et al. 2018).
Instructions to install the package are available here.
Once installed, the package can be loaded and attached to your current workspace as follows:
library(iSEE)
If you have a SummarizedExperiment
object1 Or an instance of a subclass, like a SingleCellExperiment
object. named se
, you can launch an iSEE app by running:
iSEE(se)
In this vignette, we demonstrate this process using the allen
single-cell RNA-seq data set from the scRNAseq package.
However, if you want to start playing with the app immediately, you can simply run:
example(iSEE, ask=FALSE)
The allen
data set contains expression values for 379 cells from the mouse visual cortex (Tasic et al. 2016), and can be loaded directly by calling ReprocessedAllenData()
and specifying the value for the assays
parameter.
To begin with, we assign the output of this call to an sce
object and inspect it.
library(scRNAseq)
sce <- ReprocessedAllenData(assays = "tophat_counts") # specifying the assays to speed up the example
sce
#> class: SingleCellExperiment
#> dim: 20816 379
#> metadata(2): SuppInfo which_qc
#> assays(1): tophat_counts
#> rownames(20816): 0610007P14Rik 0610009B22Rik ... Zzef1 Zzz3
#> rowData names(0):
#> colnames(379): SRR2140028 SRR2140022 ... SRR2139341 SRR2139336
#> colData names(22): NREADS NALIGNED ... Animal.ID passes_qc_checks_s
#> reducedDimNames(0):
#> mainExpName: endogenous
#> altExpNames(1): ERCC
As provided, the sce
object contains raw data and a number of quality control and experimental cell annotations, all available in colData(sce)
.
colnames(colData(sce))
#> [1] "NREADS" "NALIGNED"
#> [3] "RALIGN" "TOTAL_DUP"
#> [5] "PRIMER" "PCT_RIBOSOMAL_BASES"
#> [7] "PCT_CODING_BASES" "PCT_UTR_BASES"
#> [9] "PCT_INTRONIC_BASES" "PCT_INTERGENIC_BASES"
#> [11] "PCT_MRNA_BASES" "MEDIAN_CV_COVERAGE"
#> [13] "MEDIAN_5PRIME_BIAS" "MEDIAN_3PRIME_BIAS"
#> [15] "MEDIAN_5PRIME_TO_3PRIME_BIAS" "driver_1_s"
#> [17] "dissection_s" "Core.Type"
#> [19] "Primary.Type" "Secondary.Type"
#> [21] "Animal.ID" "passes_qc_checks_s"
Then, we normalize the expression values with scater.
library(scater)
sce <- logNormCounts(sce, exprs_values="tophat_counts")
Next, we apply PCA and t-SNE to generate two low-dimensional representations of the cells.
The dimensionality reduction results are stored in reducedDim(sce)
.
set.seed(1000)
sce <- runPCA(sce)
sce <- runTSNE(sce)
reducedDimNames(sce)
#> [1] "PCA" "TSNE"
At this point, the sce
object does not contain any annotations for the rows (i.e., features) in the data set.
Thus, to prepare a fully-featured example application, we also add some gene metadata to the rowData
related to the mean-variance relationship in the data.
rowData(sce)$mean_log <- rowMeans(logcounts(sce))
rowData(sce)$var_log <- apply(logcounts(sce), 1, var)
It is important to note that iSEE
relies primarily on precomputed values stored in the various slots of objects derived from the SummarizedExperiment
class2 Except when dealing with custom panels..
This allows users to visualize any metrics of interest, but also requires these to be calculated and added to the object before the initialization of the app.
That said, it is straightforward to iteratively explore a precomputed object, take notes of new metrics to compute, close the app, store new results in the SummarizedExperiment
object, and launch a new app using the updated object.
To begin the exploration, we create an iSEE
app with the SingleCellExperiment
object generated above.
In its simplest form, the iSEE
function only requires the input object.
However, iSEE applications can be extensively reconfigured using a number of optional arguments to the iSEE
function.
app <- iSEE(sce)
The runApp
function launches the app in our browser.
shiny::runApp(app)