# Table of Contents
# Comp
EpiJS module for creating compartments, which can be combined into models.
Import it with:
const comp = require('@epispot/epijs').comp
# Idiom
Class for a custom compartments.
# Parameters
equation
String (opens new window) The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key. If using other compartment classes, they each have their own corresponding variable:* 'S' - Susceptible- 'E' - Exposed
- 'I' - Infectious
- 'R' - Recovered
- 'D' - Dead
- 'C' - Critical
- 'H' - Hospitalized
- 'V' - Vaccinated
- 'w' - Reserved for stochastic models. If put, it will be replaced with a random number generated from the gaussian distribution.
# Examples
let susceptible = new Idiom("S-(B*S*I)")
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Examples
let infected = new Idiom("I+((B*S*I)/p)")
infected.addSub("Asymptomatic", 10) // 10% of the infected population are asymptomatic.
# Susceptible
Class for Suscepible compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments This is multiplied by the current susceptible population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "S" as the id. This parameter is useful if you want to model a disease with re-susceptibility.stochastic
Boolean (opens new window) If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will auto generate the equations from what you pass in.
# Examples
// Note that you can pass in a number as a rate too,
// but we use a string because we want to multiply
// by other compartment populations. This applies to the prev parameter too.
let S = new Susceptible(["I*0.4/N"], [], true)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Infected
Class for Infected compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments This is multiplied by the current infected population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "I" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations. We do actually do this for the prev parameter, though.
let I = new Infected([0.3], [["S", "I*0.4/N"]], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Exposed
Class for Exposed compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments This is multiplied by the current exposed population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "E" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations. We do actually do this for the prev parameter, though.
let E = new Exposed([1/14], ["S*0.4/N"], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Critical
Class for Critical compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments This is multiplied by the current critical population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "C" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations.
let C = new Critical([0.14, 0.1], [["H", 0.3]], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Hospitalized
Class for Hospitalized compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments This is multiplied by the current hospitalized population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "H" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations.
let H = new Hospitalized([0.3], [["I", 0.1], ["E", 0.2]], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Dead
Class for the Dead compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments. This is multiplied by the current dead population. Useful if you want to have a dead population that can also be the walking dead.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "D" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations. We do actually do this for the prev parameter, though.
let D = new Dead([0.3], [["I", 0.3]], false) // This disease also gives you a 3/10 chance to come alive after death.
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Vaccinated
Class for Vaccinated compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "V" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations. We do actually do this for the prev parameter, though.
let I = new Infected([0.001], ["S*0.4"], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
# Recovered
Class for Recovered compartment.
# Parameters
next
Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.prev
Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "V" as the id.stochastic
Boolean (opens new window) If true, the compartment will be stochastic.
# Examples
// Note that you can pass in a string as a rate too,
// but we use a number in this case because we don't need to multiply
// by other compartment populations. We do actually do this for the prev parameter, though.
let R = new Recovered([ ], [["I", 0.1]], false)
# addSub
Add a subcompartment to this compartment.
# Parameters
name
String (opens new window) Name of sub-compartment.percentage
Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.