An interactive teaching resource on sexual partnership concurrency and how it does (and does not) shape the spread of HIV and other sexually transmitted infections. The tutorial builds intuition through a graded series of exercises, moving from simple conceptual pictures to a full stochastic network simulation, so that readers can see for themselves why concurrency matters at the population level even when it changes nothing about an individual's own risk of acquiring an infection.
It is part of the EpiModel ecosystem and pairs with the interactive concurrency.sim app, which lets you explore the same simulation model without writing any code.
Available at: https://epimodel.github.io/ConcurrencyTutorial
The site opens with a short conceptual overview of what concurrency is (and is not) and how it drives transmission, followed by four exercises:
- Concurrency at the local level, conceptually. Two people, sequential Sam and concurrent Chris, are given the same partners, the same sex acts, and the same timing. The exercise draws out why concurrency raises the risk to a person's partners rather than to the person practicing it.
- Concurrency at the population level, conceptually. A small population under sequential versus concurrent partnering shows how many more people an infection can reach when partnerships overlap.
- Concurrency at the local level, numerically. The same Sam and Chris comparison is worked out with explicit per-act transmission probabilities, making the backwards-transmission and reduced-forward-transmission effects concrete.
- Concurrency at the population level, numerically. A full dynamic network microsimulation of an HIV epidemic that you can run and modify, turning concurrency on and off separately for women and men.
Two short appendices provide the background some readers will want: a refresher on the rules of probability, and a brief introduction to R.
index.qmdis the overview and landing page. Each exercise (ex1-*throughex4-*), the summary, and the background tutorials (probability, R, resources) are their own*.qmdpage, tied together by the sidebar and page navigation defined in_quarto.yml.ConcurrencyTutorialFiles/holds the figures used throughout._quarto.yml,custom.scss, andstyles.csscarry the EpiModel styling (the cosmo theme with teal accents, a steel-blue navbar and footer, and the Open Sans and Atkinson Hyperlegible fonts) along with the site navigation..github/workflows/publish.ymlrenders the site and publishes it to thegh-pagesbranch on every push tomain.
The tutorial contains no executed code, so only Quarto is required; there are no R packages to install:
quarto render
Open _site/index.html to preview the result. To edit the content, change index.qmd. To change the look, edit custom.scss (colors and fonts) or _quarto.yml (navigation, table of contents, and format options). Pushing to main rebuilds and republishes the public site automatically.
- Steven M. Goodreau, University of Washington
- Samuel M. Jenness, Emory University
- Martina Morris, University of Washington
See the full EpiModel team at epimodel.org/team.
All material is covered by a GPL-3.0 license, consistent with the EpiModel ecosystem.