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

My research asks how processes within hosts shape immune response and protection, how they link to transmission between hosts, and how movement, contact, and ecological change shape spread and persistence across populations. I develop mechanistic models, inference methods, and open research software for these questions and for decisions under uncertainty.

My work spans human infectious disease, livestock and wildlife health, ecology, and cultural transmission. The infectious disease tools contribute to CDC-funded multi-model scenario evidence used for public-health planning.

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

Research in progress

  • Scenario-model evaluation. Studying whether declared checks of scenario-model submissions reveal consequential inconsistencies. Their predictive usefulness remains an empirical question.
  • Scientific applications. Dengue within-host dynamics, COVID-19 observation noise, diphtheria vaccination and CCHF surveillance.
  • Inference and calibration with op_infer. Public pre-alpha research software for Bayesian fitting, simulation-based calibration and replicated study-design checks. It is unreleased on PyPI while broader interfaces and application-specific validation develop.
  • Research interests. Antibody responses after influenza vaccination in older adults.

In 2027, I will participate in Duke University's Multiscale Immune Systems Modeling Scholars Program.

Public papers and artifacts are linked as they become available.


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. I established the model and operational pipeline in 2024/25; work with external modeling packages informed my contributions to FlepiMoP2 in 2025/26. For 2026/27, I led model fitting across states and seasons, inference checks using simulated data, and predictive evaluation, while supervising an undergraduate on model revisions. These contributions form part of the multi-model evidence produced by the Influenza Scenario Modeling Hub for public-health planning.

COVID-19 Scenario Modeling (2026/27)

Led ACCIDDA's 2026/27 COVID-19 Scenario Modeling Hub submission.

Hib Vaccination Modeling (Current)

Technical supervisor for PhD students implementing an age- and immune-status-structured Hib model to evaluate long-running vaccination programs in a partner-defined population. Public descriptions remain general pending approval from participating organizations.


Software I develop

The packages separate model specification, numerical simulation, inference and replicated evaluation. Their interfaces support applications across scientific disciplines.

Capability Related tools
Model specification op_system
Numerical simulation op_engine
Inference and calibration op_infer
Experiment and observation design trade-study
Incomplete-data structure VBPCApy, pp-eigentest
Infectious-disease campaign execution flepimop2, Flu Hub

Public beta release: v0.4.12 on PyPI. Cite the v0.4.12 archive; the concept DOI covers all archived versions.

Variational Bayesian PCA for incomplete cultural, genetic, and survey data. The package fits observed entries under an explicit mask and exposes approximate variational-posterior covariance summaries; it does not model the missingness mechanism or by itself establish uncertainty calibration. It provides component pruning, model-selection tools, C++ kernels, and a scikit-learn-style estimator for fitting and training-data transforms. It was used in Macdonald et al. (2024, Evolutionary Human Sciences). Current work focuses on testing, qualification, packaging, and maintenance.

Public alpha release: v0.8.0 on PyPI. Citation metadata.

Framework-independent numerical core for structured-field, nonlocal, compartmental and stochastic reaction models across scientific domains. It provides explicit, implicit and stochastic methods, named observations and adaptive-schedule replay. Current applications include influenza scenario modeling and wildlife disease research. The backend qualification matrix records which methods and derivatives have been tested; GPU execution needs separate hardware qualification. Use the core directly or through the separately packaged FlepiMoP2 provider.

Public alpha release: v0.9.0 on PyPI. Citation metadata.

Domain-independent specification language and compiler for structured-field, nonlocal, compartmental and stochastic reaction models. Equations or transition models compile to numerical evaluators for NumPy, JAX and PyTorch, with reaction metadata, named observables and forcing schedules. Structural validation is complemented by independent-equation and conservation checks; constraint metadata is not yet enforced.

Public alpha release: v0.6.0 on PyPI. Cite the v0.6.0 archive; the concept DOI covers all archived versions.

Compares model settings, experiments, studies, and surveillance plans 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.

Public-source pre-alpha research software (development version 0.0.1); unreleased on PyPI. Cite a commit until a release exists.

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; operational data, partner discussions, and application materials remain private. See the project summary.

Private alpha research software; unreleased. 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

Public alpha release: v0.3.0 on PyPI. The Zenodo concept record exists; a release-specific v0.3.0 archive has not yet been verified.

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. Lead model developer for ACCIDDA submissions, with contributions to model-evaluation infrastructure.


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