A composable Julia ecosystem for infectious disease modelling.
Infectious disease models that integrate multiple data sources provide better evidence for outbreak response than chains of separate models, but building them is slow and requires expertise across domains. Composable modelling, where validated components combine into joint models that properly propagate uncertainty, addresses this but requires an ecosystem of reusable infectious disease model components. We believe Julia is the best language for this ecosystem due to its type system, multiple dispatch, automatic differentiation support, and existing scientific computing infrastructure (SciML, Turing.jl, Distributions.jl), which provide the foundations composable modelling needs.
In R, we have built the epinowcast ecosystem (packages, community forum, seminar series) and developed several other widely used packages including EpiNow2 and scoringutils. These are used by infectious disease academics and public health departments internationally. We want to create something equivalent in Julia: a domain-focused ecosystem in the mould of SciML or Turing.jl, with the community infrastructure of rOpenSci and the domain specificity of SpeedyWeather.jl.
Package documentation is collected on the ecosystem site and its unified docs browser. Most packages extend Distributions.jl so they share an interface and compose cleanly. Empty scaffold repositories are listed as planned until they have real, documented functionality.
| Package | Description |
|---|---|
| CensoredDistributions.jl | Primary, interval, and double interval censoring for epidemiological delay distributions |
| ComposedDistributions.jl | A verb grammar for n-ary composition over any Distributions.jl distribution |
| ConvolvedDistributions.jl | Distribution convolution and shared numerical quadrature for Distributions.jl |
| ModifiedDistributions.jl | Wrappers that each change one behaviour of a distribution — rescaling, likelihood weighting, hazards, or transforms |
| ReparameterisedDistributions.jl | Alternative parameterisations for Distributions.jl |
| ComposableTuringIDModels.jl | Composable probabilistic infectious disease modelling built on Turing.jl — the ecosystem prototype (early development) |
| EpiAwarePackageTools.jl | Shared CI, documentation, quality, and AD-benchmark tooling for the ecosystem |
| EpiAwareR | R interface to EpiAware.jl (prototype) |
| Package | Description |
|---|---|
| GenerationTime.jl | Representing and estimating generation time distributions |
| DEdiseasecomponents.jl | Reusable components for differential equation infectious disease models |
| Repo | Description |
|---|---|
| ComposableProbabilisticIDModels | The case for composable probabilistic infectious disease models |
| JuliaForIDM | Julia for applied infectious disease modelling |
We are at an early stage and actively looking for collaborators. If you are interested in composable modelling, infectious disease epidemiology, or Julia ecosystem development, please open an issue or get in touch.