Brain Single Nuclei - MethodsThe Single Nuclei Brain Section incorporates data generated externally by Siletti K et al. (2023), comprising more than 3 million nuclei. Here, we integrate 2.6 million nuclei reorganized into 11 major brain regions and partitioned into neuronal and non-neuronal cell subsets. The data presented here underwent reprocessing and re-annotation procedures, resulting in 48 single-nucleus brain cell types, as described in detail below. What can you learn from the Single Nuclei Brain section?Learn about:
Source publicationSiletti K et al. (2023) “Transcriptomic diversity of cell types across the adult human brain” Science . 2023 Oct 13;382(6667) Includes single nuclei RNA sequencing result, based on over 3 million cells from multiple brain regions, and the data is available in the CellxGene browsing tool (The Human Brain Cell Atlas v1.0) for exploring individual clusters and samples. Data OverviewThe entire filtered snRNA-seq dataset (~3 million nuclei) was downloaded from the CellxGene browsing tool (The Human Brain Cell Atlas v1.0). We dissected the data into 11 main brain regions, and partitioned the nuclei of each region into neuronal and non-neuronal data subsets. We performed a minor cell-filtering step, followed by cell-clustering and annotation procedure resulting in 832 cell clusters, 48 brain cell types (of which 34 are neuronal), aggregated into 19 cell type groups.
More information about the regionally split data and the resulting clusters, cell types, and cell type groups can be found here. Nuclei FilteringAlthough the accessed data was already filtered and quality controlled, we additionally filtered out any droplets with over 1% of hemoglobin-related genes counts (defined by GO:0005833) or over 10% of mitochondrial genes (defined as genes originating from the mitochondrial chromosome). Dimensionality Reduction and Cell ClusteringData was processed using python (v3.11.7) and scanpy (v1.11.1). For each data subset, non-coding RNA MALAT1, mitochondrial genes and any gene detected in less than three nuclei were excluded from the feature set. The counts were then normalized using scanpy’s normalize_total function under standard settings, followed by a transformation. Highly variable genes were selected using scanpy’s highly_variable_genes function, and based on these genes, a principal component analysis (PCA) was computed. A k-nearest neighbors graph (k = 15) was calculated based on the first 40 principal components, which was subsequently used to compute the UMAP and Leiden clusters. To obtain high resolution cell type discrimination, while avoiding unnecessary cell cluster count inflation, we adopted a compound clustering strategy.
Downsampling the Cerebral Cortex Neuronal DatasetFollowing clustering, the cerebral cortex neuronal dataset was downsampled to close to 500,000 cells. To preserve low-abundance populations, downsampling was applied at the cluster level rather than globally: standard-resolution clusters containing more than 13,800 cells were randomly downsampled to a maximum cap of 13,800 cells, while clusters below this threshold were retained in their entirety. Cell Type Annotation and Hierarchical OrganisationCell types were manually annotated using established canonical marker genes and neuronal neuropeptide expression profiles. The annotation was done primarily on the standard-resolution leiden clusters. High-resolution subclusters were selected when they resolved closely related cell populations that were not separated under the standard resolution, particularly within non-neuronal lineages (e.g., distinguishing pericytes from vascular smooth muscle cells, or microglia from perivascular macrophages). In cases where subclustering clarified distinct cell types, the resulting sub-annotations superseded the standard-resolution labels. Subclusters assigned identical annotations were merged into a single final cluster. Combining the standard and subclustering annotations across neuronal and non-neuronal datasets yielded 832 cell clusters. Each cluster was assigned to one of 48 cell types, as well as a detailed cluster annotation (which can be observed at the right side of each UMAP depiction) for maximum annotation granularity. Each cell type was asigned to one of 19 cell type groups. The Cell Type Group expression profile is derived from the Cell Type data by means of max pooling aggregation. More precisely, for every gene within a cell type group, the maximum nCPM value observed across the constituent cell types is retained.
Figure 1. Hierarchical order of the resulting cell type annotation across the brain single nuclei dataset. Each of the 48 cell types (outer circle) is assigned into one of 19 cell type groups (middle circle) and organized into broader cell type classes (inner circle). Data NormalisationFor downstream analyses, single nuclei counts were aggregated into pseudobulk profiles: raw counts per gene were averaged across all cells within a cluster, generating 832 pseudobulk-profiles. We filtered the data for protein-coding genes only (n= 20162), which were then further scaled to counts per million (CPM), resulting in what we designate as protein counts per million (pCPM). The pCPM values were then TMM normalized (Trimmed means of M values) by applying the TMM implemented in NOISeq (v2.46.0), specifying refColumn = "median", logratioTrim = 0.3, sumTrim = 0.3, and doWeighting = FALSE. Clusters containing 10 cells or less were excluded previous to TMM normalization factor estimation and were assigned a factor of 1. Data IntegrationTo obtain a single expression value per cell type, we followed a within-dataset aggregation, followed by a cross-dataset aggregation:
Excluded from the cross-dataset aggregation and subsequent gene classification were clusters with mixed cell types, clusters with low cell type annotation confidence or assigned as "unassigned" , and cell types within a tissue that comprised less than 10 cells. You can find here more detailed information as to which specific clusters were excluded from the aggregation. Specificity AnnotationGene expression specificity was assessed at two levels. First, broadly across all 19 cell type groups, where neuronal populations organized into five main groups. Second, at a more detailed level, across 34 neuronal cell types, allowing further investigation of neuronal diversity. For each level, every gene is asssigned a gene specificity category and a Tau score. Gene Specificity Classification
Tau ScoreA tau () specificity score was calculated for each protein-coding gene following the formula proposed by Yanai et al. Formally, its calculation is presented below. The calculation uses the transformed expression levels, where represents the total number of cell types or cell type groups, represents the expression level in cell type , and represents the expression in cell type normalized by the maximum expression across all cell types. What is presented in the section?The data is presented as interactive UMAP plots and summarizing bar plots, displaying the expression of each gene in each cluster or single nuclei, including information on cluster type specificity from a whole brain perspective.
For every protein-coding gene there is a summarized barplot showing the expression profile acorss the 34 different cluster names. Here, are 4 examples, two neuronal specific markers (RBFOX3, also called NeuN being pan-neuronal, while VIP is selectively expressed by a neuronal subtype and mainly found in one cluster), the astrocyte marker GFAP and endothelial specific SELE. Below, is the cerebral cortex UMAP for these examples shown:
|