A composable ecosystem for infectious disease modelling
Why we are building EpiAware, and where it is today.
Composable tools for infectious disease modelling in Julia.
EpiAware gives you composable pieces at two levels: build the exact distributions your data need, and assemble whole models from interchangeable parts. Use either on its own, or together.


Small packages that each do one thing and combine into joint models, so you assemble the model a problem needs instead of rebuilding it.
Components propagate uncertainty correctly when combined, avoiding the error that creeps in when separate models are chained together.
Designed for real-time infectious disease analysis under the time pressure and resource limits of a live outbreak.
Assemble infectious disease models from interchangeable parts as a single Turing model. Docs ↗
Handle the censoring and truncation biases common in epidemiological delay data. Docs ↗
Convolve distributions, with shared quadrature. Docs ↗
A grammar for composing distributions. Docs ↗
We build in Julia for its type system, multiple dispatch, and automatic differentiation, and on the scientific infrastructure already there:
Differential equations, sensitivity analysis, and scientific machine learning.
Probabilistic programming and Bayesian inference.
The shared vocabulary of probability distributions our packages extend.
New to Julia? Start with the Using Julia guide.
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.