Compartmental models in Rust

26 Oct 2017language modelling

I've been learning a bit of Rust in the past few weeks, mostly by writing some basic SIR-type models (both as ODE systems, and as continuous-time and discrete-time Markov chains). It takes most (maybe all) of the things that I like about OCaml and adds more great features and safety guarantees, thanks to its ownership model and lifetimes. It's also very fast (no garbage collector, zero-cost abstractions) and has fantastic tooling, although compilation times can be very long, and package ("crate") availability can be very hit-or-miss. I've enjoyed it enough that I'm looking forward to writing more Rust code in the future. Although I've no plans to rewrite pypfilt or epifx in Rust any time soon!

Model selection for seasonal influenza forecasting

19 Jan 2017forecasting influenza modelling

Two firsts in one: "Model selection for seasonal influenza forecasting" is Alex's first first-author and my first last-author paper. It will appear in an upcoming issue of Infectious Disease Modelling, a new open access journal with a focus on the interface between mathematical modelling, data analysis, and public health decision support.

This paper presents a likelihood-based method for selecting models that best predict future data (when conditioned on past data), and uses it to evaluate the predictive skill of disease transmission models that incorporate various features, such as inhomogeneous population mixing and climatic effects on transmission. I won't say any more here; if you're interested, read the paper!

The source code used to generate all of the results presented in this manuscript is available under the BSD 3-Clause license.

Interactive SEIR model

20 Dec 2016influenza modelling visualisation

Originally prepared as a simple demo for 2016 Open Day, this interactive model allows the viewer to explore how a variety of epidemiological parameters affect the size and duration of an infectious disease epidemic, such as:

This is a deterministic SEIR meta-population model, where each individual in the population is either susceptible to infection, has been exposed to the pathogen, has progressed to being infectious, or has recovered from infection and has (temporary or permanent) protection from reinfection.

The source code is available under the BSD 3-Clause license.

A week is a long time in politics

12 Jun 2016forecasting influenza visualisation

A year has passed since my last post, and much has happened. I contributed to 6 government reports, submitted 5 first-author papers, became a reviewer for 4 more journals, gave 3 talks about our influenza forecasting project, enrolled 2 jurisdictions in our forecasting project, and joined 1 surveillance system. Here is the 2015/16 financial year recap …

Virtual model environment

12 Jun 2015modelling whole-kidney

Thanks to Daniel Hurley from the University of Melbourne Systems Biology Laboratory, the whole-kidney model that I produced with S. Randall Thomas is now available as a virtual environment that is straightforward to install and get running.

  1. Ensure that Git, Vagrant and VirtualBox are installed; then
  2. Run the following commands in a terminal:
git clone https://github.com/uomsystemsbiology/rgm_kidney_vagrant.git
cd rgm_kidney_vagrant
vagrant up

This will open a virtual machine that includes the pre-compiled model executable, allowing you to run model simulations and reproduce any of our manuscript figures by double-clicking on a desktop icon!

Flu forecasts for Melbourne

9 May 2015forecasting influenza visualisation

Our first trial of live influenza forecasting for metropolitan Melbourne is now available online, using publicly available surveillance data. It will be very exciting to see how the forecasts evolve in the coming months!

And yes, the animated plots are built with D3.js.

Afferent arteriole autoregulation

22 Feb 2014autoregulation modelling

In a recent modelling study we extended an existing model of afferent arteriole autoregulation (originally presented by Feldberg et al.) by adding an explicit glomerulus and calculating model SNGFR in addition to afferent blood and plasma flows.

See this description of our extensions, the updated model equations, and a number of plots. The source code is available under the BSD 3-Clause license.

Pressure natriuresis in diuresis and antidiuresis

21 Feb 2014modelling whole-kidney

"Dominant factors that govern pressure natriuresis in diuresis and antidiuresis: a mathematical model" (a collaboration with Anita T. Layton) has been accepted by AJP Renal and is now available online in advance of final publication.

Building on observations in my previous modelling study, we investigated how pressure natriuresis—in both diuresis and antidiuresis—can be influenced by changes in medullary blood flow autoregulation and by inhibition of transport in the proximal convoluted tubule (PCT). We found that inhibited reabsorption in the model PCT (to degrees consistent with experimental measurements) is sufficient to stimulate a pressure natriuresis.

The challenge here is that there is insufficient experimental data to quantify the pressure-dependent reabsorption inhibition in the PCT, but it is precisely this response that appears to play the single largest role in driving pressure natriuresis. Our modelling study establishes a reasonable benchmark for this quantitative relationship, which can be applied to future whole-kidney models.

Hormonal regulation of salt and water excretion

15 Jan 2014modelling whole-kidney

My article "Hormonal regulation of salt and water excretion: a mathematical model of whole-kidney function and pressure-natriuresis" (a collaboration with S. Randall Thomas), has been published in AJP Renal. It was also selected as the subject for an Editorial Focus essay, "Advancement in integrated models of renal function: closing the gap between simulation and real life", written by Branko Braam.

We present a whole-kidney model that incorporates glomerular and tubular function, differentiates cortical and medullary function, and describes vascular and reabsorptive characteristics of the kidney. Model simulations explore the regulation of renal function by aldosterone, angiotensin II, and antidiuretic hormone (ADH), and also the inhibition of sodium reabsorption in response to the administration of a thiazide and of amiloride. This model of integrated renal function is quite successful in simulating renal function, although there are of course several caveats. The article also provides a broad survey of both renal modelling and the experimental literature.

In addition to the manuscript itself, interactive versions of a key figure—a comparison of model excretion rates against data from a number of experimental studies of acute pressure natriuresis in the rat—allow the viewer to examine each data series in isolation and refer back to the original articles.

Evolution and chronic kidney disease

15 Nov 2013CKD oxygen vasculature

In "Cardiorenal Syndrome: An Evolutionary Point of View", Ito makes a number of very interesting observations about the evolutionary history of the mammalian kidney, and potential implications this might have for our organs' ability to cope with high salt intake, obesity, and a sedentary lifestyle. A teleological perspective of the renal architecture is also introduced, and serves to illustrate hypotheses concerning the localisation of vascular damage ("strain vessels") and ischemic injuries. Finally, the article is exceptionally concise and clear, without sacrificing detail for brevity.