diff --git a/config.yaml b/config.yaml index 615e9bfb..97381f8f 100644 --- a/config.yaml +++ b/config.yaml @@ -11,7 +11,7 @@ carpentry: 'incubator' # Overall title for pages. -title: 'Reading and cleaning data for outbreak analytics with R' +title: 'Accessing and using delays to Quantify transmission' # Date the lesson was created (YYYY-MM-DD, this is empty by default) created: diff --git a/delays-reuse.md b/delays-reuse.md index a9d538ba..8a97abd0 100644 --- a/delays-reuse.md +++ b/delays-reuse.md @@ -8,7 +8,7 @@ editor_options: :::::::::::::::::::::::::::::::::::::: questions -- How to get easy access to delay distributions from a literature search database? +- How to get access to disease delay distributions from a pre-established database for use in analysis? :::::::::::::::::::::::::::::::::::::::::::::::: @@ -27,13 +27,13 @@ This episode requires you to be familiar with: **Data science** : Basic programming with R. -**Epidemic theory** : Epidemiological parameters, time periods. +**Epidemic theory** : epidemiological parameters, disease time periods, such as the incubation period, generation time, and serial interval. ::::::::::::::::::::::::::::::::: ## Introduction -The [natural history](../learners/reference.md#naturalhistory) of an infectious disease shows that its development has a regularity from stage to stage. The time periods from an infectious disease inform about the timing of transmission and interventions. +Infectious diseases follow an infection cycle, which usually includes the following phases: presymptomatic period, symptomatic period and recovery period, as described by their [natural history](../learners/reference.md#naturalhistory). These time periods can be used to understand transmission dynamics and inform disease prevention and control interventions. ![Definition of key time periods. From [Xiang et al, 2021](https://www.sciencedirect.com/science/article/pii/S2468042721000038)](fig/time-periods.jpg) @@ -50,7 +50,7 @@ However, early in an epidemic, modelling efforts can be delayed by the lack of a -To exemplify how to use `{epiparameter}` in your analysis pipeline, our goal in this episode will be to *choose* one specific set of epidemiological parameters from the literature, instead of *copying-and-pasting* them by hand, to plug them into an `{EpiNow2}` analysis workflow. +To exemplify how to use the `{epiparameter}` R package in your analysis pipeline, our goal in this episode will be to choose one specific set of epidemiological parameters from the literature, instead of copying-and-pasting them by hand, to plug them into an `{EpiNow2}` analysis workflow. @@ -76,13 +76,9 @@ generation_time <- ) ``` -Usually, we would *copy/paste* the **summary statistics** we found in a paper. Or, try to get the **distribution parameters** from those reports. An additional source of issue is that the report of different statistical distributions is not consistent across the literature. `{epiparameter}`’s objective is to facilitate the access to parameters to implement them into your analysis pipeline. `{epiparameter}` provide information for a collection of distributions for a range of infectious diseases that is as accurate, unbiased and as comprehensive as possible. +It is a common practice for analysts to manually search the available literature and copy and paste the **summary statistics** or the **distribution parameters** from scientific publications. A challenge that is often faced is that the reporting of different statistical distributions is not consistent across the literature. `{epiparameter}`’s objective is to facilitate the access to reliable estimates of distribution parameters for a range of infectious diseases, so that they can easily be implemented in outbreak analytic pipelines. - - -Today, we'll *choose* the summary statistics from the library of epidemiological parameters provided by `{epiparameter}`. - - +In this episode, we will *choose* the summary statistics from the library of epidemiological parameters provided by `{epiparameter}`. -## Find a Generation time +## Generation time vs serial interval -The generation time, jointly with the $R$, can inform about the speed of spread and its feasibility of control. Given a $R>1$, with a shorter generation time, cases can appear more quickly. +The generation time, jointly with the reproduction number ($R$), provide valuable insights on the strength of transmission and inform the implementation of control measures. Given a $R>1$, the shorter the generation time, the earlier the incidence of disease cases will grow. ![Video from the MRC Centre for Global Infectious Disease Analysis, Ep 76. Science In Context - Epi Parameter Review Group with Dr Anne Cori (27-07-2023) at ](fig/reproduction-generation-time.png) @@ -111,9 +107,9 @@ This frequent approximation is because it is easier to observe and measure the o ![A schematic of the relationship of different time periods of transmission between an infector and an infectee in a transmission pair. Exposure window is defined as the time interval having viral exposure, and transmission window is defined as the time interval for onward transmission with respect to the infection time ([Chung Lau et al., 2021](https://academic.oup.com/jid/article/224/10/1664/6356465)).](fig/serial-interval-observed.jpeg) -However, using the *serial interval* as an approximation of the *generation time* is primarily valid for diseases in which infectiousness starts after symptom onset ([Chung Lau et al., 2021](https://academic.oup.com/jid/article/224/10/1664/6356465)). In cases where infectiousness starts before symptom onset, the serial intervals can have negative values, which is the case of a pre-symptomatic transmission ([Nishiura et al., 2020](https://www.ijidonline.com/article/S1201-9712(20)30119-3/fulltext#gr2)). +However, using the *serial interval* as an approximation of the *generation time* is primarily valid for diseases in which infectiousness starts after symptom onset ([Chung Lau et al., 2021](https://academic.oup.com/jid/article/224/10/1664/6356465)). In cases where infectiousness starts before symptom onset, the serial intervals can have negative values, which is the case for diseases with pre-symptomatic transmission ([Nishiura et al., 2020](https://www.ijidonline.com/article/S1201-9712(20)30119-3/fulltext#gr2)). -Additionally, even if the *generation time* and *serial interval* have the same mean, their variance usually differs, propagating bias to the $R_{t}$ estimation. $R_{t}$ estimates are sensitive not only to the mean generation time but also to the variance and form of the generation interval distribution [(Gostic et al., 2020)](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008409). + ::::::::::::::::: callout @@ -171,13 +167,13 @@ The peak of each curve can inform you about the location of the mean of each dis ::::::::::::::::: solution -Which one would be harder to control? +**Which one would be harder to control?** -- COVID-19 +COVID-19 -Why do you conclude that? +**Why do you conclude that?** -- COVID-19 has the lowest mean serial interval. The approximate mean value for the serial interval of COVID-19 is around four days, and SARS is about seven days. Thus, COVID-19 will likely have newer generations in less time than SARS, assuming similar reproduction numbers. +COVID-19 has the lowest mean serial interval. The approximate mean value for the serial interval of COVID-19 is around four days, and SARS is about seven days. Thus, COVID-19 will likely have newer generations in less time than SARS, assuming similar reproduction numbers. :::::::::::::::::::::::::: @@ -189,11 +185,11 @@ The objective of the assessment above is to assess the interpretation of a large :::::::::::::::::::::: -## Extract epidemiological parameters +## Choosing epidemiological parameters -First, let's assume that the data set `example_confirmed` has COVID-19 observed cases. So, we need to find a reported generation time for COVID-19 or any other useful parameter for this aim. +In this section, we will use `{epiparameter}` to obtain the generation time and the serial interval for COVID-19, so these metrics can be used to estimate the transmissibility of this disease using `{EpiNow2}` in subsequent sections of this episode. -Let's start by looking at how many parameters we have in the epidemiological distributions database in `{epiparameter}` (`epidist_db`) for the `disease` named `covid`-19: +Let's start by looking at how many entries are available in the epidemiological distributions database in `{epiparameter}` (`epidist_db`) for the `disease` named `covid`-19: ```r @@ -249,7 +245,7 @@ Parameters: scale: 3.180 ``` -Currently, in the library of epidemiological parameters, we have one `generation` time entry for Influenza. Considering the abovementioned considerations, we can look at the `serial` intervals for `COVID`-19. Run this locally! +Currently, in the library of epidemiological parameters, we have one `generation` time entry for Influenza. Considering the above-mentioned considerations, we can look at the `serial` intervals for `COVID`-19. Run this locally! ```r @@ -265,7 +261,7 @@ With this query combination, we get more than one delay distribution. This outpu ### CASE-INSENSITIVE -`epidist_db` is [case-insensitive](https://dillionmegida.com/p/case-sensitivity-vs-case-insensitivity/#case-insensitivity). This means that you can use strings with letters in upper or lower case indistinctly. +`epidist_db` is [case-insensitive](https://dillionmegida.com/p/case-sensitivity-vs-case-insensitivity/#case-insensitivity). This means that you can use strings with letters in upper or lower case indistinctly. Strings like `"serial"`, `"serial interval"` or `"serial_interval"` are also valid. ::::::::::::::::::::::::: @@ -530,8 +526,6 @@ What is a *parametrised* ``? Look at `?is_parameterised`. ::::::::::::::::::::::::: -Now, we have an epidemiological parameter we can reuse! We can replace the **summary statistics** numbers we plug into `EpiNow2::dist_spec()`. - Let's assign this `` class object to the `covid_serialint` object. @@ -611,13 +605,13 @@ covid_serialint$summary_stats$mean [1] 4.7 ``` -Notice that with this output we can replace one of the inputs for the `EpiNow2::dist_spec()` function: +Now, we have an epidemiological parameter we can reuse! We can replace the **summary statistics** numbers we plug into the `EpiNow2::dist_spec()` function: ```r generation_time <- EpiNow2::dist_spec( - mean = covid_serialint$summary_stats$mean, # we changed this line :) - sd = 2, + mean = covid_serialint$summary_stats$mean, # replaced! + sd = covid_serialint$summary_stats$sd, # replaced! max = 20, distribution = "gamma" ) diff --git a/fig/pkgs-hexlogos-2.png b/fig/pkgs-hexlogos-2.png new file mode 100644 index 00000000..8390cf89 Binary files /dev/null and b/fig/pkgs-hexlogos-2.png differ diff --git a/fig/quantify-transmissibility-rendered-unnamed-chunk-17-1.png b/fig/quantify-transmissibility-rendered-unnamed-chunk-17-1.png index c592df72..75039b76 100644 Binary files a/fig/quantify-transmissibility-rendered-unnamed-chunk-17-1.png and b/fig/quantify-transmissibility-rendered-unnamed-chunk-17-1.png differ diff --git a/fig/quantify-transmissibility-rendered-unnamed-chunk-18-1.png b/fig/quantify-transmissibility-rendered-unnamed-chunk-18-1.png index 900e00a1..ac7bd8f8 100644 Binary files a/fig/quantify-transmissibility-rendered-unnamed-chunk-18-1.png and b/fig/quantify-transmissibility-rendered-unnamed-chunk-18-1.png differ diff --git a/fig/quantify-transmissibility-rendered-unnamed-chunk-21-1.png b/fig/quantify-transmissibility-rendered-unnamed-chunk-21-1.png index bca10411..fa8bd61f 100644 Binary files a/fig/quantify-transmissibility-rendered-unnamed-chunk-21-1.png and b/fig/quantify-transmissibility-rendered-unnamed-chunk-21-1.png differ diff --git a/md5sum.txt b/md5sum.txt index 1bc668c4..0f3cd5a7 100644 --- a/md5sum.txt +++ b/md5sum.txt @@ -1,14 +1,14 @@ "file" "checksum" "built" "date" "CODE_OF_CONDUCT.md" "549f00b0992a7743c2bc16ea6ce3db57" "site/built/CODE_OF_CONDUCT.md" "2024-03-28" "LICENSE.md" "14377518ee654005a18cf28549eb30e3" "site/built/LICENSE.md" "2024-03-28" -"config.yaml" "8d9e4aaa445394c028620657cdf476cd" "site/built/config.yaml" "2024-04-02" +"config.yaml" "60bcd408d5c52c87dcde88475d3f1748" "site/built/config.yaml" "2024-04-08" "index.md" "32bc80d6f4816435cc0e01540cb2a513" "site/built/index.md" "2024-03-28" "links.md" "fe82d0a436c46f4b07b82684ed2cceaf" "site/built/links.md" "2024-03-28" -"episodes/delays-reuse.Rmd" "bb6ad865f2600bf267f833cb2c4b406d" "site/built/delays-reuse.md" "2024-04-02" -"episodes/quantify-transmissibility.Rmd" "f552d70266c0967dc2a4203599b3ad25" "site/built/quantify-transmissibility.md" "2024-04-02" +"episodes/delays-reuse.Rmd" "99c8549fdb699dea71a19f6022ddbeff" "site/built/delays-reuse.md" "2024-04-08" +"episodes/quantify-transmissibility.Rmd" "87679a9120c62fde0f6a647d80b72c46" "site/built/quantify-transmissibility.md" "2024-04-08" "episodes/delays-functions.Rmd" "d8cd5448a0977811709efa43d7d1505f" "site/built/delays-functions.md" "2024-04-02" "instructors/instructor-notes.md" "ca3834a1b0f9e70c4702aa7a367a6bb5" "site/built/instructor-notes.md" "2024-03-28" "learners/reference.md" "e030f09656b2233a643e7aa2727e4fab" "site/built/reference.md" "2024-03-28" -"learners/setup.md" "3720bb4d00b8f9bf1af6b0b582ff36c3" "site/built/setup.md" "2024-03-30" +"learners/setup.md" "64f432f4e2d4e1986341fd106f85b23d" "site/built/setup.md" "2024-04-08" "profiles/learner-profiles.md" "31b503c4b5bd1f0960ada730eca4a25e" "site/built/learner-profiles.md" "2024-03-28" "renv/profiles/lesson-requirements/renv.lock" "66cc4d60718393932c53d9e114e5af9f" "site/built/renv.lock" "2024-03-28" diff --git a/quantify-transmissibility.md b/quantify-transmissibility.md index 250e2a48..001f95ca 100644 --- a/quantify-transmissibility.md +++ b/quantify-transmissibility.md @@ -46,7 +46,9 @@ But in an ongoing outbreak, the population does not remain entirely susceptible ## Introduction -The transmission intensity of an outbreak is quantified using two key metrics: the reproduction number, which informs on the strength of the transmission by indicating how many new cases are expected from each existing case; and the [growth rate](../learners/reference.md#growth), which informs on the speed of the transmission by indicating how rapidly the outbreak is spreading or declining (doubling/halving time) within a population. To estimate these key metrics using case data we must account for delays between the date of infections and date of reported cases. In an outbreak situation, data are usually available on reported dates only, therefore we must use estimation methods to account for these delays when trying to understand changes in transmission over time. For more details on the distinction between speed and strength of transmission and implications for control, see [Dushoff & Park, 2021](https://royalsocietypublishing.org/doi/full/10.1098/rspb.2020.1556). +The transmission intensity of an outbreak is quantified using two key metrics: the reproduction number, which informs on the strength of the transmission by indicating how many new cases are expected from each existing case; and the [growth rate](../learners/reference.md#growth), which informs on the speed of the transmission by indicating how rapidly the outbreak is spreading or declining (doubling/halving time) within a population. For more details on the distinction between speed and strength of transmission and implications for control, review [Dushoff & Park, 2021](https://royalsocietypublishing.org/doi/full/10.1098/rspb.2020.1556). + +To estimate these key metrics using case data we must account for delays between the date of infections and date of reported cases. In an outbreak situation, data are usually available on reported dates only, therefore we must use estimation methods to account for these delays when trying to understand changes in transmission over time. In the next tutorials we will focus on how to use the functions in `{EpiNow2}` to estimate transmission metrics of case data. We will not cover the theoretical background of the models or inference framework, for details on these concepts see the [vignette](https://epiforecasts.io/EpiNow2/dev/articles/estimate_infections.html). @@ -137,7 +139,11 @@ cases <- incidence2::covidregionaldataUK %>% ### When to use incidence2? -We can also use the `{incidence2}` package to aggregate cases. However, if you ever need to aggregate you data in a different time **interval** (i.e., days, weeks or months) or per **group** categories, we recommend you to explore the `incidence2::incidence()` function: +We can also use the `{incidence2}` package to: + +- Aggregate cases (similar to the code above) but in different time *intervals* (i.e., days, weeks or months) or per *group* categories. Explore later the [`incidence2::incidence()` reference manual](https://www.reconverse.org/incidence2/reference/incidence.html). + +- Complete dates for all the range of dates per group category using `incidence2::complete_dates()`. Read further in its [function reference manual](https://www.reconverse.org/incidence2/reference/complete_dates.html). ```r @@ -151,13 +157,13 @@ incidence2::covidregionaldataUK %>% incidence2::incidence( date_index = "date", counts = "cases_new", - groups = "region", - interval = "week" - ) + count_values_to = "confirm", + date_names_to = "date" + ) %>% + # complete range of dates + incidence2::complete_dates() ``` -You can also estimate transmission metrics from {incidence2} objects using the `{i2extras}` package. Read further in the [Fitting curves](https://www.reconverse.org/i2extras/articles/fitting_epicurves.html) vignette! - ::::::::::::::::::::::::: There are case data available for 490 days, but in an outbreak situation it is likely we would only have access to the beginning of this data set. Therefore we assume we only have the first 90 days of this data. @@ -401,10 +407,10 @@ estimates <- epinow( ``` ```{.output} -WARN [2024-04-02 21:48:34] epinow: There were 3 divergent transitions after warmup. See +WARN [2024-04-08 16:12:17] epinow: There were 1 divergent transitions after warmup. See https://mc-stan.org/misc/warnings.html#divergent-transitions-after-warmup to find out why this is a problem and how to eliminate them. - -WARN [2024-04-02 21:48:34] epinow: Examine the pairs() plot to diagnose sampling problems +WARN [2024-04-08 16:12:17] epinow: Examine the pairs() plot to diagnose sampling problems - ``` @@ -437,24 +443,24 @@ summary(estimates) ``` ```{.output} - measure estimate - -1: New confirmed cases by infection date 7242 (4119 -- 12675) -2: Expected change in daily cases Likely decreasing -3: Effective reproduction no. 0.89 (0.58 -- 1.3) -4: Rate of growth -0.015 (-0.063 -- 0.04) -5: Doubling/halving time (days) -48 (17 -- -11) + measure estimate + +1: New confirmed cases by infection date 7126 (4016 -- 12455) +2: Expected change in daily cases Likely decreasing +3: Effective reproduction no. 0.88 (0.56 -- 1.3) +4: Rate of growth -0.016 (-0.066 -- 0.037) +5: Doubling/halving time (days) -45 (19 -- -11) ``` As these estimates are based on partial data, they have a wide uncertainty interval. -+ From the summary of our analysis we see that the expected change in daily cases is Likely decreasing with the estimated new confirmed cases 7242 (4119 -- 12675). ++ From the summary of our analysis we see that the expected change in daily cases is Likely decreasing with the estimated new confirmed cases 7126 (4016 -- 12455). -+ The effective reproduction number $R_t$ estimate (on the last date of the data) is 0.89 (0.58 -- 1.3). ++ The effective reproduction number $R_t$ estimate (on the last date of the data) is 0.88 (0.56 -- 1.3). -+ The exponential growth rate of case numbers is -0.015 (-0.063 -- 0.04). ++ The exponential growth rate of case numbers is -0.016 (-0.066 -- 0.037). -+ The doubling time (the time taken for case numbers to double) is -48 (17 -- -11). ++ The doubling time (the time taken for case numbers to double) is -45 (19 -- -11). ::::::::::::::::::::::::::::::::::::: callout ### `Expected change in daily cases` @@ -524,17 +530,17 @@ estimates_regional <- regional_epinow( ``` ```{.output} -INFO [2024-04-02 21:48:39] Producing following optional outputs: regions, summary, samples, plots, latest -INFO [2024-04-02 21:48:39] Reporting estimates using data up to: 2020-04-28 -INFO [2024-04-02 21:48:39] No target directory specified so returning output -INFO [2024-04-02 21:48:39] Producing estimates for: East Midlands, East of England, England, London, North East, North West, Northern Ireland, Scotland, South East, South West, Wales, West Midlands, Yorkshire and The Humber -INFO [2024-04-02 21:48:39] Regions excluded: none -INFO [2024-04-02 22:33:54] Completed regional estimates -INFO [2024-04-02 22:33:54] Regions with estimates: 13 -INFO [2024-04-02 22:33:54] Regions with runtime errors: 0 -INFO [2024-04-02 22:33:54] Producing summary -INFO [2024-04-02 22:33:54] No summary directory specified so returning summary output -INFO [2024-04-02 22:33:54] No target directory specified so returning timings +INFO [2024-04-08 16:12:22] Producing following optional outputs: regions, summary, samples, plots, latest +INFO [2024-04-08 16:12:22] Reporting estimates using data up to: 2020-04-28 +INFO [2024-04-08 16:12:22] No target directory specified so returning output +INFO [2024-04-08 16:12:22] Producing estimates for: East Midlands, East of England, England, London, North East, North West, Northern Ireland, Scotland, South East, South West, Wales, West Midlands, Yorkshire and The Humber +INFO [2024-04-08 16:12:22] Regions excluded: none +INFO [2024-04-08 16:56:37] Completed regional estimates +INFO [2024-04-08 16:56:37] Regions with estimates: 13 +INFO [2024-04-08 16:56:37] Regions with runtime errors: 0 +INFO [2024-04-08 16:56:37] Producing summary +INFO [2024-04-08 16:56:37] No summary directory specified so returning summary output +INFO [2024-04-08 16:56:38] No target directory specified so returning timings ``` ```r @@ -544,49 +550,49 @@ estimates_regional$summary$summarised_results$table ```{.output} Region New confirmed cases by infection date - 1: East Midlands 342 (207 -- 545) - 2: East of England 548 (332 -- 865) - 3: England 3540 (2244 -- 5532) - 4: London 295 (187 -- 464) - 5: North East 253 (149 -- 431) - 6: North West 558 (328 -- 894) - 7: Northern Ireland 43 (22 -- 79) - 8: Scotland 287 (167 -- 527) - 9: South East 593 (350 -- 996) -10: South West 421 (298 -- 597) -11: Wales 95 (64 -- 136) -12: West Midlands 271 (144 -- 489) -13: Yorkshire and The Humber 480 (290 -- 789) + 1: East Midlands 345 (213 -- 548) + 2: East of England 536 (335 -- 844) + 3: England 3565 (2193 -- 5710) + 4: London 290 (189 -- 445) + 5: North East 252 (145 -- 425) + 6: North West 552 (339 -- 862) + 7: Northern Ireland 44 (23 -- 88) + 8: Scotland 293 (160 -- 514) + 9: South East 598 (363 -- 1002) +10: South West 417 (293 -- 613) +11: Wales 95 (64 -- 143) +12: West Midlands 270 (145 -- 483) +13: Yorkshire and The Humber 479 (279 -- 775) Expected change in daily cases Effective reproduction no. - 1: Likely increasing 1.2 (0.83 -- 1.6) + 1: Likely increasing 1.2 (0.84 -- 1.6) 2: Likely increasing 1.2 (0.83 -- 1.6) - 3: Likely decreasing 0.92 (0.64 -- 1.2) - 4: Likely decreasing 0.79 (0.55 -- 1.1) - 5: Likely decreasing 0.91 (0.62 -- 1.3) - 6: Likely decreasing 0.87 (0.57 -- 1.2) - 7: Likely decreasing 0.63 (0.38 -- 1) - 8: Likely decreasing 0.91 (0.61 -- 1.4) - 9: Stable 0.99 (0.66 -- 1.4) + 3: Likely decreasing 0.92 (0.63 -- 1.3) + 4: Likely decreasing 0.78 (0.55 -- 1.1) + 5: Likely decreasing 0.91 (0.6 -- 1.3) + 6: Likely decreasing 0.86 (0.59 -- 1.2) + 7: Likely decreasing 0.65 (0.39 -- 1.1) + 8: Likely decreasing 0.92 (0.6 -- 1.4) + 9: Stable 1 (0.69 -- 1.4) 10: Increasing 1.4 (1.1 -- 1.8) -11: Decreasing 0.57 (0.42 -- 0.75) -12: Likely decreasing 0.71 (0.42 -- 1.1) -13: Stable 1 (0.7 -- 1.4) - Rate of growth Doubling/halving time (days) - - 1: 0.023 (-0.023 -- 0.067) 30 (10 -- -30) - 2: 0.024 (-0.023 -- 0.067) 28 (10 -- -31) - 3: -0.011 (-0.052 -- 0.03) -62 (23 -- -13) - 4: -0.029 (-0.068 -- 0.012) -24 (58 -- -10) - 5: -0.012 (-0.056 -- 0.037) -60 (19 -- -12) - 6: -0.018 (-0.063 -- 0.024) -38 (29 -- -11) - 7: -0.053 (-0.1 -- 0.0028) -13 (240 -- -6.9) - 8: -0.012 (-0.057 -- 0.044) -58 (16 -- -12) - 9: -0.0012 (-0.049 -- 0.049) -580 (14 -- -14) -10: 0.047 (0.014 -- 0.084) 15 (8.2 -- 48) -11: -0.065 (-0.093 -- -0.035) -11 (-20 -- -7.4) -12: -0.041 (-0.092 -- 0.012) -17 (59 -- -7.6) -13: 0.0037 (-0.043 -- 0.051) 190 (14 -- -16) +11: Decreasing 0.57 (0.41 -- 0.78) +12: Likely decreasing 0.71 (0.43 -- 1.1) +13: Stable 1 (0.69 -- 1.4) + Rate of growth Doubling/halving time (days) + + 1: 0.024 (-0.022 -- 0.069) 29 (10 -- -32) + 2: 0.022 (-0.023 -- 0.066) 31 (10 -- -30) + 3: -0.011 (-0.053 -- 0.034) -64 (21 -- -13) + 4: -0.031 (-0.067 -- 0.0087) -23 (80 -- -10) + 5: -0.012 (-0.059 -- 0.035) -56 (20 -- -12) + 6: -0.019 (-0.06 -- 0.023) -37 (30 -- -12) + 7: -0.051 (-0.1 -- 0.01) -14 (68 -- -7) + 8: -0.01 (-0.06 -- 0.044) -69 (16 -- -12) + 9: -0.00057 (-0.045 -- 0.049) -1200 (14 -- -15) +10: 0.046 (0.013 -- 0.086) 15 (8.1 -- 53) +11: -0.065 (-0.094 -- -0.031) -11 (-22 -- -7.3) +12: -0.042 (-0.091 -- 0.011) -17 (65 -- -7.6) +13: 0.0028 (-0.044 -- 0.051) 250 (14 -- -16) ``` ```r @@ -595,6 +601,13 @@ estimates_regional$summary$plots$R +:::::::::::::::::::::::::: testimonial + +### the i2extras package + +`{i2extras}` package also estimate transmission metrics like growth rate and doubling/halving time at different time intervals (i.e., days, weeks, or months). `{i2extras}` require `{incidence2}` objects as inputs. Read further in its [Fitting curves](https://www.reconverse.org/i2extras/articles/fitting_epicurves.html) vignette. + +:::::::::::::::::::::::::: ## Summary diff --git a/setup.md b/setup.md index ba8a3908..8d3613f0 100644 --- a/setup.md +++ b/setup.md @@ -4,7 +4,7 @@ title: Setup ## Motivation -**Outbreaks** appear with different diseases and in different contexts, but what all of them have in common is the key public health **questions** ([Cori et al. 2017](https://royalsocietypublishing.org/doi/10.1098/rstb.2016.0371#d1e605)). We can relate these key public health questions to outbreak data analysis **tasks**. +**Outbreaks** appear with different diseases and in different contexts, but what all of them have in common is the key public health questions ([Cori et al. 2017](https://royalsocietypublishing.org/doi/10.1098/rstb.2016.0371#d1e605)). We can relate these key public health questions to outbreak data analysis tasks. Epiverse-TRACE aims to provide a software ecosystem for [**outbreak analytics**](reference.md#outbreakanalytics) with integrated, generalisable and scalable community-driven software. We support the development of R packages, make the existing ones interoperable for the user experience, and stimulate a community of practice. @@ -35,7 +35,7 @@ Also check out the [glossary](../reference.md) for any terms you may be unfamili Our strategy is to gradually incorporate specialised **R packages** into our traditional analysis pipeline. These packages should fill the gaps in these epidemiology-specific tasks in response to outbreaks. -![In **R**, the fundamental unit of shareable code is the **package**. A package bundles together code, data, documentation, and tests and is easy to share with others ([Wickham and Bryan, 2023](https://r-pkgs.org/introduction.html))](episodes/fig/pkgs-hexlogos.png) +![In **R**, the fundamental unit of shareable code is the **package**. A package bundles together code, data, documentation, and tests and is easy to share with others ([Wickham and Bryan, 2023](https://r-pkgs.org/introduction.html))](episodes/fig/pkgs-hexlogos-2.png) :::::::::::::::::::::::::::: prereq