Single-cell RNA sequencing (scRNA-seq) is a powerful technique to study gene expression, cellular heterogeneity, and cell states within samples in single-cell level. The development of scRNA-seq shed light to address the knowledge gap about the cell types, cell interactions, and key genes involved in biological process and their dynamics.
To increase the re-usability and reproducibility of scientific findings, more and more publishers require raw data and detailed descriptions of how the data were analyzed. However, difficulties arise due to the highly concise descriptions of analysis and the differences of the computing environments. Furthermore, to precisely meet the publishing requirement, the communication of the bioinformatician with researchers is a time-consuming step. Multiple interactive visualization tools were developed to provide the researchers access to the details of the data. Those tools include, but not limited to, alona1, ASAP2, Asc-Seurat3, BingleSeq4, CellView5, cellxgene VIP6, Cerebro7, CHARTS8, ChromSCape9, Cirrocumulus10, CReSCENT11, Cytosplore Viewer12, Granatum13, InterCellar14, iS-CellR15, iSEE16, loom-viewer, Loupe Cell Browser, PIVOT17, SC118, SCANNER19, scClustViz20, SCope21, scSVA22, scVI23, SeuratV3Wizard24/NASQAR, ShinyArchRUiO25, ShinyCell26, singleCellTK27, Single Cell Explorer (scExplorer)28, Single Cell Interactive Application (SCiAp)29 and UCSC Cell Browser30, SPRING31, WASP32, and Vitessce33.
The basic information of the tools are list in the following tables (the table was created at 12/06/2022):
Tool | platform | plot type |
---|---|---|
alona | web-based | scatters, bar |
ASAP | web-based | scatters |
Asc-Seurat | shiny package | scatters, heatmap, violin, dot, trajectory |
BingleSeq | shiny package | scatters, heatmap, violin, ridge |
CellView | shiny package | scatters |
cellxgene VIP | web-based | scatters, bar, and visualization plugin |
Cerebro/cerebroApp | shiny package | scatters, 3D scatters |
CHARTS | web-based | scatters, bar |
ChromSCape | shiny package | scatters, heatmap |
Cirrocumulus | python package | |
CReSCENT | web-based | scatters, violin |
Cytosplore Viewer | Cytosplore | scatters, phylogeny |
Granatum | shiny package | scatters, bar, trajectory, ppi |
InterCellar | shiny package | dot, ppi, circos, radar, pie |
iS-CellR | shiny package | scatters, heatmap, violin, bar, dot |
iSEE | shiny package | scatters, heatmap, violin, bar |
loom-viewer | python package | |
Loupe Cell Browser | Desktop | scatters |
PIVOT | shiny package | scatters, heatmap, violin, bar, pie |
SC1 | web-based | scatters, heatmap, violin, bar |
SCANNER | web-based | scatters |
scClustViz | shiny package | scatters, heatmap, violin, bar, dot |
scExplorer | web-based | scatters, heatmap |
SCope | web-based | scatters |
scSVA | shiny package | scatters, 3D scatters |
scVI | python package | scatters, heatmap, violin, bar |
seuratv3wizard | web-based | scatters |
ShinyArchRUiO | shiny package | scatters, heatmap, track |
ShinyCell | shiny package | scatters, heatmap, violin, bar |
SCiAp1 | galaxy | |
singleCellTK | shiny package | scatters, heatmap, violin, dot, trajectory |
SPRING | python package | scatters |
UCSC Cell Browser | web-based | scatters |
Vitessce | python package | scatters, heatmap |
WASP | shiny package | scatters, heatmap |
Tool | languages | license | starts | watching | forks | citation |
---|---|---|---|---|---|---|
alona | python | GPL-3 | 12 | 3 | 5 | 24 |
ASAP | Java,R,Python | GPL-3 | 18 | 6 | 8 | 88 |
Asc-Seurat | R | GPL-3 | 12 | 2 | 6 | 10 |
BingleSeq | R | MIT | 18 | 2 | 6 | 4 |
CellView | R | MIT | 16 | 9 | 8 | 8 |
cellxgene VIP | python,R,JavaScript | MIT | 81 | 6 | 24 | 10 |
Cerebro/cerebroApp | R,JavaScript,C | MIT | 79 | 7 | 18 | 41 |
CHARTS | python | MIT | 2 | 6 | 0 | 7 |
ChromSCape | R | GPL-3 | 11 | 2 | 4 | 13 |
Cirrocumulus | JavaScript,Python | BSD-3 | 38 | 7 | 9 | 78 |
CReSCENT | R,Perl | GPL-3 | 8 | 1 | 4 | 11 |
Cytosplore Viewer | java,javascript | |||||
Granatum | R | Apache2 | 18 | 4 | 11 | 65 |
InterCellar | R | MIT | 7 | 1 | 3 | 4 |
iS-CellR | R | GPL-3 | 21 | 6 | 6 | 15 |
iSEE | R | MIT | 201 | 14 | 39 | 41 |
loom-viewer | python,JavaScript | BSD-2 | 32 | 9 | 6 | |
Loupe Cell Browser | ||||||
PIVOT | R | 27 | 6 | 15 | 27 | |
SC1 | R | 5 | ||||
SCANNER | R | 0 | 2 | 1 | 1 | |
scClustViz | R | MIT | 41 | 12 | 10 | 36 |
scExplorer | JavaScript,Python | GPL-3 | 7 | 3 | 6 | 16 |
SCope | python,JavaScript | GPL-3 | 60 | 8 | 14 | 4382 |
scSVA | R | GPL-3 | 20 | 6 | 7 | 8 |
scVI | python | BSD-3 | 840 | 27 | 263 | 787 |
seuratv3wizard | R | GPL-3 | 29 | 8 | 13 | 283 |
ShinyArchRUiO | R | GPL-3 | 11 | 2 | 4 | 3 |
ShinyCell | R | GPL-3 | 70 | 9 | 23 | 28 |
SCiAp | 16 | |||||
singleCellTK | R | MIT | 105 | 12 | 61 | 6 |
SPRING | python,matlab,JavaScript | 59 | 10 | 29 | 250 | |
UCSC Cell Browser | JavaScript,Python,R | GPL-3 | 3 | 1 | 39 | 46 |
Vitessce | JavaScript,Python,R | MIT | 92 | 6 | 23 | 2 |
WASP | R,python | 2 | 1 | 0 | 3 |
Based on ShinyCell, The scRNAseqApp package is developed with multiple highly interactive visualizations of how cells and subsets of cells cluster behavior. The end users can discover the expression of genes in multiple interactive manners with highly customized filter conditions by selecting metadata supplied with the publications and download the ready-to-use results for republishing.
Here is an example using scRNAseqApp with a subset of scRNA-seq data.
First, install scRNAseqApp and other packages required to run the examples. Please note that the example dataset used here is from a small subset of PBMC34. Additional package are also required for enhancement functions such trajectory analysis or cell communication analysis.
There are two ways to create a new data.
Log in to admin by Switch User
tab and click
administrator button
in the right-bottom corner of screen.
Click UploadData
and upload a Seurat object.
There are two steps to create a new data via R session. First, create the config file with description of the data and second create the data from a Seurat object.
library(Seurat)
appconf <- createAppConfig(
title="pbmc_small_test",
destinationFolder = "pbmc_small_test",
species = "Homo sapiens",
doi="10.1038/nbt.3192",
datatype = "scRNAseq",
abstract = 'Put the description of the data here.')
createDataSet(
appconf,
pbmc_small,
datafolder=file.path(publish_folder, "data"))
## An object of class Seurat
## 230 features across 80 samples within 1 assay
## Active assay: RNA (230 features, 20 variable features)
## 3 layers present: counts, data, scale.data
## 2 dimensional reductions calculated: pca, tsne
## [1] "pbmc_small" "pbmc_small_test"
If you have files intended for user download, kindly save them in the
www/download
folder. The application will then generate a
list, differentiating between files and user folder names, for
convenient access to download options. The file named as
readme
in text format in each folder will be used as
descriptions for the files.
There are two steps to distribute to a shiny server. First, install
the package in the server as root user. Second, in a R session run
scInit()
after load the scRNAseqApp
library.
If you initialed the app offline, copy the app folder to the shiny
server.
Note: the following files need to be writable for shiny:
www/database.sqlite
, www/counter.tsv
and the
app www
folder should also be writable because the user
manager is depend on SQLite, and the SQLite needs to be able to create a
journal file in the same directory as the DB, before any modifications
can take place. The journal is used to support transaction rollback.
## R version 4.4.2 (2024-10-31)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] Seurat_5.1.0 SeuratObject_5.0.2 sp_2.1-4 scRNAseqApp_1.7.6
## [5] BiocStyle_2.35.0
##
## loaded via a namespace (and not attached):
## [1] fs_1.6.5 matrixStats_1.4.1
## [3] spatstat.sparse_3.1-0 bitops_1.0-9
## [5] lubridate_1.9.4 httr_1.4.7
## [7] RColorBrewer_1.1-3 doParallel_1.0.17
## [9] tools_4.4.2 sctransform_0.4.1
## [11] backports_1.5.0 R6_2.5.1
## [13] DT_0.33 lazyeval_0.2.2
## [15] uwot_0.2.2 rhdf5filters_1.19.0
## [17] GetoptLong_1.0.5 withr_3.0.2
## [19] gridExtra_2.3 progressr_0.15.1
## [21] cli_3.6.3 Biobase_2.67.0
## [23] spatstat.explore_3.3-3 fastDummies_1.7.4
## [25] sass_0.4.9 spatstat.data_3.1-4
## [27] ggridges_0.5.6 pbapply_1.7-2
## [29] askpass_1.2.1 slingshot_2.15.0
## [31] Rsamtools_2.23.1 R.utils_2.12.3
## [33] shinyhelper_0.3.2 parallelly_1.41.0
## [35] RSQLite_2.3.9 generics_0.1.3
## [37] shape_1.4.6.1 BiocIO_1.17.1
## [39] ica_1.0-3 spatstat.random_3.3-2
## [41] dplyr_1.1.4 Matrix_1.7-1
## [43] S4Vectors_0.45.2 RefManageR_1.4.0
## [45] abind_1.4-8 R.methodsS3_1.8.2
## [47] lifecycle_1.0.4 yaml_2.3.10
## [49] SummarizedExperiment_1.37.0 rhdf5_2.51.1
## [51] SparseArray_1.7.2 Rtsne_0.17
## [53] grid_4.4.2 blob_1.2.4
## [55] promises_1.3.2 crayon_1.5.3
## [57] miniUI_0.1.1.1 lattice_0.22-6
## [59] billboarder_0.5.0 cowplot_1.1.3
## [61] sys_3.4.3 maketools_1.3.1
## [63] pillar_1.10.0 knitr_1.49
## [65] ComplexHeatmap_2.23.0 GenomicRanges_1.59.1
## [67] rjson_0.2.23 future.apply_1.11.3
## [69] codetools_0.2-20 leiden_0.4.3.1
## [71] glue_1.8.0 spatstat.univar_3.1-1
## [73] data.table_1.16.4 vctrs_0.6.5
## [75] png_0.1-8 spam_2.11-0
## [77] gtable_0.3.6 assertthat_0.2.1
## [79] cachem_1.1.0 xfun_0.49
## [81] princurve_2.1.6 S4Arrays_1.7.1
## [83] mime_0.12 survival_3.8-3
## [85] SingleCellExperiment_1.29.1 iterators_1.0.14
## [87] fitdistrplus_1.2-1 ROCR_1.0-11
## [89] nlme_3.1-166 bit64_4.5.2
## [91] RcppAnnoy_0.0.22 rprojroot_2.0.4
## [93] GenomeInfoDb_1.43.2 bslib_0.8.0
## [95] irlba_2.3.5.1 KernSmooth_2.23-24
## [97] colorspace_2.1-1 BiocGenerics_0.53.3
## [99] DBI_1.2.3 tidyselect_1.2.1
## [101] bit_4.5.0.1 compiler_4.4.2
## [103] curl_6.0.1 xml2_1.3.6
## [105] ggdendro_0.2.0 DelayedArray_0.33.3
## [107] plotly_4.10.4 scrypt_0.1.6
## [109] colourpicker_1.3.0 rtracklayer_1.67.0
## [111] scales_1.3.0 lmtest_0.9-40
## [113] stringr_1.5.1 digest_0.6.37
## [115] goftest_1.2-3 spatstat.utils_3.1-1
## [117] rmarkdown_2.29 XVector_0.47.1
## [119] htmltools_0.5.8.1 pkgconfig_2.0.3
## [121] bibtex_0.5.1 MatrixGenerics_1.19.0
## [123] learnr_0.11.5 fastmap_1.2.0
## [125] rlang_1.1.4 GlobalOptions_0.1.2
## [127] htmlwidgets_1.6.4 UCSC.utils_1.3.0
## [129] shiny_1.10.0 farver_2.1.2
## [131] jquerylib_0.1.4 shinymanager_1.0.410
## [133] zoo_1.8-12 jsonlite_1.8.9
## [135] BiocParallel_1.41.0 R.oo_1.27.0
## [137] RCurl_1.98-1.16 magrittr_2.0.3
## [139] GenomeInfoDbData_1.2.13 dotCall64_1.2
## [141] patchwork_1.3.0 Rhdf5lib_1.29.0
## [143] munsell_0.5.1 Rcpp_1.0.13-1
## [145] TrajectoryUtils_1.15.0 reticulate_1.40.0
## [147] stringi_1.8.4 zlibbioc_1.52.0
## [149] MASS_7.3-61 plyr_1.8.9
## [151] parallel_4.4.2 listenv_0.9.1
## [153] ggrepel_0.9.6 deldir_2.0-4
## [155] Biostrings_2.75.3 splines_4.4.2
## [157] tensor_1.5 circlize_0.4.16
## [159] igraph_2.1.2 spatstat.geom_3.3-4
## [161] RcppHNSW_0.6.0 buildtools_1.0.0
## [163] reshape2_1.4.4 stats4_4.4.2
## [165] XML_3.99-0.17 evaluate_1.0.1
## [167] BiocManager_1.30.25 foreach_1.5.2
## [169] tweenr_2.0.3 httpuv_1.6.15
## [171] RANN_2.6.2 tidyr_1.3.1
## [173] openssl_2.3.0 purrr_1.0.2
## [175] polyclip_1.10-7 future_1.34.0
## [177] clue_0.3-66 scattermore_1.2
## [179] ggplot2_3.5.1 ggforce_0.4.2
## [181] xtable_1.8-4 restfulr_0.0.15
## [183] RSpectra_0.16-2 later_1.4.1
## [185] viridisLite_0.4.2 tibble_3.2.1
## [187] memoise_2.0.1 GenomicAlignments_1.43.0
## [189] IRanges_2.41.2 cluster_2.1.8
## [191] sortable_0.5.0 timechange_0.3.0
## [193] globals_0.16.3