SEIR
The Susceptible-Exposed-Infected-Recovered model. Extends SIR with an exposed (latent) period before individuals become infectious.
Compartments
- Susceptible: individuals who can be infected
- Exposed: individuals who are infected but not yet infectious (latent period)
- Infected: individuals who are currently infectious
- Recovered: individuals who have recovered and are immune
Transitions
- Susceptible → Exposed: mediated by
transmission_rateand the number of Infected individuals - Exposed → Infected: spontaneous at
incubation_rate - Infected → Recovered: spontaneous at
recovery_rate
Parameters
Some parameters can be provided in multiple forms. For example, you can pass transmission_rate directly instead of the default R0, or a period such as incubation_period or infectious_period instead of its rate, which is converted automatically. If both forms are supplied, the rate form is used and the response includes a warning. See Preset conversions and precedence for details.
| Parameter | Status | Default | Description |
|---|---|---|---|
R0 | Default | 2.5 | Basic reproduction number. |
transmission_rate | Alternative to R0 | derived | . Per-contact transmission rate. Default: R0 * recovery_rate / CONTACT_MATRIX_EIGENVALUE_ALL. |
incubation_rate | Default | 0.2 | E → I rate. |
incubation_period | Alternative to incubation_rate | unset | Days from exposure to infectiousness. When passed, incubation_rate = 1 / incubation_period. |
recovery_rate | Default | 0.1 | I → R rate. |
infectious_period | Alternative to recovery_rate | unset | Days infectious. When passed, recovery_rate = 1 / infectious_period. |
CONTACT_MATRIX_EIGENVALUE_ALL is the dominant eigenvalue of the chosen population's contact matrix, summed over layers. With the defaults, R0 stays at 2.5 and depends on the population: about 0.0178 for United_States and 0.0181 for United_States__Vermont. If you pass transmission_rate, it is used as given, so R0 is no longer fixed at 2.5. To see the effective transmission_rate, set output.include_parameters.
Examples
Both examples below seed 0.1% of the population as Exposed at t=0 via an explicit initial_conditions block; the rest of the population starts in Susceptible. See Initial Conditions for other seeding options.
Rate form
curl -X POST https://epyscenario-api.isi.it/api/v1/simulations \
-H "Content-Type: application/json" \
-d '{
"model": {
"preset": "SEIR",
"parameters": {"transmission_rate": 0.3, "incubation_rate": 0.2, "recovery_rate": 0.1}
},
"population": {"name": "United_States"},
"simulation": {"start_date": "2024-01-01", "end_date": "2024-06-01", "Nsim": 10},
"initial_conditions": {
"method": "percentage",
"initial_percentages": {"Exposed": 0.1}
}
}'
Using R0 and period forms
curl -X POST https://epyscenario-api.isi.it/api/v1/simulations \
-H "Content-Type: application/json" \
-d '{
"model": {
"preset": "SEIR",
"parameters": {"R0": 2.5, "incubation_period": 5.0, "infectious_period": 10.0}
},
"population": {"name": "United_States"},
"simulation": {"start_date": "2024-01-01", "end_date": "2024-06-01", "Nsim": 10},
"initial_conditions": {
"method": "percentage",
"initial_percentages": {"Exposed": 0.1}
}
}'