The TENxVisiumData ExperimentHub package provides a collection of Visium spatial gene expression datasets by 10X Genomics. Data cover various organisms and tissues, and are formatted into objects of class SpatialExperiment.
TENxVisiumData 1.17.0
The TENxVisiumData package provides an R/Bioconductor resource for
Visium spatial gene expression datasets by 10X Genomics. The package currently includes 13 datasets from 23 samples across two organisms (human and mouse) and 13 tissues:
A list of currently available datasets can be obtained using the ExperimentHub interface:
library(ExperimentHub)
eh <- ExperimentHub()
(q <- query(eh, "TENxVisium"))## ExperimentHub with 26 records
## # snapshotDate(): 2025-04-11
## # $dataprovider: 10X Genomics
## # $species: Homo sapiens, Mus musculus
## # $rdataclass: SpatialExperiment
## # additional mcols(): taxonomyid, genome, description,
## #   coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
## #   rdatapath, sourceurl, sourcetype 
## # retrieve records with, e.g., 'object[["EH6695"]]' 
## 
##            title                            
##   EH6695 | HumanBreastCancerIDC             
##   EH6696 | HumanBreastCancerILC             
##   EH6697 | HumanCerebellum                  
##   EH6698 | HumanColorectalCancer            
##   EH6699 | HumanGlioblastoma                
##   ...      ...                              
##   EH6739 | HumanSpinalCord_v3.13            
##   EH6740 | MouseBrainCoronal_v3.13          
##   EH6741 | MouseBrainSagittalPosterior_v3.13
##   EH6742 | MouseBrainSagittalAnterior_v3.13 
##   EH6743 | MouseKidneyCoronal_v3.13To retrieve a dataset, we can use a dataset’s corresponding named function <id>(), where <id> should correspond to one a valid dataset identifier (see ?TENxVisiumData). E.g.:
library(TENxVisiumData)
spe <- HumanHeart()Alternatively, data can loaded directly from Bioconductor’s ExerimentHub as follows. First, we initialize a hub instance and store the complete list of records in a variable eh. Using query(), we then identify any records made available by the TENxVisiumData package, as well as their accession IDs (EH1234). Finally, we can load the data into R via eh[[id]], where id corresponds to the data entry’s identifier we’d like to load. E.g.:
library(ExperimentHub)
eh <- ExperimentHub()        # initialize hub instance
q <- query(eh, "TENxVisium") # retrieve 'TENxVisiumData' records
id <- q$ah_id[1]             # specify dataset ID to load
spe <- eh[[id]]              # load specified datasetEach dataset is provided as a SpatialExperiment (SPE), which extends the SingleCellExperiment (SCE) class with features specific to spatially resolved data:
spe## class: SpatialExperiment 
## dim: 36601 7785 
## metadata(0):
## assays(1): counts
## rownames(36601): ENSG00000243485 ENSG00000237613 ... ENSG00000278817
##   ENSG00000277196
## rowData names(1): symbol
## colnames(7785): AAACAAGTATCTCCCA-1 AAACACCAATAACTGC-1 ...
##   TTGTTTGTATTACACG-1 TTGTTTGTGTAAATTC-1
## colData names(1): sample_id
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):
## spatialCoords names(2) : pxl_col_in_fullres pxl_row_in_fullres
## imgData names(4): sample_id image_id data scaleFactorFor details on the SPE class, we refer to the package’s vignette. Briefly, the SPE harbors the following data in addition to that stored in a SCE:
spatialCoords; a numeric matrix of spatial coordinates, stored inside the object’s int_colData:
head(spatialCoords(spe))##                    pxl_col_in_fullres pxl_row_in_fullres
## AAACAAGTATCTCCCA-1              15937              17428
## AAACACCAATAACTGC-1              18054               6092
## AAACAGAGCGACTCCT-1               7383              16351
## AAACAGGGTCTATATT-1              15202               5278
## AAACAGTGTTCCTGGG-1              21386               9363
## AAACATTTCCCGGATT-1              18549              16740spatialData; a DFrame of spatially-related sample metadata, stored as part of the object’s colData. This colData subset is in turn determined by the int_metadata field spatialDataNames:
head(spatialData(spe))## DataFrame with 6 rows and 0 columnsimgData; a DFrame containing image-related data, stored inside the int_metadata:
imgData(spe)## DataFrame with 2 rows and 4 columns
##               sample_id    image_id   data scaleFactor
##             <character> <character> <list>   <numeric>
## 1 HumanBreastCancerIDC1      lowres   ####   0.0247525
## 2 HumanBreastCancerIDC2      lowres   ####   0.0247525Datasets with multiple sections are consolidated into a single SPE with colData field sample_id indicating each spot’s sample of origin. E.g.:
spe <- MouseBrainSagittalAnterior()
table(spe$sample_id)## 
## MouseBrainSagittalAnterior1 MouseBrainSagittalAnterior2 
##                        2695                        2825Datasets of targeted analyses are provided as a nested SPE, with whole transcriptome measurements as primary data, and those obtained from targeted panels as altExps. E.g.:
spe <- HumanOvarianCancer()
altExpNames(spe)## [1] "TargetedImmunology" "TargetedPanCancer"sessionInfo()## R version 4.5.0 beta (2025-04-02 r88102)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.2 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.22-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.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] TENxVisiumData_1.17.0       SpatialExperiment_1.19.0   
##  [3] SingleCellExperiment_1.31.0 SummarizedExperiment_1.39.0
##  [5] Biobase_2.69.0              GenomicRanges_1.61.0       
##  [7] GenomeInfoDb_1.45.0         IRanges_2.43.0             
##  [9] S4Vectors_0.47.0            MatrixGenerics_1.21.0      
## [11] matrixStats_1.5.0           ExperimentHub_2.17.0       
## [13] AnnotationHub_3.17.0        BiocFileCache_2.17.0       
## [15] dbplyr_2.5.0                BiocGenerics_0.55.0        
## [17] generics_0.1.3              BiocStyle_2.37.0           
## 
## loaded via a namespace (and not attached):
##  [1] KEGGREST_1.49.0         rjson_0.2.23            xfun_0.52              
##  [4] bslib_0.9.0             lattice_0.22-7          vctrs_0.6.5            
##  [7] tools_4.5.0             curl_6.2.2              tibble_3.2.1           
## [10] AnnotationDbi_1.71.0    RSQLite_2.3.9           blob_1.2.4             
## [13] pkgconfig_2.0.3         Matrix_1.7-3            lifecycle_1.0.4        
## [16] GenomeInfoDbData_1.2.14 compiler_4.5.0          Biostrings_2.77.0      
## [19] htmltools_0.5.8.1       sass_0.4.10             yaml_2.3.10            
## [22] pillar_1.10.2           crayon_1.5.3            jquerylib_0.1.4        
## [25] DelayedArray_0.35.0     cachem_1.1.0            magick_2.8.6           
## [28] abind_1.4-8             mime_0.13               tidyselect_1.2.1       
## [31] digest_0.6.37           dplyr_1.1.4             purrr_1.0.4            
## [34] bookdown_0.43           BiocVersion_3.22.0      grid_4.5.0             
## [37] fastmap_1.2.0           SparseArray_1.9.0       cli_3.6.4              
## [40] magrittr_2.0.3          S4Arrays_1.9.0          withr_3.0.2            
## [43] filelock_1.0.3          UCSC.utils_1.5.0        rappdirs_0.3.3         
## [46] bit64_4.6.0-1           rmarkdown_2.29          XVector_0.49.0         
## [49] httr_1.4.7              bit_4.6.0               png_0.1-8              
## [52] memoise_2.0.1           evaluate_1.0.3          knitr_1.50             
## [55] rlang_1.1.6             Rcpp_1.0.14             glue_1.8.0             
## [58] DBI_1.2.3               BiocManager_1.30.25     jsonlite_2.0.0         
## [61] R6_2.6.1