Sam Abbott, Hannah Christensen, Nicky Welton, Ellen Brooks-Pollock
In 2005 in England, universal Bacillus Calmette–Guérin (BCG) vaccination of school-age children was replaced by targeted BCG vaccination of high-risk neonates.
Estimate the impact of the 2005 change in BCG policy on tuberculosis incidence rates in England.
We conducted an observational study by combining notifications from the Enhanced Tuberculosis Surveillance system, with demographic data from the Labour Force Survey to construct retrospective cohorts relevant to both the universal, and targeted vaccination between Jan 1, 2000 and Dec 31, 2010. We then estimated incidence rates over a 5 year follow-up period and used regression modelling to estimate the impact of the change in policy on TB.
In the non-UK born, we found evidence for an association between a reduction in incidence rates and the change in BCG policy (school-age incidence rate ratio (IRR): 0.74 (95% credible interval (CrI) 0.61,0.88), neonatal IRR: 0.62 (95%CrI 0.44,0.88)). We found some evidence that the change in policy was associated with an increase in incidence rates in the UK born school-age population (IRR: 1.08 (95%CrI 0.97,1.19)) and weaker evidence of an association with a reduction in incidence rates in UK born neonates (IRR: 0.96 (95%CrI 0.82,1.14)). Overall, we found that the change in policy was associated with directly preventing 385 (95%CrI -105,881) cases.
Withdrawing universal vaccination at school-age and targeting vaccination towards high-risk neonates was associated with reduced incidence of TB. This was largely driven by reductions in the non-UK born with cases increasing in the UK born.
The repository is structured as an R package. It has the following structure:
data-raw
: Raw data processing.data
: Processed data.R
: Supporting R functions.vignettes
: Analysis paper and results.peer-review
: Documentation required for peer review.
-
Install R (analysis run with
3.5.0
) and Rstudio (alternatively use Docker as outlined below). -
Download the analysis folder from https://github.com/seabbs/DirectEffBCGPolicyChange/archive/master.zip or use
git clone
, as follows, in the command line (not the R terminal).
git clone https://github.com/seabbs/DirectEffBCGPolicyChange.git
-
Once this has been downloaded click on the project file (
DirectEffBCGPolicyChange.Rproj
). -
Install the analysis dependencies and build the package using the following. To enable more robust reproducibility consider using the
checkpoint
package versioned locked to R3.5.0
.
#install.packages("devtools")
# To build locally
devtools::install_dev_deps(dependencies = TRUE)
devtools::install()
# Alternatively to remote install
devtools::install_github("seabbs/DirectEffBCGPolicyChange", dependencies = TRUE)
- Load the analysis results by running
vignettes/paper.Rmd
. The complete analysis is not reproducible as the raw data cannot be published, however all interim results are stored in the repository (data
) and these can be explored. Alternatively the complete analysis (along with documentation) can be reconstructed usingmake
in the project root directory.
This analysis was developed in a docker container based on the tidyverse docker image. To run the docker image run:
docker run -d -p 8787:8787 --name DirectEffBCGPolicyChange -e USER=DirectEffBCGPolicyChange -e PASSWORD=DirectEffBCGPolicyChange seabbs/directeffbcgpolicychange
The rstudio client can be found on port :8787 at your local machines ip. The default username:password is DirectEffBCGPolicyChange:DirectEffBCGPolicyChange, set the user with -e USER=username, and the password with - e PASSWORD=newpasswordhere. The default is to save the analysis files into the user directory.
If you have access to the required underlying raw data then the entire analysis can be reproduced from scratch by adding the following to the docker run
command, with the data saved into data/tb_data
. The data requirements, and structure, can be found here.
--mount type=bind,source=$(pwd)/data/tb_data,target=/home/DirectEffBCGPolicyChange/data/tb_data
Alternatively the analysis environment can be accessed via binder.