class simple_vaccine(days, prob=1.0, rel_sus=0.0, rel_symp=0.0, subtarget=None, cumulative=False, **kwargs)[source]#

Bases: Intervention

Apply a simple vaccine to a subset of the population. In addition to changing the relative susceptibility and the probability of developing symptoms if still infected, this intervention stores several types of data:

  • doses: the number of vaccine doses per person

  • vaccination_dates: list of dates per person

  • orig_rel_sus: relative susceptibility per person at the beginning of the simulation

  • orig_symp_prob: probability of developing symptoms per person at the beginning of the simulation

  • mod_rel_sus: modifier on default susceptibility due to the vaccine

  • mod_symp_prob: modifier on default symptom probability due to the vaccine

  • days (int or array) – the day or array of days to apply the interventions

  • prob (float) – probability of being vaccinated (i.e., fraction of the population)

  • rel_sus (float) – relative change in susceptibility; 0 = perfect, 1 = no effect

  • rel_symp (float) – relative change in symptom probability for people who still get infected; 0 = perfect, 1 = no effect

  • subtarget (dict) – subtarget intervention to people with particular indices (see test_num() for details)

  • cumulative (bool) – whether cumulative doses have cumulative effects (default false); can also be an array for efficacy per dose, with the last entry used for multiple doses; thus True = [1] and False = [1,0]

  • kwargs (dict) – passed to Intervention()

Note: this intervention is still under development and should be used with caution. It is intended for use with use_waning=False.


interv = cv.simple_vaccine(days=50, prob=0.3, rel_sus=0.5, rel_symp=0.1)
interv = cv.simple_vaccine(days=[10,20,30,40], prob=0.8, rel_sus=0.5, cumulative=[1, 0.3, 0.1, 0]) # A vaccine with efficacy up to the 3rd dose



Fix the dates and store the doses


Perform vaccination