An incomplete list of some projects that we have worked on within our RSE group.

Collaborative work with research groups

The Vaccine Impact Modelling Consortium

The Vaccine Impact Modelling Consortium coordinates the work of several research groups modelling the impact of vaccination programmes worldwide. We provide the technical infrastructure for this project, including

  • a web-based system for collecting, verifying and storing many gigabytes of modelling results
  • a reproducible-research system, orderly for the project scientists to work with this data
  • interactive data visualisation
  • a web-based system for disseminating results


An R Shiny web interface for a model that estimates the proportion of people living with HIV who are aware of their status given national or regional data. For use by countries to estimate how close they are to the UNAIDS 90-90-90 target


A web interface for a model estimating various HIV epidemic indicators, see the project page for more information.

Custom data collection app

We developed a custom data collection Android app for use in a health economics field survey. The need for a custom app came from innovative survey questions that could not easily be represented in a conventional form or existing app - they seek to capture a spread of belief allocation across an exhaustive answer space. The code for this is not open due to the confidential nature of the survey.

Outbreak response

We provide technical and software support to outbreaks as part of the MRC Centre for Global Infectious Analysis, most notably during the 2018-2020 Ebola outbreak in the Democratic Republic of Congo.

We are currently heavily involved in the ongoing 2019-nCoV-SARS/COVID-19 pandemic, both in the UK and for other countries.

This work involves a number of packages from the list below, notably orderly and OrderlyWeb, cyphr, and odin, as well as working directly with scientists to keep them able to focus on their science through training, advice, HPC support and dealing with particularly nasty datasets.

Reusable components

cinterpolate - interpolation from C, for R

A small utility R package for interpolation (piecewise constant, linear and spline) from C for use within R packages

cyphr - easy to use encryption for R

A high-level approach to make using encryption from R more accessible; the cyphr package wraps the openssl and sodium packages to provide a common interface, along with abstractions to make encryption easier for data analysts.

(This is also an rOpenSci package.)

dde - an R package for solving delay differential equations

The dde package solves delay differential equations (DDEs), which are an extension to ordinary differential equations (ODEs) where the derivatives depend not only on the current state but also on the state at some point in the model’s past. They turn up modelling contexts (e.g., the number of people bitten by mosquitos 10 days ago).

jsonvalidate - JSON schema validation for R

JSON schemas provide a mechanism for validating that JSON conforms to an expected structure. This R package wraps two popular JSON schema libraries written in javascript - is-my-json-valid and ajv.

(This is also an rOpenSci package.)

odin - high level differential equations

A “domain specific language”, hosted in R, for representing and compiling ordinary differential equations. odin provides a language that has the same syntax as R but compiles to C (or to R or JavaScript) in order to represent equations at a high level but allow high-performance solutions. Currently odin is being used within the department for research on malaria, measles, HIV and flu.

orderly - lightweight reproducible reporting

A lightweight system for reproduducible reporting, in R. Composed of an R package, orderly and a web application, OrderlyWeb, orderly makes it straightforward to associate analyses with their inputs, version outputs and organise and distribute everything with a user-friendly front-end. The researcher-friendly framework makes very few restrictions on how analyses are carried out.

vaultr - an R client for Vault

The R package vaultr is a client for HashiCorp’s “vault”, a system for storing secrets and sensitive data and enabling these secrets to be used in applications.

Public Engagement Tools

We have a collection of tools for use in science festivals, public engagement events and internal socials, where we explore epidemiological ideas with games and hands-on experiments.

  • Barcode epidemic - where an epidemic is spread by passing unqiue QR codes.
  • Microbit epidemic - where an epidemic is transmitted over Microbit radio
  • Zombie Spatial Simulator original and simplified - visualisation of an individual-based spatial epidemic.
  • Herd Immunity - explore vaccination efects in an epidemic simulated by bouncing balls off each other.