The ShinyCITExpresso
R package provides a web application based on
Shiny and
bslib for visualization CITE-seq
multiomics data:
-
Supports MultiAssayExperiment objects
-
Runs on Rstudio Desktop, or online platforms supporting Shiny Server
-
Designed to integrate results from diverse CITE-seq analysis pipelines, including:
Install Dependencies:
install.packages(c("devtools", "BiocManager"))
install.packages(c("dplyr", "ggrepel", "magrittr",
"plyr", "ggplot2", "RColorBrewer","shiny", "waiter", "bslib", "bsicons"))
BiocManager::install(
c("SummarizedExperiment", "BiocGenerics",
"SingleCellExperiment", "MultiAssayExperiment",
"HDF5Array")
)
Install the ShinyCITExpresso
package from Github as follows:
devtools::install_github("zqzneptune/ShinyCITExpresso")
Access live demo here, and explore results from Seurat WNN (Weighted Nearest Neighbor) analysis of 30,672 scRNA-seq profiles measured alongside a panel of 25 antibodies from bone marrow (Stuart*, Butler* et al, Cell 2019).
Select object type to get started with your own data:
Results from CITE-seq analysis with totalVI and Processing and integrating 5k PBMCs CITE-seq data using moun are *.h5mu
format, which can be converted into MultiAssayExperiment objects for ShinyCITExpersso
using the R package MuData
maeObj <- MuData::readH5MU("cite.h5mu")
ShinyCITExpresso::run_app(mae = maeObj)
Results from Seurat Weighted Nearest Neighbor Analysis can be converted into SingleCellExperiment object first:
library(Seurat)
seuObj <- readRDS("cite.RDS")
sceObj <- as.SingleCellExperiment(seuObj)
SingleCellExperiment object stores additional modality in altExp
slot, which can be extract to construct MultiAssayExperiment object:
library(SingleCellExperiment)
fnMain <-
mainExpName(sceObj)
fnAlt <-
altExpNames(sceObj)
altSCE <-
altExp(sceObj)
altExp(sceObj) <-
NULL
assay_list <-
list(sceObj, altSCE)
names(assay_list) <-
c(fnMain, fnAlt)
datColData <-
colData(sceObj)
maeObj <-
MultiAssayExperiment::MultiAssayExperiment(
experiments = ExperimentList(assay_list),
colData = datColData
)
ShinyCITExpresso::run_app(mae = maeObj)
Please note that the ShinyCITExpresso
project is released with a
Contributor Code of
Conduct.
By contributing to this project, you agree to abide by its terms.
- Q. There are multiple layers of feature data in
cite.h5mu
. However, only one layer can be visualized. Is it possible to visualize other layers of data, such asdenoised RNA
ordenoised protein
?
To simplify matters, ShinyCITExpresso
opts to display the first available layer in the object. For AnnData
, the X
layer is commonly used. To visualize other layers, one can manipulate the MAE
object by retaining either the denoised RNA
or denoised protein
in the assay slot:
library(SingleCellExperiment)
maeObj <-
MuData::readH5MU("cite.h5mu")
# A MultiAssayExperiment object of 3 listed
# experiments with user-defined names and respective classes.
# Containing an ExperimentList class object of length 3:
# [1] protein: SingleCellExperiment with xxxx rows and xxxx columns
# [2] rna: SingleCellExperiment with xxxx rows and xxxx columns
# [3] rna_subset: SingleCellExperiment with xxxx rows and xxx columns
# Choosing denoised_protein for the first Experiment: protein
assays(maeObj[[1]]) <-
assays(maeObj[[1]])[["denoised_protein"]]
# Choosing denoised_protein for the third Experiment: rna_subset
assays(maeObj[[3]]) <-
assays(maeObj[[3]])[["denoised_rna"]]
# Then Run ShinyCITExpresso
ShinyCITExpresso::run_app(mae = maeObj)