Skip to content

FRED: Synthetic Population Agent-Based Modeling for Epidemic and Social Policy Analysis

By Jeff 7 views
FRED Synthetic Population Architecture — layered data flow from Census sources to simulation engine
FRED Synthetic Population Architecture — layered data flow from Census sources to simulation engine

FRED (Framework for Reconstructing Epidemiological Dynamics) is an open-source, agent-based modeling platform developed at the University of Pittsburgh's Public Health Dynamics Laboratory. Unlike generic ABM frameworks, FRED is purpose-built for simulating infectious disease dynamics and social interventions at the scale of real geographic populations, making it a critical tool for public health planners, epidemiologists, and social scientists studying population-level behavior under crisis conditions.

Synthetic Population Architecture

FRED's defining feature is its use of synthetic populations — statistically representative virtual populations derived from U.S. Census data, American Community Survey records, and land-use databases. Each synthetic agent is assigned demographic attributes (age, sex, household income, race/ethnicity) and embedded in a realistic social network of households, schools, workplaces, and neighborhoods.

This approach allows FRED to simulate disease transmission and behavioral responses through the actual contact structures that govern real-world contagion, rather than relying on homogeneous mixing assumptions. The RTI International synthetic population datasets used by FRED contain approximately 300 million agents representing the entire U.S. population, with county-level granularity.

Agent attributes:
  - Household ID → neighborhood → census tract
  - School assignment (age-stratified)
  - Workplace assignment (industry-coded)
  - Daily activity schedule (home/school/work/community)

Disease Modeling with FRED Conditions

FRED models disease progression through a Condition abstraction — a finite-state machine defining health states (Susceptible, Exposed, Infectious, Recovered) and the transition rules between them. Each condition is specified in a plain-text parameter file, making it straightforward to model influenza, COVID-19, measles, or any compartmental disease without modifying source code.

Key parameters include:

  • Transmissibility per contact setting (household vs. workplace vs. school)
  • Latent and infectious period distributions (lognormal, Weibull, or empirical)
  • Age-stratified susceptibility and severity multipliers
  • Behavioral responses triggered by health state transitions (e.g., symptomatic agents reduce workplace attendance)

Multiple conditions can run simultaneously, enabling co-infection modeling and vaccine-preventable disease interactions.

Intervention Modeling: NPIs and Vaccination Campaigns

FRED excels at evaluating non-pharmaceutical interventions (NPIs) and vaccination strategies. Interventions are specified declaratively in parameter files and can be triggered by epidemic thresholds (e.g., activate school closure when county attack rate exceeds 2%).

Supported intervention types include:

  • School and workplace closures with configurable compliance rates
  • Household quarantine with contact tracing delays
  • Mask adoption modeled as transmissibility reduction by setting
  • Vaccination campaigns with age-priority queues, multi-dose schedules, and waning immunity curves
  • Antiviral treatment with efficacy windows tied to symptom onset

FRED Ensemble Output: Epidemic curves comparing no-intervention, school closure, vaccination, and combined NPI scenarios

This declarative approach allows policy analysts to rapidly compare dozens of intervention scenarios without code changes — a critical capability during outbreak response when decision timelines are compressed.

Spatial and Temporal Output

FRED generates rich spatial and temporal output at multiple geographic resolutions. Standard outputs include:

Output Description
Daily incidence curves New cases per day by age group and census tract
Attack rate maps Cumulative infection rates at the census block level
School/workplace closure timelines Activation and deactivation events
Vaccination coverage Doses administered by age and priority group
Hospitalization and mortality Severity-stratified outcomes

FRED Output: Age-stratified attack rates and transmission setting distribution across intervention scenarios

Output files are tab-delimited and integrate directly with R, Python (pandas/geopandas), and GIS tools for visualization. The FRED Dashboard provides a browser-based interface for exploring spatial epidemic spread across simulation runs.

Calibration and Ensemble Runs

FRED supports Latin Hypercube Sampling and grid-search parameter sweeps through its companion tool FRED Conductor, which manages ensemble runs across HPC clusters or cloud compute nodes. Calibration workflows typically:

  1. Define uncertain parameters (R₀, latent period mean, household secondary attack rate)
  2. Generate a parameter ensemble (100–10,000 runs)
  3. Compare simulated attack rates and peak timing against surveillance data
  4. Select posterior parameter sets using approximate Bayesian computation (ABC) or likelihood scoring

FRED Calibration: ABC parameter acceptance scatter plot from 200-run Latin Hypercube ensemble

This workflow has been used to calibrate FRED models for seasonal influenza in Allegheny County, PA, and for COVID-19 county-level projections during the 2020–2021 pandemic response.

Practical Workflow

A typical FRED analysis follows this sequence:

  1. Select synthetic population: Download county or state-level population from the FRED data repository
  2. Define disease condition: Create a .params file specifying transmission and progression parameters
  3. Configure interventions: Add intervention blocks to the parameter file with trigger conditions
  4. Run ensemble: Execute fred_job with a sweep configuration; FRED parallelizes across CPU cores
  5. Analyze outputs: Use fred_plot or custom Python/R scripts to aggregate and visualize results

FRED runs are reproducible via fixed random seeds, and the parameter file format serves as complete documentation of the simulation design — a significant advantage for peer-reviewed publication workflows.

Comparison with Related Tools

Feature FRED EpiModel OpenABM-Covid19
Synthetic population ✓ Census-derived ✗ Network only ✓ Age-structured
Geographic resolution Census block None None
NPI modeling Declarative params R code Python API
Scale 300M agents (US) ~10K nodes ~10M agents
HPC support ✓ FRED Conductor Limited ✓
Primary use Public health policy Network epi COVID-19 policy

FRED's census-derived synthetic populations and declarative intervention specification make it uniquely suited for county- and state-level public health planning, where geographic heterogeneity and realistic contact structures are essential for credible projections.

Getting Started

FRED is available on GitHub at github.com/PublicHealthDynamicsLab/FRED under a BSD-style license. The repository includes:

  • Installation scripts for Linux/macOS
  • Tutorial parameter files for influenza and COVID-19
  • Documentation for the FRED Condition language
  • Links to synthetic population data downloads

The FRED Wiki provides detailed parameter reference documentation, and the Public Health Dynamics Lab publishes calibrated parameter sets for seasonal influenza that serve as validated starting points for new disease models.

For teams requiring cloud-scale ensemble runs, the University of Pittsburgh's MIDAS Network provides access to FRED-compatible HPC resources and a library of calibrated county-level models.

Tags: agent-based modeling epidemic simulation synthetic population public health NPI modeling