Outbreak Monitoring Dashboards
Relevant source files
The following files were used as context for generating this wiki page:
The Outbreak Monitoring Dashboards provide a centralized, multi-faceted interface for tracking and analyzing global infectious disease outbreaks. These dashboards integrate genomic data, geospatial mapping, phylogenetic analysis, and real-time news to support epidemiological surveillance. The system is designed as a modular suite of widgets, where specific viral threats like SARS-CoV-2, H5N1, Mpox, and Measles are given dedicated views tailored to their unique genomic structures and transmission patterns.
Sources: public/js/p3/widget/outbreaks/SARSCoV2/index.js:25-27, public/js/p3/widget/outbreaks/H5N1/index.js:25-27, public/js/p3/widget/outbreaks/Mpox/index.js:22-24, public/js/p3/widget/outbreaks/Measles/index.js:22-24
Dashboard Architecture and Components
The dashboards utilize a hierarchical structure based on TabViewerBase. Each dashboard is composed of several specialized tabs that handle different data modalities.
Core Components
| Component | Description | Relevant Files |
|---|---|---|
| OutbreaksOverview | Provides general information, PubMed summaries, and related content links. | OutbreaksOverview.js |
| OutbreaksGeoMap | Visualizes sequence isolates on a global map using Google Maps API. | H5N1/index.js, Mpox/index.js |
| PhylogenyTreeViewer | Renders interactive phylogenetic trees using PhyloXML data. | SARSCoV2/index.js, H5N1/index.js |
| OutbreaksTabContainer | A wrapper used to group related sub-tabs (e.g., variant prevalence charts). | SARSCoV2/index.js |
Sources: public/js/p3/widget/outbreaks/OutbreaksOverview.js:14-16, public/js/p3/widget/outbreaks/SARSCoV2/index.js:122-132, public/js/p3/widget/outbreaks/H5N1/index.js:251-260
Data Flow and Initialization
The dashboards follow a standard lifecycle where postCreate initializes child widgets and onSetState manages navigation and data updates based on URL hash parameters.
The diagram above shows the initialization and state management logic common across outbreak-specific modules.
Sources: public/js/p3/widget/outbreaks/H5N1/index.js:33-50, public/js/p3/widget/outbreaks/SARSCoV2/index.js:29-45
Geospatial Mapping System
The geospatial mapping component is responsible for visualizing the distribution of sequenced isolates. It fetches genomic metadata from the Data API and plots markers based on isolation country and state/province.
Marker Logic and Metadata Integration
Markers are customized based on the host or clade. For H5N1, markers differentiate between human and non-human hosts. For Mpox, markers indicate detected clades (Clade I, Clade II, or both).
- Distinct Locations: The system iterates through genome results to create a dictionary of unique locations, aggregating genome names and host/clade counts.
- Info Windows: Clicking a marker triggers
googleMapsInfoWindowContent, which generates a detailed summary including coordinates and filtered links to genomic tables.
Sources: public/js/p3/widget/outbreaks/H5N1/index.js:300-348, public/js/p3/widget/outbreaks/Mpox/index.js:264-315, public/js/p3/widget/MapsCanvas.js:410-440
Phylogenetic Visualization
Phylogenetic trees are a critical part of the monitoring system, providing evolutionary context for outbreaks. The system supports multiple segments (specifically for Influenza/H5N1) and clustered views for large datasets.
Configuration and Visualizations
The OutbreaksPhylogenyTreeViewer is configured with nodeVisualizations and specialVisualizations to map metadata to visual attributes on the tree nodes.
| Attribute | Visual Mapping | Description |
|---|---|---|
| Host | Shapes (Square, Diamond, etc.) | Categories such as domestic vs wild hosts. |
| Year | Colors (Gradient/Category) | The collection year of the isolate. |
| Lineage/Clade | Colors (Category50) | Specific classifications like PANGO Lineages for SARS-CoV-2. |
| Mutations | Special Color Nodes | Highlights specific amino acid changes. |
Sources: public/js/p3/widget/outbreaks/H5N1/index.js:88-150, public/js/p3/widget/outbreaks/SARSCoV2/index.js:145-200
Outbreak-Specific Implementations
SARS-CoV-2 Variants and Lineages
The SARS-CoV-2 dashboard includes specialized sub-tabs for "Covariants" and "Variants," which include:
VariantByCountryChartContainer: Charts showing prevalence across different nations.LineagesOfConcern: Dedicated view for tracking WHO/CDC designated lineages.ProteinStructure: Integrated viewer for 3D protein analysis.
Sources: public/js/p3/widget/outbreaks/SARSCoV2/index.js:122-143
H5N1 Segmented Surveillance
For the H5N1 2024 outbreak, the dashboard manages trees for all 8 segments (PB2, PB1, PA, HA, NP, NA, M1/M2, NS1/NEP). It also provides a specific "Clustered Phylogenetics" section for concatenated sequences.
Sources: public/js/p3/widget/outbreaks/H5N1/index.js:225-250
News and Resource Integration
The OutbreaksOverview component dynamically loads external data to keep the dashboards current:
- PubMed Integration: Uses
ExternalItemFormatterto fetch relevant scientific literature based on terms like "h5n1" or "monkeypox". - Google News Feed: Fetches RSS feeds via a server-side proxy (
/google/news/), parses the XML, and renders a sorted list of recent news items from trusted sources (CDC, WHO, CIDRAP). - Resource Tables: Lists analytical tools (Annotation, MSA, Gene Tree) and external dashboards (University of Minnesota DashFLUboard, WHO Shiny apps).
Sources: public/js/p3/widget/outbreaks/OutbreaksOverview.js:38-42, public/js/p3/widget/outbreaks/H5N1/index.js:351-383, public/js/p3/widget/outbreaks/Measles/Resources.html
Summary
The Outbreak Monitoring Dashboards serve as a comprehensive workbench for viral surveillance. By integrating modular components for geospatial mapping, phylogenetic tree rendering, and real-time metadata aggregation, the system allows researchers to track the evolution and spread of infectious diseases across different scales, from global movements to specific genomic mutations.