Skip to content
View jc-macdonald's full-sized avatar

Organizations

@HopkinsIDD @ACCIDDA

Block or report jc-macdonald

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jc-macdonald/README.md

Joshua C. Macdonald

I'm Josh, an Assistant Scientist in the Department of International Health at the Johns Hopkins Bloomberg School of Public Health.

I study how models can inform interventions, surveillance, and data collection when the underlying system is only partly observed. I develop simulation, Bayesian inference, numerical methods, and model-evaluation software for health, environmental, and earth sciences. A recurring question is how assumptions about the system and its measurements affect the conclusions we draw.

Applications include infectious disease forecasting and intervention timing, surveillance design, marine and terrestrial ecology, and cultural transmission dynamics. The infectious disease tools contribute to CDC-funded multi-model scenario evidence used for public-health planning; other applications include wildlife disease surveillance design in sub-Saharan Africa and cross-scale ecological modeling.

Research area Related tools
Infectious disease op_engine, flepimop2, Flu Hub
Wildlife and zoonotic disease op_engine, trade-study
Cultural evolution and genomics VBPCApy, pp-eigentest
Marine ecology op_system, trade-study
Statistical methods trade-study, pp-eigentest

🌐 jcmacdonald.dev · Publications · CV · @jcm-sci

Research in progress

  • Structural scores. Assessing predictions against declared scientific constraints, including checks before outcomes are observed.
  • Inference and calibration with op_infer. Research software for Bayesian fitting, simulation-based calibration and replicated study-design checks. It remains private, pre-alpha and unreleased while application studies continue.
  • Scientific applications. Dengue within-host dynamics, COVID-19 observation noise, diphtheria vaccination and CCHF surveillance.

These summaries describe research questions and aims. Public papers and artifacts are linked as they become available.


Software I develop

Released on PyPI. JOSS submission in preparation.

Variational Bayesian PCA for incomplete cultural, genetic, and survey data. The package models observed entries directly and estimates uncertainty through a variational posterior. It provides component pruning, model-selection tools, C++ kernels, and a scikit-learn-compatible API. It was used in Macdonald et al. (2024, Evolutionary Human Sciences). Current work focuses on testing, packaging, and a JOSS submission.

Released on PyPI. In active development and used in CDC-funded scenario modeling.

Framework-independent numerical core for PDE/structured-field, nonlocal, compartmental and stochastic reaction models, used in CDC-funded influenza scenario modeling and wildlife disease research. It provides explicit, IMEX, implicit and stochastic methods, named observations, adaptive-schedule replay, and independent NumPy CPU SSA banks with optional reaction firing counts. The backend qualification matrix identifies tested NumPy, JAX and CPU PyTorch methods and derivatives; GPU execution needs separate hardware qualification. Use the core directly or through the separately packaged FlepiMoP2 provider.

Released on PyPI. In active development.

Declarative specification language and compiler for PDE/structured-field, nonlocal, compartmental and stochastic reaction models. Restricted equations or transition models compile to vectorized right-hand sides for NumPy, JAX and PyTorch, with flat, structured and independent-block state layouts. The compiler publishes reaction metadata, named observables, forcing schedules and checked replicate-independence declarations for numerical consumers. Structural validation is complemented by independent-equation and conservation checks; constraint metadata is not yet enforced.

Released on PyPI.

Compares simulation configurations against competing objectives. It builds design grids, runs replicated studies in phases, compares designs with shared random numbers, and reports Pareto fronts, regret and practical equivalence under specified preferences. Optional integrations add scoring rules, sensitivity analysis, adaptive search, surrogate models and model weighting. Results retain replicate counts, uncertainty assumptions and provenance. Calibration, power and applicability to observed data need separate assessment.

Documentation and executable examples.

Private pre-alpha research software. Unreleased.

Connects Bayesian fitting through established inference libraries, simulation-based calibration and replicated study-design checks. The implementation uses the simulation and evaluation tools above. Broader interfaces and application studies remain in development.

Ongoing methods research with private pre-release software. A methods paper is in preparation.

Investigates how many latent dimensions an incomplete dataset can support, using posterior predictive eigenvalue testing and Bayesian latent-variable models. Current work studies rank decisions, uncertainty and calibration, building on the earlier methodology described in the 2024 preprint. The ongoing study is distinct from the released VBPCApy package.

Other software contributions

Configuration-driven orchestration engine for CDC-supported infectious disease forecasting and scenario analysis. Plugin architecture decouples model specification, numerical integration, and output persistence.

Flexible Pipeline for Modeling Pathogens. Contributed profiling and vectorized simulation-backend code.

MIDAS Network coordination hub for CDC-funded influenza scenario modeling. Contributing team lead submissions and model evaluation infrastructure.


Operational Modeling

Influenza Scenario Modeling (JHU/UNC Flu Hub, Current)

Lead model developer for ACCIDDA's CDC-funded seasonal influenza scenario modeling across the 2024/25, 2025/26, and 2026/27 seasons. Set up the ACCIDDA flu model and operational pipeline (2024/25). Work with external modeling packages informed my contributions to FlepiMoP2 (2025/26). Supervising an undergraduate student on revisions to the flu model (2026/27). These contributions form part of the multi-model evidence produced by the CDC Flu Scenario Modeling Hub for public-health planning.

Hib Vaccination Modeling (Navajo Nation, Current)

Technical lead supervising implementation of an age- and immune-status-structured Hib model for the Navajo Nation to evaluate the impact of long-running vaccination programs.


Research

Operator-Partitioned Simulation Stack (Current)

Profiling the FlepiMoP backend informed the design of op_system, op_engine and flepimop2. These packages separate model specification, numerical simulation and campaign execution. Their interfaces include forcing schedules, named observables and independent-replicate reactions. trade-study supports replicated design and evaluation. Adaptive replay gradients are conditional on the recorded mesh, and changed parameters may require a fresh solve.

Current application studies

  • Dengue antibody-dependent-enhancement modeling and Bayesian analysis
  • Outcome-independent structural scores for scientific predictions
  • COVID-19 observation-noise sensitivity experiments
  • Diphtheria outbreak-vaccination modeling
  • CCHF surveillance and control design across wildlife and livestock systems
  • VBPCApy package hardening and JOSS manuscript preparation

Expertise

My work uses these methods to study interventions, compare surveillance strategies, and assess the value of additional observations.

Modeling · Differential-equation, stochastic and hybrid models; machine learning with scientific constraints; stability and bifurcation analysis; simulation-based inference; global sensitivity analysis (Sobol, PRCC, Morris)

Inference · Hierarchical Bayesian models, variational inference, profile likelihood, posterior predictive checks, identifiability analysis, uncertainty quantification

Computing · Python, Julia, C++; ODE/PDE solver design and benchmarking, operator splitting (IMEX), vectorization, CI/CD, type-checked codebases

Evaluation · Proper scoring rules, calibration diagnostics, Pareto front analysis, reduced-order forecasting models with specified scientific constraints

Full details: jcmacdonald.dev/cv


Languages & Tools
PrimaryPython · C++ · Julia
SecondaryMATLAB/Octave · R · Bash
ScientificNumPy · SciPy · Cython · pybind11 · Numba
InfrastructureGitHub Actions · Docker · pytest · pre-commit

GitHub Stats

GitHub Streak

Pinned Loading

  1. ACCIDDA/op_engine ACCIDDA/op_engine Public

    Array API ODE/PDE and stochastic solvers, with independent NumPy SSA banks, named observations, replay and method-specific backend qualification.

    Python 4

  2. ACCIDDA/flepimop2 ACCIDDA/flepimop2 Public

    flepimop2: The FLExible Pipeline for Interchangeable MOdel Processing

    Python 5 4

  3. ACCIDDA/op_system ACCIDDA/op_system Public

    Compile structured dynamical-system specifications into Array API right-hand sides, reaction metadata, named observables and forcing schedules.

    Python 2 1

  4. yoavram-lab/VBPCApy yoavram-lab/VBPCApy Public

    Variational Bayesian PCA for incomplete data with native missingness handling, uncertainty outputs, and C++ accelerated kernels.

    Python 4

  5. jcm-sci/trade-study jcm-sci/trade-study Public

    Replicated simulation studies with proper scores, paired comparisons, Pareto analysis, preference-based decisions and provenance-checked results.

    Python

  6. jcm-sci/TradeStudy.jl jcm-sci/TradeStudy.jl Public

    Inactive Julia design scaffold; no usable implementation. See jcm-sci/trade-study.

    Just