Installation

scNLP is now available via ghcr.io as a containerised environment with Rstudio and all necessary dependencies pre-installed.

Method 1: via Docker

First, install Docker if you have not already.

Create an image of the Docker container in command line:

docker pull ghcr.io/neurogenomics/scNLP

Once the image has been created, you can launch it with:

docker run \
  -d \
  -e ROOT=true \
  -e PASSWORD="<your_password>" \
  -v ~/Desktop:/Desktop \
  -v /Volumes:/Volumes \
  -p 8900:8787 \
  ghcr.io/neurogenomics/scNLP

NOTES

  • Make sure to replace <your_password> above with whatever you want your password to be.
  • Change the paths supplied to the -v flags for your particular use case.
  • The -d ensures the container will run in “detached” mode, which means it will persist even after you’ve closed your command line session.
  • The username will be “rstudio” by default.
  • Optionally, you can also install the Docker Desktop to easily manage your containers.

Method 2: via Singularity

If you are using a system that does not allow Docker (as is the case for many institutional computing clusters), you can instead install Docker images via Singularity.

singularity pull docker://ghcr.io/neurogenomics/scNLP

For troubleshooting, see the Singularity documentation.

Usage

Finally, launch the containerised Rstudio by entering the following URL in any web browser: http://localhost:8900/

Login using the credentials set during the Installation steps.

Session Info

utils::sessionInfo()
## R Under development (unstable) (2026-01-22 r89323)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 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=en_US.UTF-8    
##  [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: UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] scNLP_0.99.0     BiocStyle_2.39.0
## 
## loaded via a namespace (and not attached):
##   [1] deldir_2.0-4           pbapply_1.7-4          gridExtra_2.3         
##   [4] rlang_1.1.7            magrittr_2.0.4         RcppAnnoy_0.0.23      
##   [7] otel_0.2.0             spatstat.geom_3.7-0    matrixStats_1.5.0     
##  [10] ggridges_0.5.7         compiler_4.6.0         reshape2_1.4.5        
##  [13] png_0.1-8              systemfonts_1.3.1      vctrs_0.7.1           
##  [16] stringr_1.6.0          pkgconfig_2.0.3        fastmap_1.2.0         
##  [19] promises_1.5.0         rmarkdown_2.30         ragg_1.5.0            
##  [22] purrr_1.2.1            xfun_0.56              cachem_1.1.0          
##  [25] jsonlite_2.0.0         goftest_1.2-3          later_1.4.5           
##  [28] spatstat.utils_3.2-1   irlba_2.3.5.1          parallel_4.6.0        
##  [31] cluster_2.1.8.1        R6_2.6.1               ica_1.0-3             
##  [34] spatstat.data_3.1-9    stringi_1.8.7          bslib_0.9.0           
##  [37] RColorBrewer_1.1-3     reticulate_1.44.1      spatstat.univar_3.1-6 
##  [40] parallelly_1.46.1      scattermore_1.2        lmtest_0.9-40         
##  [43] jquerylib_0.1.4        Rcpp_1.1.1             bookdown_0.46         
##  [46] knitr_1.51             tensor_1.5.1           future.apply_1.20.1   
##  [49] zoo_1.8-15             sctransform_0.4.3      httpuv_1.6.16         
##  [52] Matrix_1.7-4           splines_4.6.0          igraph_2.2.1          
##  [55] tidyselect_1.2.1       abind_1.4-8            dichromat_2.0-0.1     
##  [58] yaml_2.3.12            spatstat.random_3.4-4  spatstat.explore_3.7-0
##  [61] codetools_0.2-20       miniUI_0.1.2           listenv_0.10.0        
##  [64] plyr_1.8.9             lattice_0.22-7         tibble_3.3.1          
##  [67] shiny_1.12.1           S7_0.2.1               ROCR_1.0-12           
##  [70] evaluate_1.0.5         Rtsne_0.17             future_1.69.0         
##  [73] fastDummies_1.7.5      desc_1.4.3             survival_3.8-6        
##  [76] polyclip_1.10-7        fitdistrplus_1.2-6     pillar_1.11.1         
##  [79] BiocManager_1.30.27    Seurat_5.4.0           KernSmooth_2.23-26    
##  [82] plotly_4.12.0          generics_0.1.4         RcppHNSW_0.6.0        
##  [85] sp_2.2-0               ggplot2_4.0.1          scales_1.4.0          
##  [88] globals_0.18.0         xtable_1.8-4           glue_1.8.0            
##  [91] lazyeval_0.2.2         tools_4.6.0            data.table_1.18.0     
##  [94] RSpectra_0.16-2        RANN_2.6.2             fs_1.6.6              
##  [97] dotCall64_1.2          cowplot_1.2.0          grid_4.6.0            
## [100] tidyr_1.3.2            nlme_3.1-168           patchwork_1.3.2       
## [103] cli_3.6.5              spatstat.sparse_3.1-0  textshaping_1.0.4     
## [106] spam_2.11-3            viridisLite_0.4.2      dplyr_1.1.4           
## [109] uwot_0.2.4             gtable_0.3.6           sass_0.4.10           
## [112] digest_0.6.39          progressr_0.18.0       ggrepel_0.9.6         
## [115] htmlwidgets_1.6.4      SeuratObject_5.3.0     farver_2.1.2          
## [118] htmltools_0.5.9        pkgdown_2.2.0          lifecycle_1.0.5       
## [121] httr_1.4.7             mime_0.13              MASS_7.3-65