THSD4: CA1 neurons (Figure 1g)
Explore selective THSD4 expression in CA1 neurons within the hippocampus (HIP).
Show this examplehtml
The SEA-AD Multiregion Gene Expression Viewer is an interactive R Shiny application for exploring pseudobulk gene expression and the fraction of nuclei expressing each gene across brain regions, cell types, donors, and Alzheimer's disease progression. Identify candidate genes in a sortable statistics table, retrieve selected genes from public AWS storage, apply simultaneous metadata filters, create five types of plots, and share configured analyses through bookmarked URLs.
The viewer uses data from the Seattle Alzheimer’s Disease Brain Cell Atlas (SEA-AD), with gene-specific links into the Allen Brain Cell Atlas and GeneCards.
Launch the interactive viewer Go to GitHubExplore what the viewer can do through examples that revisit findings from our two Alzheimer’s disease studies, starting with the most recent. Each example opens a gene with its filters and plot settings already configured.
Examine cell-type-selective gene expression and disease-associated changes across brain regions. The first examples revisit genes selected for RNAscope validation of hippocampal and entorhinal cortical cell types in Figure 1.
Explore selective THSD4 expression in CA1 neurons within the hippocampus (HIP).
Show this exampleExplore selective GHSR expression in CA2 neurons within the hippocampus (HIP).
Show this exampleExamine RORB expression in EC IT_2 neurons within the medial entorhinal cortex (MEC).
Show this exampleCompare RELN expression in EC IT_3 neurons across the medial and lateral entorhinal cortex (MEC and LEC).
Show this exampleThe following examples revisit Figure 6, comparing gene expression in vulnerable and relatively protected SST cell types and examining changes with Alzheimer’s disease progression.
Compare the decline in MME expression with Alzheimer’s disease in vulnerable SST cell types with its much lower expression in relatively unaffected SST types.
Show this exampleCompare HCN1 expression across SST cell types, with higher baseline expression in vulnerable types.
Show this exampleExplore decreasing SST expression with Alzheimer’s disease progression across SST cell types and brain regions.
Show this exampleExtend findings from the middle temporal gyrus (MTG) to additional brain regions. These examples illustrate a pattern that is consistent across regions for APOE and a more region-specific pattern for OLIG2.
Explore increasing APOE expression in microglia and decreasing expression in astrocytes with Alzheimer’s disease progression, extending the MTG findings across brain regions.
Show this exampleExamine OLIG2 in oligodendrocyte precursor cells (OPCs), where it is most highly expressed. Its modest increase with Alzheimer’s disease in temporal cortex is not seen across the other brain regions.
Show this exampleExplore additional striking gene-expression patterns across cell types, brain regions, and disease progression.
Both studies report that Alzheimer’s disease-associated microglia emerge early and increase more sharply later in disease. Explore the sharp increase in PTPRG expression in Micro-PVM_3-SEAAD with the global continuous pseudoprogression score (CPS), comparing trajectories across brain regions.
Show this exampleThe viewer uses the multiregion SEA-AD data resource associated with:
Travaglini, K. J., Gabitto, M. I., Ding, Y., et al. Multiregional single-cell profiling reveals shared and specialized cellular vulnerability in Alzheimer’s disease. bioRxiv (2026), preprint, not peer reviewed. View the publication DOI.
The study extends SEA-AD across ten neo- and allocortical regions and relates cell-type changes to regional and global Alzheimer’s disease pathological burden. See the SEA-AD website for data and resource access.
The source pseudobulk AnnData (.h5ad) objects contain summed counts by gene symbol. Each row is an aggregated observation with cell-type, donor, brain-region, and study annotations; Number of nuclei records the number of contributing nuclei. Gene partitions also contain the number of nuclei expressing each gene, used to calculate detection fractions.
Pseudobulk observations are aggregates, not individual nuclei. Multiple observations may come from the same donor.
Expression is stored under counts_by_gene/gene=<gene_key>/. Each partition supplies sample_id, summed_counts, and a detection-count column named number_of_cells_expressing or number_of_nuclei_expressing. The current app requires detection counts and reads only the selected gene partition, joining it to metadata by sample_id.
The app displays counts per ten thousand total counts (CP10K), using the stored CPM scaling factor:
CP10K = summed_counts × (CPM_scaling_factor / 100)
fraction expressing = number_of_cells_expressing / Number of nucleiExpression can be displayed as CP10K or ln(CP10K+1). This is library-size-normalized expression, not counts per 10,000 nuclei. For grouped dot plots, the fraction is calculated by summing expressing-nucleus counts and total nuclei before division.
obs_metadata.parquet contains unique sample_id values and cell taxonomy, brain region, donor, study, clinical, neuropathology, and nucleus-count annotations.gene_map.parquet maps gene_symbol to partition keys in gene_column.CPM_scaling.csv supplies scaling factors in the same row and library order as observation metadata.global_cps_multiregion.csv supplies donor-level CPS_Global, CPS_Global_ABeta, and CPS_Global_pTau, joined from donor_id to Donor ID. These remain continuous numeric values. Unmatched scores remain missing, not zero; observations without a finite selected score are excluded from trajectory plots.value_sets.csv supplies categorical labels, order, and colors; unlisted values are retained with fallback colors.table_column_definitions.csv supplies table-header descriptions, and abc_atlas_gene_urls.csv.gz supplies precomputed gene-specific ABC Atlas links. Both files are required at startup.www/tokens.csv, with token, type, and name columns, supplies the searchable glossary.The app also derives a dementia grouping from Cognitive Status for exploratory comparisons.
The app anonymously reads metadata, CPS scores, value sets, and gene statistics at startup, then retrieves and caches requested gene partitions. Runtime AWS credentials are not required. The configured bucket is sea-ad-single-cell-profiling in us-west-2, under Multiregion_2026/previous_objects/parquet/Multiregion_2026. Browse the public Parquet resources.
The left panel controls gene retrieval, stacked filtering, expression scaling, and plot configuration. Filter and plot controls appear after the first gene has loaded.
The selector starts empty with APOE as an example when available. Filter and plotting controls appear after a gene is loaded.
This tab contains a searchable, sortable gene-statistics table with numeric range filters and header tooltips. Selecting a row fills the Gene symbol selector; click Get gene data to retrieve it. GeneCards is accessed through the sidebar after loading a gene, not through table hyperlinks.
The columns are gene_symbol, ln(mean_CP10K+1), frac_expr, dementia_log2fc, dementia_frac_diff, max_ROI, log2fc_ROI, max_frac_ROI, frac_diff_ROI, max_subclass, log2fc_subclass, max_frac_subclass, frac_diff_subclass, and gene_type. The app converts the source table’s log mean CPM column to log mean CP10K for display.
Exact-value multi-select filters below the table cover gene_symbol, max_ROI, max_subclass, and gene_type. Within-field selections use OR; across-field selections use AND.
The plotting tab supports five visualization types with matching plot-specific statistical summaries.
Plot expression or fraction expressing against one of three continuous donor-level scores: CPS_Global (default), CPS_Global_ABeta, or CPS_Global_pTau. These are the available trajectory axes; developmental ages and other metadata are not progression-axis choices.
The heatmap displays mean expression or mean fraction expressing for every occupied combination of two dimensions. Heatmap and dot plots default to Subclass on the horizontal axis and Brain Region on the vertical axis.
The dot plot uses the same two-dimensional grouping as the heatmap. Dot color represents mean expression, while dot area represents the weighted fraction of cells expressing the gene. Min. dot size and Max. dot size control the displayed size range without changing the underlying proportions; combinations with no data remain absent. The note below the plot reports separate sparse rook-neighbor Moran's I tests with 999 permutations for expression and fraction expressing.
The distribution plot shows expression or fraction-expressing distributions across horizontal-axis groups and second-dimension facets.
This plot compares two separately retrieved genes across matched sample_id values after applying active filters. The selected metric can be ln(CP10K+1) or fraction expressing.
log10(Number of nuclei) when cell counts are available.Most users should use the hosted viewer. The repository also supports local development and reproducible deployment.
shiny, bslib, arrow, dplyr, ggplot2, scales, shinycssloaders, cachem, DT, and jsonlite;www/ assets.Use the project dependency records rather than the mouse viewer’s R version or another application’s lockfile.
app.R, table_column_definitions.csv, abc_atlas_gene_urls.csv.gz, and www/.renv.lock when using the renv-based environment.install.packages("renv")
renv::restore()From the directory containing app.R:
shiny::runApp(".")The hosted viewer is deployed to shinyapps.io. See the Rebuilding and Deployment Guide for manual deployment and GitHub Actions configuration.
The landing page follows the mouse repository’s code/shiny/ asset layout. The application bundle contains:
code/shiny/
app.R
table_column_definitions.csv
abc_atlas_gene_urls.csv.gz
renv.lock
www/
app_logo.png
allen_institute_logo.svg
tokens.csv (optional)
index.html
deployment_documentation.html
.github/workflows/deploy.ymlLarge pseudobulk sources, gene partitions, metadata, CPS scores, value sets, and summary statistics are stored externally rather than bundled with the Shiny application.
If you use the viewer or underlying multiregion data, cite:
Travaglini, K. J., Gabitto, M. I., Ding, Y., et al. Multiregional single-cell profiling reveals shared and specialized cellular vulnerability in Alzheimer’s disease. bioRxiv (2026), preprint, not peer reviewed. View the publication DOI.
For the original SEA-AD atlas, see Gabitto, M. I., Travaglini, K. J., Rachleff, V. M., et al. Integrated multimodal cell atlas of Alzheimer’s disease. Nature Neuroscience (2024). Read the original atlas paper.
Please report the viewer version or Git commit and the data access date.
Questions, bug reports, and suggestions are welcome. Open a GitHub issue or contact Jeremy Miller.
The Rebuilding and Deployment Guide documents the pseudobulk-to-Parquet workflow, detection counts, scaling factors, gene statistics, value sets, donor-level CPS joins, precomputed ABC Atlas gene links, AWS publication, local testing, shinyapps.io deployment, and GitHub Actions configuration.
We thank the research participants, tissue donors, families, and SEA-AD teams responsible for data generation, neuropathology, taxonomy, analysis, data access, and public resources. The app was developed by Jeremy Miller with coding assistance from Microsoft Copilot; beta testers include Irika Sinha and Kyle Travaglini.