EpiAware
Composable tools for infectious disease modelling in Julia.
Why EpiAware
Models that integrate multiple data sources give better evidence for outbreak response than chains of separate models, but building them is slow and needs expertise across several domains. EpiAware provides validated, reusable components that combine into joint models while correctly propagating uncertainty — so you can assemble the model a problem needs instead of rebuilding it each time.
The aim is to improve outbreak response, as epiforecasts does for real-time analysis, and to make it easier to follow good infectious disease modelling workflows — especially under the time pressure and resource limits of a live response.
Built on Julia
We build in Julia for its type system, multiple dispatch, and automatic differentiation, and on the scientific infrastructure already there:
SciML
Differential equations, sensitivity analysis, and scientific machine learning.
Turing.jl
Probabilistic programming and Bayesian inference.
Distributions.jl
The shared vocabulary of probability distributions our packages extend.
New to Julia? Start with the Using Julia guide.
The ecosystem
Small, composable packages that each do one thing well and combine into larger models. See the full list on the Packages page.
- CensoredDistributions.jl — handle the censoring and truncation biases common in epidemiological delay data.
- ConvolvedDistributions.jl — convolve distributions, with shared quadrature.
- ComposedDistributions.jl — a grammar for composing distributions.
- ReparameterisedDistributions.jl — alternative parameterisations for Distributions.jl.
Background
In R we built the epinowcast ecosystem and packages such as EpiNow2 and scoringutils, now used by academics and public health teams internationally. EpiAware is the Julia equivalent: a domain-focused ecosystem in the mould of SciML or Turing.jl, with community infrastructure like rOpenSci and the domain focus of SpeedyWeather.jl.
We are at an early stage and looking for collaborators — here is how to get involved.