1 Installation

Install the package using Bioconductor. Start R and enter:

if(!requireNamespace("BiocManager", quietly = TRUE))
        install.packages("BiocManager")
BiocManager::install("MouseAgingData")

2 Setup

Now, load the package and dependencies used in the vignette.

library(scater)
library(MouseAgingData)

3 Introduction

Single-cell sequencing technology can reveal intricate details about individual cells, allowing researchers to interrogate the genetic make up of cells within a heterogeneous sample. Single-cell sequencing can provide insights into various aspects of cellular biology, such as characterization of cell populations, identification of rare cell types, and quantification of expression levels in cell types across experimental treatments. Given the wide utility, single-cell sequencing has expanded scientific knowledge in various fields, including cancer research, immunology, developmental biology, neurobiology, and microbiology.

There are several methods for generating single-cell sequencing data which can extract information (DNA or RNA) from a cell. These include, but are not limited to:

  1. Droplet-based platforms: such as 10x Genomics Chromium system, inDrop, Drop-seq, and Seq-Well, which use microfluidic devices to isolate individual cells into tiny droplets along with unique barcoded beads.

  2. Plate or microwell-based methods: such as the Smart-seq2 protocol or the C1 system by Fluidigm, respectively. These platforms employ microfluidic chips or multi-well arrays to capture and process individual cells. Unlike droplet-based platforms, these cells are manually or automatically sorted into individual wells of the plate.

The MouseAgingData package provides analysis-ready data from an aging mouse brain parabiosis single cell study by Ximerakis & Holton et al., (2023) and additional datasets. The contents of the package can be accessed by querying ExperimentHub with the package name.

4 Data

Ximerakis & Holton et al. investigated how heterochronic parabiosis (joining of the circulatory systems) affects the mouse brain in terms of aging and rejuvenation. They identified gene signatures attributed to aging in specific cell-types. They focus especially on brain endothelial cells, which showed dynamic transcriptional changes that affect vascular structure and function.

The parabiosis single cell RNA-seq (Ximerakis, Holton et al Nature Aging 2023) includes 105,329 cells, 31 cell types across 8 OX, 8 YX, 7 YY, 9 YO, 7 OO, 11 OY animals, and 20905 features.

This vignette demonstrates how to access and visualize the droplet data using reduced dimensionality coordinates provided by the authors.

5 Load the data set from ExperimentHub

sce <- parabiosis10x()
#> see ?MouseAgingData and browseVignettes('MouseAgingData') for documentation
#> loading from cache

View the SingleCellExperiment data.

sce
#> class: SingleCellExperiment 
#> dim: 20905 105329 
#> metadata(1): cell_colors
#> assays(1): counts
#> rownames(20905): Xkr4 Gm37381 ... DHRSX CAAA01147332.1
#> rowData names(2): geneID HVG
#> colnames: NULL
#> colData names(12): barcode nCount_RNA ... cell_ontology_class
#>   cell_ontology_id
#> reducedDimNames(3): PCA UMAP TSNE
#> mainExpName: NULL
#> altExpNames(0):

Do some checking to make sure the data loaded correctly and is what we expected. Here, we are viewing the cell information of the object. We see that there are indeed 105329 cells and 20905 features.

head(colData(sce)) 
#> DataFrame with 6 rows and 12 columns
#>            barcode nCount_RNA nFeature_RNA   animal    batch animal_type
#>        <character>  <numeric>    <integer> <factor> <factor>    <factor>
#> 1 AAACCTGGTCAGTGGA    2100.06          815     OO1L   Batch1          OO
#> 2 AAACCTGGTGTCAATC    4356.88         3120     OO1L   Batch1          OO
#> 3 AAACCTGTCAAACCAC    2679.97         1208     OO1L   Batch1          OO
#> 4 AAACCTGTCGTTACAG    3647.74         2137     OO1L   Batch1          OO
#> 5 AAACGGGCACGAGAGT    1904.85          703     OO1L   Batch1          OO
#> 6 AAAGATGAGCGTAGTG    3732.96         2247     OO1L   Batch1          OO
#>   percent_mito percent_ribo cell_type subpopulation
#>      <numeric>    <numeric>  <factor>      <factor>
#> 1     1.253203      5.81833     OPC         qOPC   
#> 2     0.510883      3.48925     NendC       NendC_3
#> 3     0.789625      3.67955     OPC         qOPC   
#> 4     0.607773      3.99532     GABA        GABA_3 
#> 5     1.746996      8.52778     EC          EC_1   
#> 6     0.652196      3.85105     GABA        GABA_13
#>              cell_ontology_class cell_ontology_id
#>                         <factor>         <factor>
#> 1 oligodendrocyte precursor cell       CL_0002453
#> 2 neuroendocrine cell                  CL_0000165
#> 3 oligodendrocyte precursor cell       CL_0002453
#> 4 GABAergic neuron                     CL_0000617
#> 5 endothelial cell                     CL_0000115
#> 6 GABAergic neuron                     CL_0000617

6 Visualization

For this dataset, the authors have provided us with their exact UMAP and tSNE coordinates, as well as their color scheme representing the cell types from their paper. This can be accessed in the metadata slot of the SingleCellExperiment object with the metadata() function. To consistently recreate their figures, let’s plot using their provided reduced dimensionality coordinates.

cell.color <- metadata(sce)$cell_color

gg <- plotUMAP(sce, color_by = "cell_type", text_by = "cell_type") 
gg + theme(legend.title=element_blank()) + 
    scale_color_manual(values=c(cell.color))
#> Scale for colour is already present.
#> Adding another scale for colour, which will replace the existing scale.

This plot is a recreation of Fig. 2C from Ximerakis & Holton et al. 2023.


We can also plot a tSNE with their provided coordinates.

gg <- plotTSNE(sce, color_by = "cell_type", text_by = "cell_type") 
gg + theme(legend.title=element_blank()) + 
    scale_color_manual(values=c(cell.color))
#> Scale for colour is already present.
#> Adding another scale for colour, which will replace the existing scale.

7 Reference

Ximerakis & Holton et al. (2023) Heterochronic parabiosis reprograms the mouse brain transcriptome by shifting aging signatures in multiple cell types. 3, 327–345. doi: https://doi.org/10.1038/s43587-023-00373-6.

8 Session Info

sessionInfo()
#> R Under development (unstable) (2024-10-21 r87258)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.1 LTS
#> 
#> Matrix products: default
#> BLAS:   /home/biocbuild/bbs-3.21-bioc/R/lib/libRblas.so 
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.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] MouseAgingData_1.3.0        scater_1.35.0              
#>  [3] ggplot2_3.5.1               scuttle_1.17.0             
#>  [5] SingleCellExperiment_1.29.0 SummarizedExperiment_1.37.0
#>  [7] Biobase_2.67.0              GenomicRanges_1.59.0       
#>  [9] GenomeInfoDb_1.43.0         IRanges_2.41.0             
#> [11] S4Vectors_0.45.0            BiocGenerics_0.53.1        
#> [13] generics_0.1.3              MatrixGenerics_1.19.0      
#> [15] matrixStats_1.4.1           BiocStyle_2.35.0           
#> 
#> loaded via a namespace (and not attached):
#>  [1] DBI_1.2.3               gridExtra_2.3           rlang_1.1.4            
#>  [4] magrittr_2.0.3          compiler_4.5.0          RSQLite_2.3.7          
#>  [7] png_0.1-8               vctrs_0.6.5             pkgconfig_2.0.3        
#> [10] crayon_1.5.3            fastmap_1.2.0           dbplyr_2.5.0           
#> [13] XVector_0.47.0          labeling_0.4.3          utf8_1.2.4             
#> [16] rmarkdown_2.29          UCSC.utils_1.3.0        ggbeeswarm_0.7.2       
#> [19] purrr_1.0.2             bit_4.5.0               xfun_0.49              
#> [22] zlibbioc_1.53.0         cachem_1.1.0            beachmat_2.23.0        
#> [25] jsonlite_1.8.9          blob_1.2.4              highr_0.11             
#> [28] DelayedArray_0.33.1     BiocParallel_1.41.0     irlba_2.3.5.1          
#> [31] parallel_4.5.0          R6_2.5.1                bslib_0.8.0            
#> [34] jquerylib_0.1.4         Rcpp_1.0.13-1           bookdown_0.41          
#> [37] knitr_1.48              Matrix_1.7-1            tidyselect_1.2.1       
#> [40] abind_1.4-8             yaml_2.3.10             viridis_0.6.5          
#> [43] codetools_0.2-20        curl_5.2.3              lattice_0.22-6         
#> [46] tibble_3.2.1            withr_3.0.2             KEGGREST_1.47.0        
#> [49] evaluate_1.0.1          BiocFileCache_2.15.0    ExperimentHub_2.15.0   
#> [52] Biostrings_2.75.0       pillar_1.9.0            BiocManager_1.30.25    
#> [55] filelock_1.0.3          BiocVersion_3.21.1      munsell_0.5.1          
#> [58] scales_1.3.0            glue_1.8.0              tools_4.5.0            
#> [61] AnnotationHub_3.15.0    BiocNeighbors_2.1.0     ScaledMatrix_1.15.0    
#> [64] cowplot_1.1.3           grid_4.5.0              AnnotationDbi_1.69.0   
#> [67] colorspace_2.1-1        GenomeInfoDbData_1.2.13 beeswarm_0.4.0         
#> [70] BiocSingular_1.23.0     vipor_0.4.7             cli_3.6.3              
#> [73] rsvd_1.0.5              rappdirs_0.3.3          fansi_1.0.6            
#> [76] S4Arrays_1.7.1          viridisLite_0.4.2       dplyr_1.1.4            
#> [79] gtable_0.3.6            sass_0.4.9              digest_0.6.37          
#> [82] SparseArray_1.7.0       ggrepel_0.9.6           farver_2.1.2           
#> [85] memoise_2.0.1           htmltools_0.5.8.1       lifecycle_1.0.4        
#> [88] httr_1.4.7              mime_0.12               bit64_4.5.2