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

Number of generations function #36

Open joshwlambert opened 1 year ago

joshwlambert commented 1 year ago

Fraser et al. (2009) Pandemic Potential of a Strain of Influenza A (H1N1): Early Findings, report:

Given estimates of $R_0$ and the current epidemic size $x$, we can estimate the number of generations $N_t$ of transmission of the virus among humans that is necessary to explain the current epidemic. Assuming a simple branching process with reproduction number $R_0$, the mean number of generations of transmission is given by $Nt = ln(x/x0)/ln(R_0)$, assuming the epidemic was started by $x_0$ humans being infected from animal sources.

Would this calculation be useful in {superspreading}?

It is less about transmission variability and more about the underlying branching process model, so might be better suited to {bpmodels} or {epichains}. @jamesmbaazam what do you think?

jamesmbaazam commented 1 year ago

so might be better suited to {bpmodels} or {epichains}

Very nice paper. I wasn't aware of it. I just took a quick look and yes, it's something that can be simulated with bpmodels::chain_sim(). This is a good idea for a vignette to answer the question of "How many generations would it take to achieve a certain epidemic size?". I think it's somewhat related to the question in this paper about when to expect 1,000 and 10, 000 COVID-19 cases, which inspired this vignette. The difference here is that the Fraser et al paper is looking at generations whereas the Pearson et al paper looks at the time, both of which are tracked in chain_sim(). I've not dug into the details of the Fraser paper but since no dispersion is mentioned in the quoted text above, my initial guess is that the analytical solution for the number of generations required is obtained from a poison offspring distribution or some kind of mixture.

Could you raise an issue on {bpmodels} and link this issue? I'm also happy to collaborate on a vignette.

joshwlambert commented 1 year ago

Happy to create an issue elsewhere and work on it there. Just to check would you prefer this development take place in {bpmodels} over {epichains}, and briefly explain why? Just to help me understand the differences.

jamesmbaazam commented 1 year ago

I think it would be easier with {epichains} as I now provide a summary method to determine the maximum generation that led to a threshold of cases, for example. As this development is yet to be completed, reviewed, and merged, {bpmodels} is the better go-to, if it's "urgent". Moreover, if the issue is raised on {bpmodels}, it can also easily be transferred to {epichains} in due time. We just need to have it on record so we don't forget about it.