Sunteți pe pagina 1din 10

Disease propagation through a network

Learning objectives:

Simulating spread of an infectious disease using agent-based modeling


Simulating a spatially clustered network of individuals

NetLogo is a software platform for exploration of complex systems. If you would like to know
more about the software, you can check out the NetLogo website, as well as this Wikipedia
entry. Among the resources available at the NetLogo website are tutorials and a full software
documentation. Parts of this lab are adapted from a NetLogo Tutorial on modeling epidemic
spread. If NetLogo is not yet installed on your computer, you will need to download it from the
NetLogo website and install it prior to working through this project.
We will construct a model of disease spread in a small human population where the disease is
transmitted from person to person through direct contact. An agent-based approach will be
taken. In this approach, each individual in the population is explicitly represented as an agent,
and simulations are performed according to the rules that govern the interactions of agents.
Model Development
Before starting to work with an agent-based model it is necessary to think about:
How many different types individuals there are in the model?
What are the rules that govern an individuals interactions?
How do the individuals change their states?
What are the rules that govern these changes?
In general models of disease dynamics, we may want to model animal and plant diseases as well
as diseases of humans, and the term host is used to refer to an individual of any kind who may
catch the disease. Infectious diseases of hosts are caused by pathogens, which are other kinds of
organisms, such as viruses, bacteria, protozoans, or fungi that grow and reproduce inside their
hosts (at the expense of the host's resources) and can spread from host to host.
In many cases, at any given time, the host population can be partitioned into an S-compartment
that comprises hosts that are susceptible to the disease (healthy hosts in our case), an Icompartment that comprises infectious hosts (sick hosts in our case), and an R-compartment
that comprises removed hosts (in our case, recovered host, whose immunity removes them from
the danger of subsequent infection). This approach allows, among other things, to simulate the
spread of the disease in the population of hosts.

To summarize, at any given time our host population can be partitioned into three
compartments:

Healthy hosts (S-compartment)


Sick and infectious hosts (I-compartment)
Recovered hosts (R-compartment)

Hosts in the model are only able to follow simple rules of the form:
If some condition(s) is (are) true, then take some action(s)
Such If-Then statements or transition rules are among the most common tools of computer
programming. NetLogo, as well as many other types of software, works by checking whether
the conditions are satisfied and taking the specified actions according to the rule.
To model the spread of a disease, our hosts will need to interact and move between
compartments according to the following rules that will govern their transition from one state
(healthy, sick, and recovered) to another.
Transition rules:
Action: A healthy host becomes sick
o Condition: Sometimes, when a healthy host has contact with a sick host
Action: A sick host recovers
o Condition: Eventually
Lets look at an example of a simple model which simulates the spread of an infectious disease.
1. Running the simulation
Click on the NetLogo icon. You should see the following Netlogo window:

Click File->Models Library

Click on Sample Models folder, and then choose subfolder epiDEM Basic.

Choose epiDEM Basic and click Open on the bottom of the screen.

The simulation windows should appear. Click on Setup and then Go

The simulation will show individual hosts which will move within the simulation window and
change color according to their current states. White figures represent susceptible hosts, red
figures represent infectious hosts and green figures represent recovered hosts. The simulation
will run until everybody recovers. Lets explore the results of the simulation.

There are four panels which represent the results of the simulation. Capture the image
of each panel in your simulation and insert them in the space below. Use the Info Tab to
understand what each panel represents. Summarize your findings below each panel.

2. Analyze the results of NetLogo simulation


2.1. Usually an outbreak of a disease is called an epidemic if a significant fraction of the
population experiences infection. For our purposes, we will consider an epidemic to
have occurred when 50% of the population experienced. How long does the epidemic
in your simulation last? (Hint: if you place the mouse inside the graph, you should see
the x- and y- coordinates of the mouse.)
2.2. Since disease transmission is based on random events, we do not know if our results
are reproducible. We need to run a large number of simulations to make sure that our
simulations are consistent with each other. Run five simulations and fill out the table
below:

Simulation #
1
2
3
4
5

Epidemic duration (hrs)

R0

Max # of infected

2.3. Are the data from your simulations similar? Summarize the findings of your
simulations in two or three sentences. If not, explain how discrepancies may arise in
separate runs of the simulation.

3. Changing simulation-specific parameters


We are currently running the simulation with a default choice of parameters for disease
spread and hosts interaction. To adapt our simulation to a specific populations or specific
diseases, we want to change the parameters of the simulations. At the top left corner of the
NetLogo window, there are four scrollbars that enable you to change the parameters.

4. Use the Info Tab to understand what each scrollbar represents. Experiment with the
scrollbars by selecting multiple values of each parameter. Summarize your findings below
the name of each scrollbar
Initial-people

Infection-chance

Recovery chance

Average-recovery-time
5. Conducting numerical experiments using NetLogo
Conduct numerical experiments by running simulations with different settings of the
parameter infection-chance. How does this parameter appear to influence the spread
of a disease through the population? Which settings make epidemics more severe?
6

Could you provide an example of disease with high infection chance? Low infection
chance?
Simulate network of human interactions using NetLogo
Up to this point, we have assumed that our hosts have random contacts that may lead to
disease transmission. However, analysis of human interactions shows that we like to
form contact networks of friends/coworkers/neighbors and diseases spread through
such networks. We will use NetLogo to simulate networks of human interactions and
try to understand how infectious disease spreads through such networks.
5.1. Running a network simulation
Open the directory that you created when unzipping the files for this module and
double-click on virus_on_network3.nlogo. You should get a NetLogo window that
looks like this:

Change the slider on the top of the screen from normal speed to slower

Manipulate the sliders to set number-of-nodes = 20

and average-node-

degree = 2
The type of network is determined by the Network type menu. By default, the
program will build a network of agents who form small groups (clusters). Such a
network is called a spatially clustered network. One example of a spatially clustered

network is a network of students living in a dorm. Set the network by clicking


.

NetLogo will represent hosts by putting dots in the simulation space and will connect the
hosts into a network by drawing line segments between any two hosts that have frequent
contact. A red dot represents an infected host and a green dot represents a susceptible
host. Insert the image of your network in the space below:

5.2. By default, our Netlogo code assumes that initially there are 10 hosts. If we are trying
to run a realistic simulation for disease spread in a student dorm, it would be more
realistic to assume that initially there is only one student who has the disease. The initial
number of infected in the NetLogo code is controlled by the initial-outbreak-size
slider

Click

and let the model run until the disease runs its course. Feel free to slow

down or speed up your simulation. You can stop the simulation by de-selecting the
Go button. Insert an image of the Network Status window in the space below.

6. Effect of long-term resistance on the dynamics of infectious disease


By default, our NetLogo code assumes that individuals do not acquire immunity to the
disease. Lets instead assume that after recovery from the disease, everybody becomes
immune (by setting
subsequently losing the immunity (

) and that there is a 25% chance of


). Let us then experiment with
8

the effect of various settings of the parameter lose-resistance-chance on the dynamics


of the disease.
Fill out the table below. For each parameter setting, conduct multiple simulation runs.

Chance of losing

Effect on the spread of the disease through the population and

immunity to the

the proportion of hosts that are infectious at any given time

disease

What can you conclude about the effect of loss of immunity on disease propagation
through the spatially clustered network?

Note: From this point on, keep the lose-resistance chance at 0%.
7. Determine the effect of average number of interactions on disease spread.
Although the number of interactions for each host is random, we can simulate the
average level of sociability in our network by varying the average number of
interactions for each agent using the scrollbar average-node-degree.
.
7.1. Conduct a numerical experiment on the effect of average number of interactions on
disease spread in the network. For each parameter setting, conduct multiple simulation
runs. How does this number appear to affect the speed at which the disease spreads or
the proportion of hosts who will experience infection during the outbreak?
8. Does it matter who is initially infected?
By default, the initially infected individual is selected randomly. However, you can
manually choose an individual (node) to be initially infected, susceptible or recovered
by clicking the Select button and then left-clicking one, two or three times on the node.

As shown in the screenshot, set number-of-nodes to 20


degree to 2
0%

, average-node-

, initial-outbreak-size to 1

, recovery-chance to

and gain-resistance-chance to 0%

. Conduct a

numerical experiment on the effect of location of the initially infected individual on the
disease spread through the spatially clustered network. Use the

button to

repeatedly explore the same network, but change the initially infected node. Explore
several runs per node that you selected.
Describe in a few sentences what you observe. Does it matter who is initially infected?
How would you explain these observations?
Now repeat the exercise with recovery-chance set to 1.0%
resistance-chance set to 100%

and gain-

. Describe in a few sentences what you

observe. How do the observed outcomes differ from what you observed for the
previous settings? How would you explain these observations?
Note1 : To return the states of all nodes in the network to their initial values, click
Note2 : To generate a new random network, click on

Note 3: To return all sliders to their original values, click

10

S-ar putea să vă placă și