I am happy to have been accepted to Google Summer of Code 2021 with the project "Efficient Spatial Simulations in DiffEqJump." I will be writing code under the mentorship of Samuel Isaacson and Chris Rackauckas. The goal of the project is to expand DiffEqJump with new, optimized spatial solvers and a consistent interface, enabling the study of large spatial systems of jump processes.
Jump processes are a fundamental component in stochastic models throughout engineering, medicine and the sciences. For example, biology is rich with chemical networks consisting of hundreds or thousands of chemical reactions such as the B-cell network (Barua et al. (2012)). Often they are modelled as systems of differential equations, which has multiple drawbacks:
in general the solutions to the DE's do not coincide with the mean of the stochastic solutions;
variance and other moments cannot be gathered from solutions to DE's;
when the number of species (e.g. molecules or individuals) is low, treating it as a continuous random variable introduces inaccuracies.
Stochastic Simulation Algorithms (SSAs) are used to stochastically simulate the system. While there are approximate SSAs, the focus of this project is on exact SSAs – those that keep all statistics exact modulo the sampling error.
DiffEqJump is a part of the SciML ecosystem, which contains infrastructure to perform such simulations. DiffEqJump is a package in Julia, and is a part of the SciML ecosystem. It contains infrastructure to perform such simulations.
While SSAs for spatially non-homogeneous systems exist in academic literature (Elf & Ehrenberg (2004), Sanft & Othmer (2015)), they are not currently supported in DiffEqJump. The goal of this project is to expand DiffEqJump with new, optimized spatial solvers and a consistent interface, enabling the study of large spatial systems of jump processes and the use of jump processes within other SciML tooling.
My main motivation for working on DiffEqJump is to take part in the effort of building better models to describe the world around us. DiffEqJump is used by scientists in the fields of biology, medicine, applied mathematics to stochastically simulate chemical and other jump process-based network models. One application of a non-chemical network, whose evolution can be stochastically simulated, is epidemic dynamics, the simplest of which is the SIR model (1) (SIR stands for Susceptible, Infected and Recovered/Removed). Since the assumption of people being well-mixed is violated in this scenario, the model would be more realistic if people were allowed to "diffuse" between different locales, and "react" when they are within the same locale. As the year of 2020 showed, epidemic dynamics is one of the most important applications to which mathematical models can provide critical insights.
Another big motivation for working on DiffEqJump comes from knowing that it is freely available for any modeler, for example, being actively used by researchers in Quantitative Systems Pharmacology working on drug development. This open source project helps biologists, chemists, epidemiologists and other scientists simulate stochastic networks efficiently and accurately.
In the coming weeks I will be designing an interface for spatial simulations in DiffEqJump. Follow my Github and DiffEqJump to see the progress this summer.
Dipak Barua, William S Hlavacek, and Tomasz Lipniacki. “A computational model for early events in B cell antigen receptor signaling: analysis of the roles of Lyn and Fyn”. In: The Journal of Immunology 189.2 (2012),pp. 646–658.
Johan Elf and M ̊ans Ehrenberg. “Spontaneous separation of bi-stable biochemical systems into spatial domains of opposite phases”. In: Systems biology 1.2 (2004), pp. 230–236.
Kevin R Sanft and Hans G Othmer. “Constant-complexity stochastic simulation algorithm with optimal binning”. In: The Journal of chemical physics 143.7 (2015), 08B6091.