scRNAseqApp is a Bioconductor Shiny application for interactive exploration and visualization of single‑cell RNA‑seq (scRNA‑seq), scATAC-seq, multiomics or spatial data. It enables researchers to publish, explore, and share single‑cell datasets through a web‑based interface with rich plotting and filtering functionality.
Interactive visualization of single‑cell datasets
Support for multiple datasets within a single app
Common single‑cell plots:
Metadata‑based filtering and grouping
Downloadable figures and tables
User authentication and management (optional)
Suitable for local use or deployment on Shiny Server
Install from Bioconductor:
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("scRNAseqApp")
Create and initialize an application folder:
publish_folder <- tempdir()
scInit(app_path = publish_folder)
This sets up the required directory structure, database, and configuration files. A typical app directory looks like:
MyApp/
├── data/ # Stored datasets
├── db/
│ ├── database.sqlite # User/app database
│ ├── counter.tsv # Usage tracking
|── www/
│ └── ... # Static app assets
└── app.R
Note: When deploying, ensure the db/ directory and database files are writable by the Shiny server user.
scRNAseqApp(app_path = publish_folder)
The app will open in your default web browser.
scRNAseqApp works primarily with Seurat objects.
appconf <- createAppConfig(
title = "My scRNA‑seq App",
destinationFolder = "MyApp",
species = "Homo sapiens",
doi = "10.XXXX/your_doi",
datatype = "scRNAseq",
abstract = "Description of the dataset"
)
createDataSet(
appconf,
seurat_object,
datafolder = file.path(publish_folder, "data")
)
This method is reproducible and recommended for shared or public apps.
This method will use local computational resources, not suggested for large dataset.
Install scRNAseqApp on the server.
Initialize the app directory using scInit().
Set the correct permissions for:
db/database.sqlitedb/counter.tsvdb/ if user management is enabled.Add data by copying the destinationFolder (e.g., MyApp in the example above) into the data/ folder on the server.
If the newly copied data are not available to public users, first try reloading the app,
then check the accessibility and permissions of the folder.
Removing the destination folder will result in deletion of the dataset.
The app can then be served like any standard Shiny application
For full details, see the official Bioconductor vignette:
vignette("scRNAseqApp")
Comprehensive video tutorials demonstrating the usage of scRNAseqApp are available on the following YouTube playlist:
https://youtube.com/playlist?list=PL0uThf-sipbnepUDzVmAHpNWUy65F4HOm
Contributions, suggestions, and bug reports are welcome! Please open an issue or submit a pull request on GitHub.