In this final project we will put in practice most of the concepts learnt so far in the course. It is also a good opportunity to explore how to model vaccination, and to think carefully about resource allocation during public health emergencies. This final exercise is intended to be solved collaboratively, and presented back to the wider group at the end of the day. There are no uniquely correct answer, although there are specific points during the practical where there is a single correct course of action. During the practical copy and paste the code shown into a new script, make the necessary edits or fill the gaps and execute the chunks of code in your own R project.
1. A gastroenteritis outbreak
You lead the outbreak analysis advisory team in your district, where an outbreak of gastroenteritis (GE) has developed over the last month. The index case was reported in a large general hospital in a 66 year old man, who suffered from vomit, diarrhea and dehydration lasting for a period of 2 days. Subsequent cases of similar symptoms have been reported in the same hospital and other hospitals in the district. Outbreak investigation team have recorded the cases occurring at hospitals and stool and blood samples where collected when it was possible.
An initial case control investigation has shown that it is not possible to pin down a single source or common contamination source which has set the alarms for a water-borne gastroenteritis outbreak. A total of 3166 cases have been recorded during the outbreak, of which 79 have produced laboratory samples. The laboratory results show that 91% (71) cases have reported back a positive PCR for Human Norovirus (NoV).
You are handed a small dataset (see below) with the series of cases. Load your data and plot it. download your dataset, and save it in a folder called “data” in your R project.
2. Calibrate a model for NoV transmission to outbtreak data
As a modeller you are asked to use the existing outbreak data to create and calibrate a model for NoV transmission in different age groups and use it to see if the outbreak can be reproduced by simulation. A systematic review of the existing knowledge on Norovirus has found the following main points: Human Norovirus causes outbreaks of gastroenteritis principally among young children and the elderly. A symptomatic case has a duration of 2 days in average, with an incubation period of no more than 1 day. After a symptomatic period individuals can shed virus in their stools for about 15 days, which makes them slightly infectious but drastically less than a fully symptomatic case.
It is expected for the total size of the outbreak to be much larger, given that only a fraction of the cases of GE get reported or go to hospital. This is even more clear for the elderly who can rapidly deteriorate after contracting GE. For this reason you should correct your out put using previously estimated ratios of community cases per reported case (in the code below).
Below is the code for a SEIAR stochastic, age structured model of Norovirus transmission. The model is programmed using the Odin package, which we have used in previous practicals.
Task 1: By reading the code below, try to interpret what the model structure looks like. Draw an schematic.
Task 2: Fill-in the gaps of data in the code below,, marked with a question (??) symbol. Read carefully the text above to extract the data and convert to meaningful rates.
To implement an age-structured model we need a few pieces of information:
1) Age groups: Age structure needs to be defined. It has been decoded that the groups of interest are 0 to 4, 5 to 14, 15 to 64 and over 65s.
2) Age specific rates of contact. If we implement age groups we need to inform the model with the rates at which individuals of certain age group get in effective contact (i.e., the contact sufficient for transmission) with other age groups. This is called a contact matrix. In this practical we are using a widely used source of contact matrices, called POLYMOD. See here. POLYMOD projects contact matrix for over 152 countries. We are using a matrix estimated for Turkiye. It has been adapted to match the age groups of interest. Download the matrix form your materials website and save the csv file in your “data” folder. This contact matrix contains the mean number of contacts that an individual of age i has with another individual of age j in one day. Check the code below and try to interpret the graphic of the matrix.
Look carefully at the plot above and think what this means for disease transmission.
Now let’s bring together all the other inputs and run the model created in part 1.
In the next part you will try to find the values of beta that best fit the data of the outbreak.
Now that you have all the pieces to run the model
1) Use the code below to explore values of beta that fit best the cases reported in the outbreak (tip: try exploring values between 0.5 and 2)
2) Save your best fitting plot for presentation and your beta value. You will need this later
Now that you have found a good-fitting value for beta , explore some of the transmission dynamics of your calibrated model .
Run the code below to plot total simulated incidence of NoV cases during the outbreak (not corrected by reporting ratios)
Modelled cumulative deaths by NoV
Stacked deaths by age
Cases of NoV simulated by age group
Look carefully at this plots and try to understand
a) what groups are most affected ?
b) What age group drives the outbreak in size?
Before moving to the next step. Run the code below to create useful model output that you will use as your baseline estimations in the next part.
3. A new vaccine becomes available
In this part of the project you are asked to assess potential vaccination scenarios and make a decision on the most efficient way to use your resources.
The vaccine development pipeline for Norovirus currently has at least three potential formulations in phase III trials. This formulations include inactivated virus, mRNA and VLP (virus like particles) types of vaccines. They all include the genogroup GII.4 and either GI.3 or GI.1 genogroup. GII.4 is the cause of most epidemics around the world. For simplicity we are not modelling genogroups or variants in this exercise.
You are informed that two vaccine formulations have become available :
NoVax Vaccine: In preliminary immunogenecity studies it has shown good antibody (AB) response, which peaks at around 5 days after the first dose. Phase III trials have shown an underwhelming efficacy of 75%
Vomax Vaccine: This vaccine has a shown a very high efficacy of 92%, however the immunological response is much slower given the method of production and it takes ~12 days to reach protective AB values
It is expected that new outbreaks of contaminated waters will occur again in your district and you are asked to use your model to retrospectively assess how a potential vaccine could prevent cases and save lives in a similar outbreak.
For this you need to propose three scenarios of vaccination where you explore different age specific vaccine coverage with either NoVax or Vomax vaccine. For each scenario you will estimate:
Total cases prevented over one year (relative to baseline)
Total deaths averted over one year (relative to baseline)
Total doses delivered
Doses per case and death averted
Importantly, you are informed that only100,000 doses of either vaccine will be made available, so any decision you make needs to consider this.
Below you will see the code necessary to create each of the three scenarios and estimate the impact indicators.
iterate through this scenarios as necessary until you find your answer.
Tip: think carefully about the dynamics of transmission and what groups are most affected by incidence and mortality
At the end your group will prepare a 5 min (max) presentation in which you will present:
a) best model fit to data
b) Table with Three scenarios of analysis and its impact
c) Choose only one scenario and give your rationale in epidemiological terms