This repository contains tools to perform simulated infection and contact tracing using a branching process model
This readme provides information for users wishing to use the code to run simulations. Additional documentation for
users wishing to modify or extend the code is provided in README_developers.md
.
The sections below are:
Example python scripts are stored within the examples
directory, see Requirements
and
Usage
sections to get these working.
The household_contact_tracing
directory contains all of the python package modules. Contained within this,
the behaviours
directory stores the different behaviours classes, each containing the various strategies used to
implement simulation processes such as contact_rate_reduction
and isolation
. Each of these 'behaviours' belongs
either to the higher level infection
or the intervention
processes.
To add new or extend functionalities, see the Contributing
section.
The schemas
directory contains JSON schemas used to validate the JSON parameter files, used to initialise each
simulation run.
The views
directory contains classes representing the different outputs available, such as graph or textual views.
To improve or add further views, see the Contributing
section.
.
├── docs
├── examples
├── household_contact_tracing
│ ├── behaviours
│ │ ├── infection
│ │ ├── intervention
│ ├── schemas
│ ├── views
├── temp
├── test
All scripts in this repository are written in Python, tested on Unix and Windows systems. The minimum Python requirement is Python 3.6, though the code has been developed and tested with Python 3.8.
To run simulations, the code should be installed as a Python package. We reccomend installing in a virtual environment to avoid any potential conflicts with your base Python.
To install the required packages using a Conda environment and pip, run the following from the root directory of the repository:
conda env create -f env_household_contact_tracing.yml
conda activate household-contact-tracing
To install the required packages using venv and pip,run the following from the root directory of the repository:
# Create the environment
python -m venv venv
# Activate the environment
venv/bin/activate.bat # for Windows
source venv/bin/activate # for Unix/OSX
# Install packages
pip install -U pip
pip install -r requirements.txt
Note that the command to activate the venv environment is different for Windows and for Unix/OSX
Some example scripts and Interactive Jupyter notebooks are provided in the examples
folder.
We explore strategies of contact tracing, isolation of infected individuals and quarantine of exposed individuals to control the SARS-Cov-2 epidemic using a household-individual branching process model. The explicit presence of households allows for modelling of household quarantine, and improved estimation of the effects of contact tracing. A contact tracing process designed to take advantage of the household structure is implemented, to understand whether such a strategy could control the epidemic. We evaluate the effects of different strategies of contact tracing, isolation and quarantine, such as two-step tracing, backwards tracing, smartphone tracing apps, and whether to test before the propagation contact tracing attempts. Uncertainty in SARS-Cov-2 transmission dynamics and contact tracing processes is modelled using prior distributions. The primary model outcome is the effect on the growth rate and doubling times of the epidemic, in combination with different levels of social distancing. Models of uptake and adherence to quarantine are applied, as well as contact recall, and how these affect the dynamics of contact tracing are considered. We find that a household contact tracing strategy allows for some relaxation of social distancing measures; however, it is unable to completely control the epidemic in the absence of other measures. Effectiveness of contact tracing and isolation is sensitive to delays, so strategies to improve speed relative to transmission could improve epidemic control, but non-uptake, imperfect recall and non-adherence to isolation can erode effectiveness. Improvements to the case identification rate could greatly benefit contact tracing interventions of SARS-Cov-2. Further, we find that once the epidemic has become established, the extinction times are on the scale of years when there is a small relaxation of the UK lockdown and contact tracing is employed.
Martyn Fyles and Elizabeth Fearon
This software has been developed by the Martyn Fyles and Elizabeth Fearon from the The London School of Hygiene & Tropical Medicine and Ann Gledson and Peter Crowther from the Research IT group at the University of Manchester.
(c) 2020-2021 The London School of Hygiene & Tropical Medicine and the University of Manchester. Licensed under the MIT license, see the LICENSE file for details.