Skip to content

Commit 5f4d936

Browse files
committed
Update README.md
1 parent 3d564f3 commit 5f4d936

1 file changed

Lines changed: 54 additions & 19 deletions

File tree

README.md

Lines changed: 54 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,66 @@
22

33
[![Test Gallery Models](https://github.com/EpiModel/EpiModel-Gallery/workflows/Test-Gallery-Models/badge.svg?branch=main)](https://github.com/EpiModel/EpiModel-Gallery/actions)
44

5-
Templates for extending the [EpiModel](https://github.com/statnet/EpiModel) platform to model infectious disease dynamics over networks. Each example demonstrates how to build custom modules for stochastic network models using exponential random graph models (ERGMs).
5+
### 📖 **[Browse the Gallery Website →](https://epimodel.github.io/EpiModel-Gallery/)**
66

7-
EpiModel provides built-in SIS/SIR models out of the box, but its module API supports arbitrarily complex epidemic systems. The learning curve for writing custom modules can be steep, so these examples teach by example -- from adding a single compartment to multi-stage disease models with interventions and cost-effectiveness analysis.
7+
A curated collection of tutorials for extending the [EpiModel](https://github.com/statnet/EpiModel) platform to model infectious disease dynamics over networks. Each example demonstrates how to build custom modules for stochastic network models using exponential random graph models (ERGMs), with fully annotated walkthroughs on the [Gallery website](https://epimodel.github.io/EpiModel-Gallery/).
8+
9+
EpiModel provides built-in SIS/SIR models out of the box, but its module API supports arbitrarily complex epidemic systems. The learning curve for writing custom modules can be steep, so these examples teach by example -- from adding a single compartment to multi-stage disease models with interventions and cost-effectiveness analysis. The examples are organized from beginner-friendly fundamentals through intermediate extensions to full applied disease models.
810

911

1012
## Gallery Examples
1113

14+
**Fundamentals**
15+
1216
| Example | Description |
1317
|---------|-------------|
14-
| [SI with Vital Dynamics](examples/si-vital-dynamics/) | SI with aging, births, deaths, and age-specific mortality |
15-
| [Adding an Exposed State](examples/seir-exposed-state/) | SEIR/SEIRS: adding an exposed (latent) compartment, with optional waning immunity |
16-
| [Test and Treat](examples/sis-test-and-treat/) | SIS with screening and antibiotic treatment for bacterial STIs |
17-
| [Competing Strains](examples/sis-competing-strains/) | SIS with two pathogen strains differing in infectiousness and duration |
18-
| [Social Diffusion](examples/social-diffusion/) | SI framework repurposed for social diffusion with threshold and dose-response contagion |
19-
| [Syphilis](examples/syphilis/) | Multi-stage syphilis with diagnosis, treatment, and recovery |
20-
| [SEIR with AON Vaccination](examples/seir-aon-vaccination/) | SEIR with all-or-nothing vaccination, vital dynamics, and herd immunity |
21-
| [SEIRS with Leaky Vaccination](examples/seirs-leaky-vaccination/) | SEIRS with leaky vaccination (reduced transmission probability) and vital dynamics |
22-
| [HIV](examples/hiv/) | HIV with acute/chronic/AIDS stages and antiretroviral therapy (ART) |
23-
| [Cost-Effectiveness](examples/cost-effectiveness/) | SI with cost-effectiveness analysis: costs, QALYs, discounting, and ICERs |
24-
| [Observed Network Data](examples/observed-network-data/) | Epidemics over observed (census) dynamic networks without ERGM estimation |
25-
| [Multinets](examples/multinets/) | Multilayer networks with cross-layer dependency (e.g., main vs. casual partnerships) |
26-
27-
Each example contains `model.R` (network estimation and simulation), `module-fx.R` (custom module functions), and `index.qmd` (annotated Quarto document).
18+
| [SEIR/SEIRS: Adding an Exposed State](https://epimodel.github.io/EpiModel-Gallery/examples/seir-exposed-state/) | Adding an exposed (latent) compartment to SIR, with optional waning immunity |
19+
| [SI with Vital Dynamics](https://epimodel.github.io/EpiModel-Gallery/examples/si-vital-dynamics/) | SI with aging, births, deaths, and age-specific mortality |
20+
21+
**Interventions**
22+
23+
| Example | Description |
24+
|---------|-------------|
25+
| [SEIR with AON Vaccination](https://epimodel.github.io/EpiModel-Gallery/examples/seir-aon-vaccination/) | SEIR with all-or-nothing vaccination, vital dynamics, and herd immunity |
26+
| [SEIRS with Leaky Vaccination](https://epimodel.github.io/EpiModel-Gallery/examples/seirs-leaky-vaccination/) | SEIRS with leaky vaccination (reduced transmission probability) and vital dynamics |
27+
| [Test and Treat](https://epimodel.github.io/EpiModel-Gallery/examples/sis-test-and-treat/) | SIS with screening and antibiotic treatment for bacterial STIs |
28+
29+
**Intermediate Extensions**
30+
31+
| Example | Description |
32+
|---------|-------------|
33+
| [Competing Strains](https://epimodel.github.io/EpiModel-Gallery/examples/sis-competing-strains/) | SIS with two pathogen strains differing in infectiousness and duration |
34+
| [Social Diffusion](https://epimodel.github.io/EpiModel-Gallery/examples/social-diffusion/) | SI framework repurposed for social diffusion with threshold and dose-response contagion |
35+
36+
**Network Features**
37+
38+
| Example | Description |
39+
|---------|-------------|
40+
| [Observed Network Data](https://epimodel.github.io/EpiModel-Gallery/examples/observed-network-data/) | Epidemics over observed (census) dynamic networks without ERGM estimation |
41+
| [Multilayer Networks](https://epimodel.github.io/EpiModel-Gallery/examples/multinets/) | Multilayer networks with cross-layer dependency (e.g., main vs. casual partnerships) |
42+
43+
**Full Disease Models**
44+
45+
| Example | Description |
46+
|---------|-------------|
47+
| [HIV](https://epimodel.github.io/EpiModel-Gallery/examples/hiv/) | HIV with acute/chronic/AIDS stages and antiretroviral therapy (ART) |
48+
| [Syphilis](https://epimodel.github.io/EpiModel-Gallery/examples/syphilis/) | Multi-stage syphilis with diagnosis, treatment, and recovery |
49+
50+
**Advanced Extensions**
51+
52+
| Example | Description |
53+
|---------|-------------|
54+
| [Cost-Effectiveness Analysis](https://epimodel.github.io/EpiModel-Gallery/examples/cost-effectiveness/) | SI with cost-effectiveness analysis: costs, QALYs, discounting, and ICERs |
55+
56+
Each example contains `model.R` (network estimation and simulation), `module-fx.R` (custom module functions), and `index.qmd` (annotated tutorial on the website).
2857

2958

3059
## Getting Started
3160

61+
The recommended way to learn is through the [Gallery website](https://epimodel.github.io/EpiModel-Gallery/), which presents each example as an annotated tutorial with model diagrams, code walkthroughs, and output plots. Start with the Fundamentals section and work through the examples in order.
62+
63+
To run the code yourself:
64+
3265
### Prerequisites
3366

3467
- **R** >= 4.5
@@ -68,13 +101,15 @@ This runs each example's `model.R` and reports pass/fail with timing.
68101
Contributions of new gallery examples are welcome! To contribute:
69102

70103
1. Fork this repository on GitHub.
71-
2. Create a new subdirectory under `examples/` containing:
104+
2. Create a new subdirectory under `examples/` named descriptively (e.g., `sir-vaccination/`) containing:
72105
- `model.R` -- main script for network estimation and simulation
73106
- `module-fx.R` -- custom module functions plugged into `control.net()`
74-
- `index.qmd` -- annotated Quarto document
107+
- `index.qmd` -- annotated Quarto tutorial (see existing examples for the format)
108+
- `thumbnail.png` -- thumbnail image for the gallery listing
75109
3. Include the standard unit test lines near the top of `model.R` (see existing examples).
76110
4. Verify your example passes: `bash test.sh`
77-
5. Submit a Pull Request.
111+
5. Verify the website builds: `quarto render`
112+
6. Submit a Pull Request.
78113

79114

80115
## Citation

0 commit comments

Comments
 (0)