Starting from Version 1.2.0, escheR package supports additional two data structures as input, including SpatialExperiment and data.frame from base R. In addition, escheR supports in-situ visualization of image-based spatially resolved data, which will be the focus of future development.
SingleCellExperimentSpatialExperiment inherits SingleCellExperimentFollowing the same syntax, one can also visualize dimensionality reduced embeddings of a SpatialExperiment object by providing the argument dimred with a non-null value. Hence, the first 2 columns of the corresponding reducedDim(spe) assay will be used as the x-y coordinate of the plot, replacing spatialCoords(spe).
library(escheR)
library(STexampleData)
library(scater)
library(scran)
spe <- Visium_humanDLPFC() |> 
  logNormCounts()
top.gene <- getTopHVGs(spe, n=500)
set.seed(100) # See below.
spe <- runPCA(spe, subset_row = top.gene) 
make_escheR(
  spe,
  dimred = "PCA"
) |> 
  add_fill(var = "ground_truth") +
  theme_minimal()SpatialExperiment ObjectTo demonstrate the principle that escheR can be used to visualize image-based spatially-resolved data pending optimization, we include two image-based spatially resolved transcriptomics data generated via seqFish platform and Slide-seq V2 platform respectively. The two datasets have been previously curated in the STexampleData package
library(STexampleData)
library(escheR)
spe_seqFISH <- seqFISH_mouseEmbryo()
make_escheR(spe_seqFISH) |>
  add_fill(var = "embryo")NOTE: trimming down the
colData(spe)before piping into make-escheR could reduce the computation time to make the plots, specifically whencolData(spe)contains extremely large number of irrelavent features/columns.
We aim to provide accessibility to all users regardless of their programming background and preferred single-cell analysis pipelines. Nevertheless , with limited resource, our sustaining efforts will prioritize towards the maintenance of the established functionality and the optimization for image-based spatially resolved data. We regret we are not be able to provide seamless interface to other R pipelines such as Seurat and Giotto in foreseeable future.
Instead, we provide a generic function that works with a data.frame object as input. For example, relevant features in Suerat can be easily exported as a data.frame object manually or via tidyseurat[https://github.com/stemangiola/tidyseurat]. The exported data frame can be pipe into escheR.
library(escheR)
library(Seurat)
pbmc_small <- SeuratObject::pbmc_small
pbmc_2pc <- pbmc_small@reductions$pca@cell.embeddings[,1:2]
pbmc_meta <- pbmc_small@meta.data
#> Call generic function for make_escheR.data.frame
make_escheR(
  object = pbmc_meta,
  .x = pbmc_2pc[,1],
  .y = pbmc_2pc[,2]) |> 
  add_fill(var = "groups")utils::sessionInfo()
#> R version 4.3.1 (2023-06-16)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 22.04.3 LTS
#> 
#> Matrix products: default
#> BLAS:   /home/biocbuild/bbs-3.18-bioc/R/lib/libRblas.so 
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_GB              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: America/New_York
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats4    stats     graphics  grDevices utils     datasets  methods  
#> [8] base     
#> 
#> other attached packages:
#>  [1] BumpyMatrix_1.10.0          scran_1.30.0               
#>  [3] scater_1.30.0               scuttle_1.12.0             
#>  [5] ggpubr_0.6.0                Matrix_1.6-1.1             
#>  [7] STexampleData_1.9.0         SpatialExperiment_1.12.0   
#>  [9] SingleCellExperiment_1.24.0 SummarizedExperiment_1.32.0
#> [11] Biobase_2.62.0              GenomicRanges_1.54.0       
#> [13] GenomeInfoDb_1.38.0         IRanges_2.36.0             
#> [15] S4Vectors_0.40.0            MatrixGenerics_1.14.0      
#> [17] matrixStats_1.0.0           ExperimentHub_2.10.0       
#> [19] AnnotationHub_3.10.0        BiocFileCache_2.10.0       
#> [21] dbplyr_2.3.4                BiocGenerics_0.48.0        
#> [23] escheR_1.2.0                ggplot2_3.4.4              
#> [25] BiocStyle_2.30.0           
#> 
#> loaded via a namespace (and not attached):
#>   [1] RColorBrewer_1.1-3            jsonlite_1.8.7               
#>   [3] magrittr_2.0.3                ggbeeswarm_0.7.2             
#>   [5] magick_2.8.1                  farver_2.1.1                 
#>   [7] rmarkdown_2.25                zlibbioc_1.48.0              
#>   [9] vctrs_0.6.4                   memoise_2.0.1                
#>  [11] DelayedMatrixStats_1.24.0     RCurl_1.98-1.12              
#>  [13] rstatix_0.7.2                 htmltools_0.5.6.1            
#>  [15] S4Arrays_1.2.0                curl_5.1.0                   
#>  [17] BiocNeighbors_1.20.0          broom_1.0.5                  
#>  [19] SparseArray_1.2.0             sass_0.4.7                   
#>  [21] bslib_0.5.1                   cachem_1.0.8                 
#>  [23] igraph_1.5.1                  mime_0.12                    
#>  [25] lifecycle_1.0.3               pkgconfig_2.0.3              
#>  [27] rsvd_1.0.5                    R6_2.5.1                     
#>  [29] fastmap_1.1.1                 GenomeInfoDbData_1.2.11      
#>  [31] shiny_1.7.5.1                 digest_0.6.33                
#>  [33] colorspace_2.1-0              AnnotationDbi_1.64.0         
#>  [35] dqrng_0.3.1                   irlba_2.3.5.1                
#>  [37] RSQLite_2.3.1                 beachmat_2.18.0              
#>  [39] filelock_1.0.2                labeling_0.4.3               
#>  [41] fansi_1.0.5                   httr_1.4.7                   
#>  [43] abind_1.4-5                   compiler_4.3.1               
#>  [45] bit64_4.0.5                   withr_2.5.1                  
#>  [47] backports_1.4.1               BiocParallel_1.36.0          
#>  [49] carData_3.0-5                 viridis_0.6.4                
#>  [51] DBI_1.1.3                     ggsignif_0.6.4               
#>  [53] rappdirs_0.3.3                DelayedArray_0.28.0          
#>  [55] rjson_0.2.21                  bluster_1.12.0               
#>  [57] tools_4.3.1                   vipor_0.4.5                  
#>  [59] beeswarm_0.4.0                interactiveDisplayBase_1.40.0
#>  [61] httpuv_1.6.12                 glue_1.6.2                   
#>  [63] promises_1.2.1                grid_4.3.1                   
#>  [65] cluster_2.1.4                 generics_0.1.3               
#>  [67] gtable_0.3.4                  tidyr_1.3.0                  
#>  [69] metapod_1.10.0                BiocSingular_1.18.0          
#>  [71] ScaledMatrix_1.10.0           car_3.1-2                    
#>  [73] utf8_1.2.4                    XVector_0.42.0               
#>  [75] ggrepel_0.9.4                 BiocVersion_3.18.0           
#>  [77] pillar_1.9.0                  limma_3.58.0                 
#>  [79] later_1.3.1                   dplyr_1.1.3                  
#>  [81] lattice_0.22-5                bit_4.0.5                    
#>  [83] tidyselect_1.2.0              locfit_1.5-9.8               
#>  [85] Biostrings_2.70.0             knitr_1.44                   
#>  [87] gridExtra_2.3                 bookdown_0.36                
#>  [89] edgeR_4.0.0                   xfun_0.40                    
#>  [91] statmod_1.5.0                 yaml_2.3.7                   
#>  [93] evaluate_0.22                 codetools_0.2-19             
#>  [95] tibble_3.2.1                  BiocManager_1.30.22          
#>  [97] cli_3.6.1                     xtable_1.8-4                 
#>  [99] munsell_0.5.0                 jquerylib_0.1.4              
#> [101] Rcpp_1.0.11                   png_0.1-8                    
#> [103] parallel_4.3.1                ellipsis_0.3.2               
#> [105] blob_1.2.4                    sparseMatrixStats_1.14.0     
#> [107] bitops_1.0-7                  viridisLite_0.4.2            
#> [109] scales_1.2.1                  purrr_1.0.2                  
#> [111] crayon_1.5.2                  rlang_1.1.1                  
#> [113] cowplot_1.1.1                 KEGGREST_1.42.0