SISMID Module 2 Materials (2023)

Mathematical Models of Infectious Diseases


Pennsylvania State University


June 7, 2023



Welcome to this website that accompanies the 2023 Summer Institute in Modeling for Infectious Diseases (SISMID) Module 2: Mathematical Models of Infectious Diseases. This website contains both the lecture notes, so you can refer back to them at a later date, and the exercises that we will be completing throughout the module.

Workshop Pre-Requisites

As there is a reasonable amount of material to cover, and a relatively short amount of time to cover it in, there are some pre-requisite tasks to get set up ahead of the workshop.


Everyone should refer to the Exercise Requirements page, particularly the R Packages and Data Files sections to ensure you have the neccessary packages and data files installed for the exercises.

Firstly, this workshop requires some prior understanding of the R programming languages, as well as a working installation of R. If you do not have any experience, please refer to the Installing R and Just Enough RStudio & Just Enought R pages of the Pre-Requisites section.

It is also highly recommended that you read the Organizing A Project page for how to structure your code as you go through the exercises: we provide some guidelines to make your code easier to understand and navigate, both for yourself, and for others.

Please set aside about an hour to go through these materials and get set up. You should be able to do this in about 15 minutes if you are already experienced with R, but as with all things computational, it’s worth including some buffer time in case you run into issues. If you are completely new to R, this could take an hour or so, but is certainly worth the time investment: it will be hard to follow some of the exercises if you do not understand what the code is doing.

Tips About the Website

There are a number of useful features throughout this website to help you.

Firstly, in sections where there is R code showing, clicking on the text ▶ Code above the code block will hide the code if open (the default), or show the code if hidden.

Secondly, in the top right corner of each code block, there is a button that looks like a clipboard. Clicking this button will copy the code to your clipboard, so you can paste it into your own R session.

Finally, within the code blocks (and, in fact, in the regular text like this section), functions (e.g. list(), pivot_longer()) that come from a package (i.e., ones we didn’t write) show up in a different color. In most cases, you can hover your cursor over them (on the part next the the parentheses e.g., ode() from the line deSolve::ode()), and if they become underlined, you can click on them to go to the documentation for that function. This is like searching for the documentation from your R console using ?ode.

Keywords, Code, and Other Formatting

Throughout the book, you’ll see some keywords, code, and other points that I’ll try to delineate with the following formatting:


This will be a note, and will be used to highlight important points, or to provide additional information.


This will be an instruction to set certain parameters or values in the R code, or for the interactive plots.


This will be a general instruction.


This will be used to highlight a useful tip.


This will provide a warning that you may get an unexpected result if you’re not careful.

It is worth noting that some of these callouts may be collapsible. You can tell a callout is collapsible if there is a little > or in the top right corner of the callout i.e.,

This is an example of a collapsible callout that defaults to being collapsed.


Exercises that require you to complete missing sections of code, or answer a question, will be highlighted like this in R Session 2 and R Session 3

  • code will be used to highlight code.
  • {package::function()} will be used to denote a specific package and function, e.g., {dplyr::mutate()} denotes the mutate() function from the {dplyr} package.
    • Often the function() will be listed without the package, as there are library() calls at the top of each page indicating the packages used in that page, and the majority of functions will not cause conflicts, i.e., there are not packages with functions of the same name.
  • Bold will be used to highlight keywords and phrases, e.g., Git or GitHub.
    • Bold will also be highlighted in this way, e.g., commits or pushed being the result of the code git commit or git push
  • Bold-italics will be used to highlight file names, e.g., or LICENSE.
  • Italics will be used for emphasis in certain circumstances, e.g., signifying a question from an interactive terminal command.

About the Instructors

Dr. Micaela Martinez

Dr. Matinez is the Director of Environmental Health at WE ACT for Environmental Justice.

Dr. Martinez earned her Ph.D. in Ecology & Evolution in 2015 at the University of Michigan, and did her postdoctoral training at Princeton University. Before joining WE ACT, she served as an Assistant Professor at Columbia University Mailman School of Public Health, followed by Emory University, in the Dept. of Biology. Since 2017, Dr. Martinez has been supported by the prestigious NIH Director’s Early Independence Award. Over the past decade, her research has focused on infectious disease ecology, climate change, maternal and infant health, social justice, and environmental impacts on health (including biological rhythms).

Dr. Matt Ferrari

Dr. Ferrari is the Director of the Center for Infectious Disease Dynamics at The Pennsylvania State University.

Dr Ferrari’s lab does research on both the application of quantitative modeling and analysis to inform public health policy and the basic ecology of parasites and infectious diseases at the Center for Infectious Disease Dynamics at The Pennsylvania State University.

Callum Arnold

Callum is a 3rd Year PhD student in Dr. Ferrari’s lab at the Pennsylvania State University.

Callum’s work examines how the methods used to define groups and differences among individuals affect the understanding and detection of outbreaks.