SISMID 2018: Module 11


Contact Network Epidemiology

Thomas J. Hladish and Joel C. Miller


Project maintained by tjhladish

Handouts

Wednesday, Session 3
Thursday, Sessions 1 & 2
Friday, Sessions 1 & 2

Miller Lecture Handout 1
Miller Lecture Handout 2
Miller Lecture Handout 3
Miller Lecture Handout 4
Miller Lecture Handout 5

Wednesday, Session 4 (3:30-5:00)

Lab 1: EpiFire Handout
Lab 1: Mystery network file

Thursday, Session 3 (1:30-3:00)

Lab 2: Python Handout
Lab 2: Simple edgelist file
Multi-wave epidemics in Montreal model

Thursday, Session 4 (3:30-5:00)

Lab 3: Python Handout
Lab 3: Toy edgelist file
Lab 3: Sexual contact edgelist file
Lab 3: Randomized sexual contact edgelist file
Lab 3: Urban edgelist file

NetworkX website
NetworkX tutorial (short)
NetworkX reference (long)

Friday, Session 3 (1:30-3:00)

Lab 4: Python Handout
Lab 4: Simple percolation code (add network construction)
Agent-based dengue model and the spread of mosquitoes

Friday, Session 4 (3:30-5:00)

Lab 5: Python Handout
Lab 5: Intervention percolation code
Lab 5: Urban age data
Lab 5: Random vaccination solution
Lab 5: Targeted vaccination solution
Lab 5: Random social distancing solution

Software Downloads

Windows

Download Enthought Canopy Express
Download EpiFire v3.34.0 for Windows

OS X

Download Enthought Canopy Express
Download EpiFire v3.34.0 for Mac OS X

Linux

Install python and python-networkx from repository
EpiFire source code
Some advice regarding dependencies is available here.
Talk to me if you have questions

Additional Resources

Joel's software and book

The book is available for free while on the UW network (and many other universities).
Python software package for epidemics on (static) networks

Some interesting network data sets

Mark Newman's network data page

This is a good resource for networks from different sources, although most are likely not epidemiologically relevant.

GML files can be read in using NetworkX like this:

from networkx import *
mygraph = read_gml('graph_file.gml')

Network fun

VAX! A game about epidemic prevention.

One more exercise

Actual data is often time-structured and could reasonably be interpreted as a dynamic network.

Create a new percolation simulator that reads in an edge list file with time data, and then simulates an epidemic on a dynamic network.

What are the consequences of using a dynamic network vs "flattening" the data into a static network? What are the important decisions you need to make as a modeler in this exercise?

Edge list with times.

The line format is "node1,node2,start_time,end_time"

Script I used to generate the dynamic network