Infectious Diseases and Herd Immunity

In this virtual lab, you will investigate the concept of herd immunity using the susceptible-infectious-recovered (SIR) model. You will explore how different (Subscript[R, 0]) values affect the number of individuals who contract a particular infectious disease. Lastly, you will explore how vaccination can reduce the number of individuals who become infected with a particular disease.

Background

Epidemiology is the study of incidence, distribution and possible control of diseases and health within populations. Thus, epidemiology is important in creating a healthy society and minimizing disease and suffering due to health problems. Population models have been an integral part of describing and predicting how disease spreads and is controlled within populations.

The following two exercises should give you a broad idea of how modeling and simulation can help us to understand population health, and how population models can help us to predict and prevent disease outcomes.

The model used in this exercise is based on the SIR model. The SIR model was developed by Kermack and McKendrick in the early 1900s and is one of the most well-known models for studying infectious diseases within populations. Since its development, there have been many adaptations of the model, allowing it to be used in a wide variety of settings and contexts.

Learning Objectives

When this assignment has been completed, you will have learned:

The basic concepts of the SIR model

The importance of the (Subscript[R, 0]) values in calculating the heard immunity threshold

That vaccination decreases the proportion of people who are infected by making them immune

That a certain proportion of the population needs to be vaccinated for herd immunity to occur

System Description

Before you start exploring the effects of vaccination on a population, you will first need to understand the basics of the SIR model. First, load the model into your Wolfram Language session.

ImportString[,"MO"];

Now load an image of the diagram for the model:

Show[SystemModel["HerdImmunityModel.VaccineModel","Diagram"],ImageSize->450]

Exercise

Part 1: The SIR Model

Background

(Subscript[R, 0]), or the basic reproduction number, is a special value used to describe the infectiousness of different diseases. This number can be thought of as the number of infections that one infected person generates during the time that they are infected. If the (Subscript[R, 0]) value is large, this means that one infection causes many other people to become infected. If the (Subscript[R, 0]) value is low, this means that one infection is unlikely to cause many other people to become infected.

There are different (Subscript[R, 0]) values for different diseases. For example, measles has a high (Subscript[R, 0]) value, meaning that one case of measles causes about 12–18 people to also get the measles. This compares to diseases like Ebola, where 1 case is likely to cause about 2 new cases.

It’s important to note, however, that (Subscript[R, 0]) values do not tell us how deadly a disease is. For example, approximately 1 person in 10,000 who contracts measles dies. This compares to about 1 in 2 people for Ebola.

The following table shows different (Subscript[R, 0]) values for different diseases, and the typical durations of the diseases:

({{ , (Subscript[R, 0]), Duration (days)}, {Measles, 12–18, 10–12}, {Diphtheria, 6–7, 14}, {Smallpox, 5–7, 35}, {Polio, 5–7, 10}, {Rubella, 5–7, 3}, {Mumps, 4–7, 7–10}, {HIV, 2–5, indefinite}, {Pertussis, 5.5, 70}, {SARS, 2–5, 20}, {Influenza, 2–3, 7}, {Ebola, 1.5–2.5, 21}})
Figure 1: (Subscript[R, 0]) values and duration of disease for different infectious diseases.
Source: <https://en.wikipedia.org/wiki/Basic_reproduction_number>

Instructions

Show[SystemModel["HerdImmunityModel.NoVaccineModel",{"Diagram",Frame-> False}],ImageSize-> 450]

Now it’s time to simulate the model. Here, you will have a population with 100 individuals. At the start, one individual is in the infected state, and the remaining members of the population are in the susceptible state. You will then measure the number of people who are susceptible, infectious and recovered. Use the interactive simulation to see what happens.

With[{modText=},
Manipulate[
Quiet[SystemModelPlot[
SystemModelSimulate["HerdImmunityModel.NoVaccineModel",
<|"ParameterValues"-> {If[NumberQ[R0],"r0"-> R0,Nothing],"durationSick"-> DurationSick}|>,
Method->"NDSolve"
]
]],
{{R0,12,"(Subscript[R, 0]) Value"},Row[{InputField[#,Number,ContinuousAction->True],Spacer[5]}]&},
{{DurationSick,7,"Duration of Sickness (Days)"},Row[{Slider[#,{1,35,1},ContinuousAction->False],Spacer[5],#," days"}]&},Initialization:>Quiet[Check[SystemModel["HerdImmunityModel"],ImportString[modText,"MO"]]],SynchronousInitialization-> False]]

Above the graph, you should see two inputs that allow you to control the (Subscript[R, 0]) value and the duration of sickness in days. The (Subscript[R, 0]) value should be set to 3 and the duration of sickness to 7 days. These are the typical values for influenza. You can enter different values directly from the table provided (Figure 1) to observe what happens with different diseases.

Questions

Experiment by inputting (Subscript[R, 0]) values and durations of sickness for different diseases (for HIV, choose a really large number for the duration of sickness). Observe what happens and compare the peak number of infected individuals among different diseases. Record these values in the following table. Keep the initial number of infected individuals at 1. If the (Subscript[R, 0]) value/duration of sickness is given in a range, use the minimum (Subscript[R, 0]) value.

({{□, Peak no. of infected individuals}, {Measles, □}, {Diphtheria, □}, {Smallpox, □}, {Polio, □}, {Rubella, □}, {Mumps, □}, {HIV, □}, {Pertussis, □}, {SARS, □}, {Influenza, □}, {Ebola, □}})

Experiment by keeping the duration of sickness constant and changing the (Subscript[R, 0]) value. Set the duration of sickness to 7 days and enter different values of (Subscript[R, 0]). What do you notice as you increase the value of (Subscript[R, 0])? Record your results.

Results:

Experiment by keeping the (Subscript[R, 0]) constant and changing the duration of sickness. Set the (Subscript[R, 0]) value to 3 and enter different values for the duration of sickness. What do you notice as you increase the duration of sickness? Record your results.

Results:

Design a superbug. Find values of (Subscript[R, 0]) and duration of sickness that give the highest number of infected individuals. What are your values?

Results:

Part 2: Vaccination and Herd Immunity

Background

Vaccination is important in preventing the spread of infectious diseases. It is a form of artificial immunity, meaning that it allows a person to become immune without being infected with the disease.

When a large percentage of the population becomes immune to a disease, you can consider the population to be protected from the disease by herd immunity. This means that although not all of the population may be vaccinated, a sufficient proportion of the population is, and the disease can no longer spread. This is very important for protecting people who cannot be vaccinated, either for medical reasons or because of their age.

Although immunity can be acquired through natural infection, in most cases herd immunity is acquired through vaccination. Vaccination means that an individual does not need to be infected with the disease in order to become immune, and thus a person who is vaccinated doesn’t get sick. A person who is vaccinated is also non-infectious. In most cases, therefore, vaccination is the most efficient pathway toward immunity.

To calculate the proportion of the population that needs to be vaccinated in order to gain herd immunity, a special formula is used. The formula calculates the herd immunity threshold, which is the minimum proportion of individuals in the population that needs to gain immunity in order to have herd immunity. The formula takes into account the (Subscript[R, 0]) value for the disease:

herd immunity threshold (HIT) = 1 – (1/(Subscript[R, 0]))

Instructions

Let’s look at the model again, but this time, we’ll add a vaccination component. Run the code to load an image of the new model.

Show[SystemModel["HerdImmunityModel.VaccineModel",{"Diagram",Frame-> False}],ImageSize-> 450]

As you can see, there is now an extra red arrow allowing susceptible individuals to bypass the infected stage and go directly to the recovered stage. This arrow represents the process of vaccination.

Use the following interactive simulation to test the new model.

With[{modText=},
Manipulate[
Quiet[SystemModelPlot[
SystemModelSimulate["HerdImmunityModel.VaccineModel",
<|"ParameterValues"-> {If[NumberQ[R0],"r0"-> R0,Nothing],"durationSick"-> DurationSick,"vaccinationRate"-> VaccRate}|>,
Method->"NDSolve"
]
]],
{{R0,12,"(Subscript[R, 0]) Value"},Row[{InputField[#,Number,ContinuousAction->True],Spacer[5]}]&},
{{DurationSick,7,"Duration of Sickness (Days)"},Row[{Slider[#,{1,35,1},ContinuousAction->False],Spacer[5],#," days"}]&},
{{VaccRate,0.05,"Rate of Vaccination (1/Days)"},Row[{Slider[#,{0,1,0.05},ContinuousAction->False],Spacer[5],#," (days^(-1))"}]&},
Initialization:>Quiet[Check[SystemModel["HerdImmunityModel"],ImportString[modText,"MO"]]],SynchronousInitialization-> False]]

At the moment, the graph should look the same as the simulation you did earlier. However, notice that there is now a slider labeled Rate of Vaccination. This allows you to control what proportion of the population is vaccinated against the disease. At the moment this is set to 0 (meaning that no individuals have been vaccinated), and all recovered individuals acquired their immunity through natural infection. Setting this slider to 1 means that the entire population is vaccinated against the disease.

Questions

Experiment by sliding the Rate of Vaccination slider up and down. Keep the (Subscript[R, 0]) value at 3 and the duration of sickness at 7. Observe what happens as you do this, and record your results.

Results:

Calculate the herd immunity threshold for the diseases mentioned in the following table. Also observe the peak number of infected individuals. If the (Subscript[R, 0]) value/duration of sickness is given in a range, use the minimum (Subscript[R, 0]) value.

After you have done this, observe what happens when you put these values into the model. Use the herd immunity threshold as the proportion of the population vaccinated for each disease. Record the peak number of infected individuals for each disease.

({{□, (Subscript[R, 0]) value used, Herd immunity threshold, Peak no. of infected individuals}, {Measles, □, □, □}, {Smallpox, □, □, □}, {Polio, □, □, □}, {SARS, □, □, □}, {Ebola, □, □, □}})

For each disease, change the Rate of Vaccination, starting from the previously calculated herd immunity threshold down to 0. Observe what happens. Is there any change in the peak number of infected individuals? Why or why not?

Results:

Appendix

Prerequisites

Before starting this course, it is recommended that you be familiar with the following topics:

How immunity is obtained

The role of vaccinations in immunity

Herd immunity

System Descriptions

In this virtual lab, you will study two different models.

GraphicsColumn[{Show[SystemModel["HerdImmunityModel.NoVaccineModel",{"Diagram",Frame-> False}],ImageSize-> 500],Show[SystemModel["HerdImmunityModel.VaccineModel",{"Diagram",Frame-> False}],ImageSize-> 450]}]

See the following for a description of the different elements in the diagrams.

Icons

Population groups tally all the organisms that exhibit a certain combination of traits. In this model, there are three named population groups:

Susceptible: This stage represents the individuals who are susceptible or vulnerable to contracting a particular disease. Thus, these individuals are not immune to the disease and can become infected with the disease by coming into contact with an infectious person.

Infected: This stage represents individuals who have become infected with the disease after coming into contact with someone who has the disease. These individuals are able to pass the disease along to other individuals who are susceptible to becoming infected with the disease.

Recovered: This stage represents individuals who had the disease and have since recovered from it. Thus, these individuals are now immune to the particular disease.

Arrows

The arrows represent transitions between each of the different stages in the disease life cycle:

Susceptible to infected: The arrow between the susceptible and infected stages represents susceptible individuals becoming infected with the disease. The rate at which this occurs depends on a number of factors, including the proportion of infected individuals (green plus) and the (Subscript[R, 0]) value.

Infected to recovered: The arrow between the infected and recovered stages represents infected individuals recovering from their infections. The rate at which this occurs depends on how long the infection lasts.

Image Attributions

"vaccine-silhouette-hand-infection" by mohamed_hassan [CC0]. pixabay.com/en/vaccine-silhouette-hand-infection-2730651/.