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 GitHub

Getting started

Explore 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.

Examples from the multiregion paper (Travaglini et al., 2026)

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.

THSD4: CA1 neurons (Figure 1g)

Explore selective THSD4 expression in CA1 neurons within the hippocampus (HIP).

Show this example

GHSR: CA2 neurons (Figure 1g)

Explore selective GHSR expression in CA2 neurons within the hippocampus (HIP).

Show this example

RORB: EC IT_2 neurons (Figure 1h)

Examine RORB expression in EC IT_2 neurons within the medial entorhinal cortex (MEC).

Show this example

RELN: EC IT_3 neurons (Figure 1h)

Compare RELN expression in EC IT_3 neurons across the medial and lateral entorhinal cortex (MEC and LEC).

Show this example

The following examples revisit Figure 6, comparing gene expression in vulnerable and relatively protected SST cell types and examining changes with Alzheimer’s disease progression.

MME: changes in vulnerable SST types (Figure 6e)

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 example

HCN1: baseline differences in SST types (Figure 6g)

Compare HCN1 expression across SST cell types, with higher baseline expression in vulnerable types.

Show this example

SST: declining expression across regions (Figure 6i)

Explore decreasing SST expression with Alzheimer’s disease progression across SST cell types and brain regions.

Show this example

Examples from the MTG paper (Gabitto et al., 2024)

Extend 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.

APOE: contrasting glial responses (Figure 6k)

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 example

OLIG2: region-specific changes in OPCs (Figure 7g)

Examine 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 example

Other examples

Explore additional striking gene-expression patterns across cell types, brain regions, and disease progression.

PTPRG: a strong microglial progression pattern

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 example

Data

Scientific source

The 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.

Pseudobulk expression

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.

Gene-level Parquet files

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 nuclei

Expression 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.

Metadata and value sets

The app also derives a dementia grouping from Cognitive Status for exploratory comparisons.

AWS storage and access

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.


Using the viewer

Left control panel

The left panel controls gene retrieval, stacked filtering, expression scaling, and plot configuration. Filter and plot controls appear after the first gene has loaded.

Gene

  1. Type a gene symbol or select a row in the statistics table.
  2. Select Get gene data.
  3. The app retrieves the partition, joins metadata, calculates CP10K and fraction expressing, and caches the result.
  4. Use Plot in ABC Atlas or GeneCards to explore the loaded gene in another resource.

The selector starts empty with APOE as an example when available. Filter and plotting controls appear after a gene is loaded.

Filter and scale

Plot controls


Application tabs

Select gene of interest

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.

Important: These precomputed summaries guide exploration and do not replace the source study’s analyses.

Plot gene of interest

The plotting tab supports five visualization types with matching plot-specific statistical summaries.

Trajectory across disease

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.

Heatmap of mean expression

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.

Dot plot of mean expression

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.

Violin plot with observations

The distribution plot shows expression or fraction-expressing distributions across horizontal-axis groups and second-dimension facets.

Two-gene correlation

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.

Plot-specific exploratory statistics

Interpretation: These statistics describe the currently selected gene, filters, dimensions, and displayed observations. Interactive testing across many genes and configurations is exploratory and introduces multiple-comparison considerations beyond within-plot BH corrections.

Running the app

Most users should use the hosted viewer. The repository also supports local development and reproducible deployment.

Requirements

Use the project dependency records rather than the mouse viewer’s R version or another application’s lockfile.

Local setup

  1. Download or clone the multiregion_gene_exploration repository.
  2. Open the Shiny application directory containing app.R, table_column_definitions.csv, abc_atlas_gene_urls.csv.gz, and www/.
  3. Restore the project’s dependencies from its renv.lock when using the renv-based environment.
install.packages("renv")
renv::restore()

Run the app

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.


Repository structure

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.yml

Large pseudobulk sources, gene partitions, metadata, CPS scores, value sets, and summary statistics are stored externally rather than bundled with the Shiny application.


Citation

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.


Feedback and support

Questions, bug reports, and suggestions are welcome. Open a GitHub issue or contact Jeremy Miller.

How the app was made

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.

Acknowledgements

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.