epiverse-trace / epichains

[Under active development] Methods for simulating and analysing the sizes and lengths of infectious disease transmission chains from branching process models
https://epiverse-trace.github.io/epichains/
Other
5 stars 2 forks source link

Implement interventions in models #3

Closed jamesmbaazam closed 10 months ago

jamesmbaazam commented 1 year ago

The current models do not include interventions. A necessary enhancement will be the inclusion of interventions in the model setup.

Conceptualisation

The interventions will impact how offspring are produced. This can be implemented as a reduction in $R_0$, some kind of "pruning" of connections, or a re-specification of the offspring and serial interval distribution to impact the number of offspring produced.

As an example, in the paper, "The impact of travel restrictions on COVID-19 cases in Hong Kong", the offspring distribution is specified as a conditional Poisson distribution with a mean that depends on physical distancing, the number of susceptible individuals in the population, the type of infection the infected individual has (asymptomatic, pre-clinical or clinical), and the number of days since the date of infection.

Implementation

We will implement generic interventions that:

Literature

The following papers provide branching process models that include non-pharmaceutical interventions.

Non-pharmaceutical interventions:

Vaccination:

Other papers to consider:

sbfnk commented 1 year ago

One simple option would be to support truncating either the serial interval or the offspring distribution using the truncdist package, which is already imported for modelling susceptible depletion, and which supports the same syntax as used here in specifying random distributions by a character string (see also related discussion in #25).

sbfnk commented 1 year ago

The other thing that could be done would be the implementation of a reduction in transmission, i.e. the c from the supplementary notes of Lloyd-Smith et al., 2005, section 2.5.3.

@joshwlambert this could then be used to simulate individual-specific vs population-wide control, as in Fig. 3c of that paper.

joshwlambert commented 1 year ago

@sbfnk @jamesmbaazam The use of the individual-level and population-level controls (c, from Lloyd-Smith et al.) would be useful. I'm currently working on exactly that for {superspreading} (see epiverse-trace/superspreading#13).

I'm using {bpmodels} for the simulation, but would be happy to move to using {epichains} if these features were included.

jamesmbaazam commented 1 year ago

Some good discussions here. @joshwlambert please go ahead with {bpmodels} for now.

And just as we've done in the past with other vignettes, if new features/packages become available, the vignettes can either be modified to use them or compare the old and new. Both alternatives are useful for the user in my opinion.

sbfnk commented 10 months ago

To be superseded by addressing #103

jamesmbaazam commented 10 months ago

After some internal discussions, we agreed not to implement the intervention mechanism in this package but rather in the epidemics package, so this issue has been partly addressed here with the vignette in #106 will be closed.

pratikunterwegs commented 8 months ago

Hi, coming in here from the full package review #122 - I completely missed this exchange when it happened. Could you please include me when discussing developments related to {epidemics} and modelling generally? I would disagree substantially with the previous comment and especially the idea interventions would only be implemented in {epidemics}.

As far as I can recall, we agreed to see how interventions could be harmonised across the packages - having looked into {epichains} a bit more, I'm still not convinced that there should be deep technical harmonisation (i.e., shared classes, interdependency, etc.) - which makes it a bit odd that a whole feature has been considered necessary in this package, has been added, and then removed, without substantial discussion as to the pros and cons.

jamesmbaazam commented 8 months ago

Hi, coming in here from the full package review #122 - I completely missed this exchange when it happened. Could you please include me when discussing developments related to {epidemics} and modelling generally? I would disagree substantially with the previous comment and especially the idea interventions would only be implemented in {epidemics}. As far as I can recall, we agreed to see how interventions could be harmonised across the packages - having looked into {epichains} a bit more, I'm still not convinced that there should be deep technical harmonisation (i.e., shared classes, interdependency, etc.) - which makes it a bit odd that a whole feature has been considered necessary in this package, has been added, and then removed, without substantial discussion as to the pros and cons.

Alright, we will make sure to get your opinions in the new year when we return to this conversation.

pratikunterwegs commented 8 months ago

Hi James, just to gently point out that this seems to have been on the epichains channel, where I haven't joined. I don't mind the direction in which you take the package, and I'm happy for there to be one or multiple implementations of interventions, depending on what seems best for Epiverse needs - I am not opposed to interventions coming in in epichains as well, although this issue now appears to be superseded.