Infectious disease modelling plays a critical role in public health decision-making, from outbreak response to long-term planning. The field faces mounting challenges as models grow increasingly complex, incorporate greater ranges of real-time data streams, and explore more intervention scenarios. Current approaches require either sacrificing performance for ease of use in high-level languages like R and Python, or accessibility for speed in low-level implementations. Domain-specific tools provide targeted solutions but lack integration with broader scientific computing advances, whilst general-purpose frameworks have steep learning curves, and often don't have all the features needed for applied infectious disease modelling. Julia addresses these challenges through its combination of multiple dispatch, native performance, and coherent scientific ecosystem. We examine Julia's key features and summarise its ecosystem for infectious disease modelling, spanning the SciML ecosystem, JuMP, AlgebraicJulia, Turing.jl, Gen.jl and RxInfer.jl, other model fitting options, neural networks, agent-based modeling, automatic differentiation, and data science tools. Through three case studies, we show how these components integrate to support complex epidemiological models. Julia offers a unique combination of performance, expressiveness, and composability that addresses limitations of both pipeline and monolithic modelling approaches.
Citation information will be added upon publication.
Follow the instructions at quarto.org to install Quarto.
Extensions Used:
- authors-block: Enhanced author information formatting with institutional affiliations and ORCID integration
Follow the instructions at juliaup to install Julia using the official Julia version manager.
Install Task for automated workflow management.
task
This automatically handles Julia environment setup and Quarto rendering.
Available tasks:
task
- Complete workflow (default)task preview
- Preview document with live reloadtask repl
- Launch Julia REPL with project environmenttask --list
- Show all available tasks
-
Install Julia 1.11+ (we expect any version of 1.11 to work well):
juliaup add 1.11.7 juliaup override set 1.11.7
-
Install Quarto extensions:
quarto add kapsner/authors-block --no-prompt
-
Set up Julia environment:
julia
Then in the Julia REPL:
using Pkg Pkg.activate(".") Pkg.instantiate()
-
Render the paper:
quarto render