From f924e21252f616a52ff2173e79e3da168e326aeb Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 01/13] Revert "add publication date and acknowledgements to epi-community-contrib post" This reverts commit 1fda711f77a3b0a63c65b73718cc00d677aac01f. --- posts/epi-community-contrib/index.qmd | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 48d3eae1..8dd12adc 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -3,7 +3,7 @@ title: "Epiverse community engagement and software sustainability for research s author: - name: "Joshua W. Lambert" orcid: "0000-0001-5218-3046" -date: "2025-08-25" +date: "2025-07-22" categories: [open-source, R, R package, epidemiology, community, Epiverse, DOI] bibliography: index.bib format: @@ -140,8 +140,4 @@ Enhancing the accessibility of software for users and developers by improving it All of the changes discussed in this blog post can be found in the [{ringbp} news](https://epiforecasts.io/ringbp/news/index.html). For details of developments see the [pull request history of {ringbp} on GitHub](https://github.com/epiforecasts/ringbp/pulls?q=is%3Apr+is%3Aclosed). -## Acknowledgements - -Thanks to Seb Funk and Carl Pearson for helpful feedback when drafting this post and for their collaboration on the {ringbp} project. - [^1]: [Defined by Cambridge Dictionary](https://dictionary.cambridge.org/dictionary/english/abandonware) as: "software that is no longer produced or supported by the company that originally made it". From 061402656e7a2f890a08329b553d1102acdf9505 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 02/13] Revert "add concluding point on enabling OSS sustainability in epi-community-contrib post" This reverts commit 13f5eedbcea37ac34a3379716cfd02645936fcf1. --- posts/epi-community-contrib/index.qmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 8dd12adc..f3b86319 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -136,8 +136,6 @@ The {ringbp} R package implements a simple but informative model for infectious Epiverse-TRACE has the opportunity to not only develop new tooling for pandemic preparedness and response, but to contribute to the ecosystem of open-source software in infectious disease epidemiology. We hope that by covering the collaborative developments of {ringbp}, it can illustrate the benefits of bringing software up to date with best practices, and make tools available, accessible and robust when a new epidemic or pandemic occurs, in turn hopefully removing the need for redeveloping similar software in the future. -Enhancing the accessibility of software for users and developers by improving its documentation and user interface will hopefully provide a gateway for more external contributors to engage with the project. In the public health landscape of temporal surges in capacity and priorities, better enabling community contributions to open-source software should aid software sustainability. - All of the changes discussed in this blog post can be found in the [{ringbp} news](https://epiforecasts.io/ringbp/news/index.html). For details of developments see the [pull request history of {ringbp} on GitHub](https://github.com/epiforecasts/ringbp/pulls?q=is%3Apr+is%3Aclosed). [^1]: [Defined by Cambridge Dictionary](https://dictionary.cambridge.org/dictionary/english/abandonware) as: "software that is no longer produced or supported by the company that originally made it". From 1acd643dceaf459ce44121411112756aa720cf96 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 03/13] Revert "lint epi-community-contrib post" This reverts commit 0a7683c86e5e726d141133996a4f2db70b6593e0. --- posts/epi-community-contrib/index.qmd | 1 - 1 file changed, 1 deletion(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index f3b86319..046fe905 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -36,7 +36,6 @@ The user experience (API) of the package has been refactored. The main simulatio :::: {.columns} ::: {.column width="47.5%"} - ### Old ``` r From 362a31a439a0ab6ab5cccb67e04cb2410c027275 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 04/13] Revert "reword lack of developer resources sentence" This reverts commit 64571a834640d5bf7a199554d2aa7e2891eba820. --- posts/epi-community-contrib/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 046fe905..b2fc4a64 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -15,7 +15,7 @@ Software that is developed for research or by researchers can be difficult to ma These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. The initiative also tries to improve community collaboration and contribution friendliness of open-source software. -This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help improve an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has lacked developer resources without pandemic-related priorities. +This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help improve an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. ## The R package From 7909237909695c0fe67fb44ef61520957c854651 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 05/13] Revert "reword post overview" This reverts commit 91271aacb09b390a94af716efd48f1a3a9193b95. --- posts/epi-community-contrib/index.qmd | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index b2fc4a64..21964d6a 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -15,7 +15,7 @@ Software that is developed for research or by researchers can be difficult to ma These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. The initiative also tries to improve community collaboration and contribution friendliness of open-source software. -This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help improve an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. +This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. ## The R package @@ -36,7 +36,7 @@ The user experience (API) of the package has been refactored. The main simulatio :::: {.columns} ::: {.column width="47.5%"} -### Old +**Old** ``` r scenario_sim( @@ -55,7 +55,6 @@ scenario_sim( prop.ascertain = 0 ) ``` - ::: ::: {.column width="5%"} @@ -64,7 +63,7 @@ scenario_sim( ::: {.column width="47.5%"} -### New +**New** ``` r scenario_sim( @@ -91,7 +90,6 @@ scenario_sim( ) ) ``` - ::: :::: From f6c59a2c408c9990d25b4de3c7f11b0eb14b7650 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 06/13] Revert "add old and new sceanrio_sim API to epi-community-contrib post" This reverts commit 3e52ee280703b6a0cb387ee7820dc2d4f290d149. --- posts/epi-community-contrib/index.qmd | 61 --------------------------- 1 file changed, 61 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 21964d6a..907c8aee 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -33,67 +33,6 @@ In the recent months Epiverse has collaborated with {ringbp} developers Seb Funk The user experience (API) of the package has been refactored. The main simulation function `scenario_sim()` remains, but its arguments have been modularised to better group model parameters and control arguments. This also makes the package easier to develop further without necessarily introducing many breaking changes and prevents the number of top-level function arguments from expanding. -:::: {.columns} - -::: {.column width="47.5%"} -**Old** - -``` r -scenario_sim( - n.sim = 5, - num.initial.cases = 5, - cap_max_days = 365, - cap_cases = 2000, - r0isolated = 0, - r0community = 2.5, - disp.iso = 1, - disp.com = 0.16, - k = 0.7, - delay_shape = 2.5, - delay_scale = 5, - prop.asym = 0, - prop.ascertain = 0 -) -``` -::: - -::: {.column width="5%"} - -::: - -::: {.column width="47.5%"} - -**New** - -``` r -scenario_sim( - n = 5, - initial_cases = 5, - offspring = offspring_opts( - community = \(n) rnbinom(n = n, mu = 2.5, size = 0.16), - isolated = \(n) rnbinom(n = n, mu = 0, size = 1), - asymptomatic = \(n) rnbinom(n = n, mu = 2.5, size = 0.16) - ), - delays = delay_opts( - incubation_period = \(n) rweibull(n = n, shape = 2.32, scale = 6.49), - onset_to_isolation = \(n) rweibull(n = n, shape = 2.5, scale = 5) - ), - event_probs = event_prob_opts( - asymptomatic = 0, - presymptomatic_transmission = 0.3, - symptomatic_ascertained = 0 - ), - interventions = intervention_opts(quarantine = TRUE), - sim = sim_opts( - cap_max_days = 365, - cap_cases = 2000 - ) -) -``` -::: - -:::: - The new API gives the user more control over the model's parameterisation. The incubation period is now specified by the user instead of being set to an estimate for COVID-19. The way offspring and delay distribution functions are specified also means that any distributional or non-parametric form can be supplied, relaxing the assumption that the onset-to-isolation has to be a Weibull distribution. Users can now specify the proportion of presymptomatic transmission rather than having to understand the skew normal parameterisation used by the simulation model, making it easier to get started with the package for new users. From c23faf09795a9c9d53130fa83e0408d010a81a31 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 07/13] Revert "add usability to problem section in epi-community-contrib post" This reverts commit ad89a8932f1ed98c22a324d245f33354bb6ccff0. --- posts/epi-community-contrib/index.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 907c8aee..3fc2ac0d 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -13,7 +13,7 @@ format: Software that is developed for research or by researchers can be difficult to maintain given the incentive and funding structures in academia. This remains true for epidemiology, with a large volume of software written during the COVID-19 pandemic, much of which is now abandonware[^1]. This does not mean that the software developed to understand the COVID-19 pandemic was bad or does not have utility in understanding future epidemics and pandemics, but just that the capacity to maintain and further develop these tools is not available now the pandemic is no [longer considered an acute public health emergency](https://www.who.int/news/item/05-05-2023-statement-on-the-fifteenth-meeting-of-the-international-health-regulations-(2005)-emergency-committee-regarding-the-coronavirus-disease-(covid-19)-pandemic). -These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. The initiative also tries to improve community collaboration and contribution friendliness of open-source software. +These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. The initiative also tries to improve community collaboration and contribution friendliness of open-source software. This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. @@ -23,7 +23,7 @@ The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). ## The problem -It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Usability, documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were hard-coded, not providing users the full flexibility that the model could allow. +It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were hard-coded, not providing users the full flexibility that the model could allow. ## Epiverse contribution From df8559a9e5573aa00e7282738fb1b868a3c5f48e Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 08/13] Revert "add info on Epiverse community contribution goal" This reverts commit 72e97302c0fc9fe7227005ebcf9bb176dcebb55e. --- posts/epi-community-contrib/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 3fc2ac0d..4d517824 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -13,7 +13,7 @@ format: Software that is developed for research or by researchers can be difficult to maintain given the incentive and funding structures in academia. This remains true for epidemiology, with a large volume of software written during the COVID-19 pandemic, much of which is now abandonware[^1]. This does not mean that the software developed to understand the COVID-19 pandemic was bad or does not have utility in understanding future epidemics and pandemics, but just that the capacity to maintain and further develop these tools is not available now the pandemic is no [longer considered an acute public health emergency](https://www.who.int/news/item/05-05-2023-statement-on-the-fifteenth-meeting-of-the-international-health-regulations-(2005)-emergency-committee-regarding-the-coronavirus-disease-(covid-19)-pandemic). -These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. The initiative also tries to improve community collaboration and contribution friendliness of open-source software. +These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. From 08d2b46c0ad5d9ade9b6ef11f5328bf36104265d Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 09/13] Revert "add Epiverse involvement to collaborators mentioned" This reverts commit ef7b34930b2bf4c54447e7343fc73726539b1956. --- posts/epi-community-contrib/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 4d517824..c6cff383 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -27,7 +27,7 @@ It is understandable that because {ringbp} was written in haste to produce insig ## Epiverse contribution -In the recent months Epiverse has collaborated with {ringbp} developers Seb Funk (also a member of Epiverse) and Carl Pearson (external collaborator), based at the London School of Hygiene and Tropical Medicine and University of North Carolina, respectively, to try and improve the R package, both internally and from the user-experience. The following sections will give brief summaries of some of the collaborative developments. +In the recent months Epiverse has collaborated with {ringbp} developers Seb Funk and Carl Pearson, based at the London School of Hygiene and Tropical Medicine and University of North Carolina, respectively, to try and improve the R package, both internally and from the user-experience. The following sections will give brief summaries of some of the collaborative developments. ### User interface From 6a6b6b4fb8b97f7fafd98b42f4fa9c9d9ac3949f Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 10/13] Revert "add reference to other ringbp spin offs" This reverts commit d590c387f08c9f1731313b23de4d209f3795d83a. --- posts/epi-community-contrib/index.bib | 29 --------------------------- posts/epi-community-contrib/index.qmd | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/posts/epi-community-contrib/index.bib b/posts/epi-community-contrib/index.bib index 1c684eb9..ed305959 100644 --- a/posts/epi-community-contrib/index.bib +++ b/posts/epi-community-contrib/index.bib @@ -1,32 +1,3 @@ -@misc{davisImperfectToolContact2020, - title = {An Imperfect Tool: Contact Tracing Could Provide Valuable Reductions in {{COVID-19}} Transmission If Good Adherence Can Be Achieved and Maintained}, - shorttitle = {An Imperfect Tool}, - author = {Davis, Emma L. and Lucas, Tim C. D. and Borlase, Anna and Pollington, Timothy M. and Abbott, Sam and Ayabina, Diepreye and Crellen, Thomas and Hellewell, Joel and Pi, Li and {CMMID COVID-19 working group} and Medley, Graham F. and Hollingsworth, T. D{\'e}irdre and Klepac, Petra}, - year = {2020}, - month = jun, - doi = {10.1101/2020.06.09.20124008}, - urldate = {2025-08-13}, - abstract = {Abstract Emerging evidence suggests that contact tracing has had limited success in the UK in reducing the R number across the COVID-19 pandemic. We investigate potential pitfalls and areas for improvement by extending an existing branching process contact tracing model, adding diagnostic testing and refining parameter estimates. Our results demonstrate that reporting and adherence are the most important predictors of programme impact but tracing coverage and speed plus diagnostic sensitivity also play an important role. We conclude that well-implemented contact tracing could bring small but potentially important benefits to controlling and preventing outbreaks, providing up to a 15\% reduction in R , and reaffirm that contact tracing is not currently appropriate as the sole control measure.}, - langid = {english}, - file = {/Users/lshjl15/Zotero/storage/AHPVUDTS/Davis et al. - 2020 - An imperfect tool contact tracing could provide v.pdf} -} - -@article{firthUsingRealworldNetwork2020, - title = {Using a Real-World Network to Model Localized {{COVID-19}} Control Strategies}, - author = {Firth, Josh A. and Hellewell, Joel and Klepac, Petra and Kissler, Stephen and {CMMID COVID-19 Working Group} and Jit, Mark and Atkins, Katherine E. and Clifford, Samuel and {Villabona-Arenas}, C. Julian and Meakin, Sophie R. and Diamond, Charlie and Bosse, Nikos I. and Munday, James D. and Prem, Kiesha and Foss, Anna M. and Nightingale, Emily S. and Zandvoort, Kevin Van and Davies, Nicholas G. and Gibbs, Hamish P. and Medley, Graham and Gimma, Amy and Flasche, Stefan and Simons, David and Auzenbergs, Megan and Russell, Timothy W. and Quilty, Billy J. and Rees, Eleanor M. and Leclerc, Quentin J. and Edmunds, W. John and Funk, Sebastian and Houben, Rein M. G. J. and Knight, Gwenan M. and Abbott, Sam and Sun, Fiona Yueqian and Lowe, Rachel and Tully, Damien C. and Procter, Simon R. and Jarvis, Christopher I. and Endo, Akira and O'Reilly, Kathleen and Emery, Jon C. and Jombart, Thibaut and Rosello, Alicia and Deol, Arminder K. and Quaife, Matthew and Hu{\'e}, St{\'e}phane and Liu, Yang and Eggo, Rosalind M. and Pearson, Carl A. B. and Kucharski, Adam J. and Spurgin, Lewis G.}, - year = {2020}, - month = oct, - journal = {Nature Medicine}, - volume = {26}, - number = {10}, - pages = {1616--1622}, - issn = {1078-8956, 1546-170X}, - doi = {10.1038/s41591-020-1036-8}, - urldate = {2025-08-13}, - langid = {english}, - file = {/Users/lshjl15/Zotero/storage/EKVXH6KU/Firth et al. - 2020 - Using a real-world network to model localized COVI.pdf} -} - @article{hellewellFeasibilityControllingCOVID192020, title = {Feasibility of Controlling {{COVID-19}} Outbreaks by Isolation of Cases and Contacts}, author = {Hellewell, Joel and Abbott, Sam and Gimma, Amy and Bosse, Nikos I and Jarvis, Christopher I and Russell, Timothy W and Munday, James D and Kucharski, Adam J and Edmunds, W John and Funk, Sebastian and Eggo, Rosalind M and Sun, Fiona and Flasche, Stefan and Quilty, Billy J and Davies, Nicholas and Liu, Yang and Clifford, Samuel and Klepac, Petra and Jit, Mark and Diamond, Charlie and Gibbs, Hamish and Van Zandvoort, Kevin}, diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index c6cff383..4f838bf7 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -19,7 +19,7 @@ This blog post highlights some recent work by Epiverse software engineers to col ## The R package -The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). The package has two pieces of functionality: 1) to simulate an infectious disease outbreak using a branching process model with non-pharmaceutical interventions; and 2) to calculate the proportion of simulated outbreaks that are contained (i.e. do not cause a large sustained human-to-human epidemic). The utility of the package's general model framework has been shown by serving as a template for other epidemiological research such as [post-exposure prophylaxis](https://sophiemeakin.github.io/pepbp/), [network effects on control](https://github.com/lgs85/covidhm) [@firthUsingRealworldNetwork2020] and the [impact of self-reporting and isolation adherence](https://github.com/timcdlucas/ringbp) [@davisImperfectToolContact2020]. +The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). The package has two pieces of functionality: 1) to simulate an infectious disease outbreak using a branching process model with non-pharmaceutical interventions; and 2) to calculate the proportion of simulated outbreaks that are contained (i.e. do not cause a large sustained human-to-human epidemic). The utility of the package's general model framework has been shown by serving as a template for other epidemiological research such as [post-exposure prophylaxis](https://sophiemeakin.github.io/pepbp/). ## The problem From 5f656a01625b43fd0a2e0ecb2c50a731816f816c Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 11/13] Revert "Improve wording and fix typos" This reverts commit 8924ef840a62376d823b55bb64957779c27fad76. --- posts/epi-community-contrib/index.qmd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 4f838bf7..7be85bc9 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -15,7 +15,7 @@ Software that is developed for research or by researchers can be difficult to ma These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. -This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) to assess the effectiveness of isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. It built on code written for the 2014-2016 West Africa Ebola outbreak to provide insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016]. These applications and the general nature of the questions the package addresses suggest that it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. +This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) and built on code written for the 2014-2016 West Africa Ebola outbreak. Code that has provided insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016] and isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. Thus it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. ## The R package @@ -23,7 +23,7 @@ The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). ## The problem -It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were hard-coded, not providing users the full flexibility that the model could allow. +It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were fixed internally, not providing users the full flexibility that the model could allow. ## Epiverse contribution @@ -33,7 +33,7 @@ In the recent months Epiverse has collaborated with {ringbp} developers Seb Funk The user experience (API) of the package has been refactored. The main simulation function `scenario_sim()` remains, but its arguments have been modularised to better group model parameters and control arguments. This also makes the package easier to develop further without necessarily introducing many breaking changes and prevents the number of top-level function arguments from expanding. -The new API gives the user more control over the model's parameterisation. The incubation period is now specified by the user instead of being set to an estimate for COVID-19. The way offspring and delay distribution functions are specified also means that any distributional or non-parametric form can be supplied, relaxing the assumption that the onset-to-isolation has to be a Weibull distribution. +The new API gives the user more control over the model's parameterisation. The incubation period is now specified by the user instead of being fixed to an estimate for COVID-19. The way offspring and delay distribution functions are specified also means that any distributional or non-parameteric form can be supplied, relaxing the assumption that the onset-to-isolation has to be a Weibull distribution. Users can now specify the proportion of presymptomatic transmission rather than having to understand the skew normal parameterisation used by the simulation model, making it easier to get started with the package for new users. @@ -56,7 +56,7 @@ Vignettes are useful long-form package documentation. Thus far we've added one v ### Bug fixes -Perhaps more important that any of the software best practices and user interface is the correctness of the code. In our developments we've uncovered a few bugs in the previous version of {ringbp}. Errors in the timing of quarantining infected individuals, sampling from the onset-to-isolation distribution, and calculating the generation time from the incubation period have all been identified and fixed. +Perhaps more important that any of the software best practices and user interface is the correctness of the code. In our developments we've uncovered a few bugs in the previous version of {ringbp}. The timing of quarantining infected individuals, sampling from the onset-to-isolation distribution, and calculating the generation time from the incubation period have all been identified and fixed. ### Testing @@ -64,11 +64,11 @@ Perhaps more important that any of the software best practices and user interfac ### Miscellaneous -There are various other changes in {ringbp} from our work. Examples include: input checking, not specifying erroneous function defaults, updating the package website, and functions that return `data.table` objects no longer [returning silently](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-faq.html#sec:why-do-i-have-to-type-dt-sometimes-twice-after-using-to-print-the-result-to-console). Mentioned in the introduction, model performance has been incrementally improved, but we've not focused on this aspect, and the package will benefit from time spent focusing on this in the future; especially if the set and complexity of non-pharmaceutical interventions in the model expands. +There are various other changes in {ringbp} from our work. Examples include: input checking, not specifying erroneous function defaults, updating the package website, and functions that return `data.table` objects no longer [return silently](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-faq.html#sec:why-do-i-have-to-type-dt-sometimes-twice-after-using-to-print-the-result-to-console). Mentioned in the introduction, model performance has been incrementally improved, but we've not focused on this aspect, and the package will benefit from time spent focusing on this in the future; especially if the set and complexity of non-pharmaceutical interventions in the model expands. ## Conclusion -The {ringbp} R package implements a simple but informative model for infectious disease transmission and interventions. When originally written it included many well-developed aspects, but the time constraints of real-time outbreak response meant several improvements were possible. +The {ringbp} R package implements a simple but informative model for infectious disease transmission and interventions. When written it included many well-developed aspects, but the time constraints of real-time outbreak response meant several improvements were possible. Epiverse-TRACE has the opportunity to not only develop new tooling for pandemic preparedness and response, but to contribute to the ecosystem of open-source software in infectious disease epidemiology. We hope that by covering the collaborative developments of {ringbp}, it can illustrate the benefits of bringing software up to date with best practices, and make tools available, accessible and robust when a new epidemic or pandemic occurs, in turn hopefully removing the need for redeveloping similar software in the future. From d652bd7df8175e5c1cb5206f5cab99cdac4af259 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 12/13] Revert "linting epi-community-contrib blog post" This reverts commit 40d8e7c29066ccebb1f7a5cbe5204553722c219e. --- posts/epi-community-contrib/index.qmd | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd index 7be85bc9..ba0ddc11 100644 --- a/posts/epi-community-contrib/index.qmd +++ b/posts/epi-community-contrib/index.qmd @@ -11,9 +11,9 @@ format: toc: true --- -Software that is developed for research or by researchers can be difficult to maintain given the incentive and funding structures in academia. This remains true for epidemiology, with a large volume of software written during the COVID-19 pandemic, much of which is now abandonware[^1]. This does not mean that the software developed to understand the COVID-19 pandemic was bad or does not have utility in understanding future epidemics and pandemics, but just that the capacity to maintain and further develop these tools is not available now the pandemic is no [longer considered an acute public health emergency](https://www.who.int/news/item/05-05-2023-statement-on-the-fifteenth-meeting-of-the-international-health-regulations-(2005)-emergency-committee-regarding-the-coronavirus-disease-(covid-19)-pandemic). +Software that is developed for research or by researchers can be difficult to maintain given the incentive and funding structures in academia. This remains true for epidemiology, with a large volume of software written during the COVID-19 pandemic, much of which is now abandonware[^1]. This does not mean that the software developed to understand the COVID-19 pandemic was bad or does not have utility in understanding future epidemics and pandemics, but just that the capacity to maintain and further develop these tools is not available now the pandemic is no [longer considered an acute public health emergency](https://www.who.int/news/item/05-05-2023-statement-on-the-fifteenth-meeting-of-the-international-health-regulations-(2005)-emergency-committee-regarding-the-coronavirus-disease-(covid-19)-pandemic). -These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. +These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) and built on code written for the 2014-2016 West Africa Ebola outbreak. Code that has provided insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016] and isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. Thus it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. @@ -23,7 +23,7 @@ The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). ## The problem -It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were fixed internally, not providing users the full flexibility that the model could allow. +It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were fixed internally, not providing users the full flexibility that the model could allow. ## Epiverse contribution @@ -35,7 +35,7 @@ The user experience (API) of the package has been refactored. The main simulatio The new API gives the user more control over the model's parameterisation. The incubation period is now specified by the user instead of being fixed to an estimate for COVID-19. The way offspring and delay distribution functions are specified also means that any distributional or non-parameteric form can be supplied, relaxing the assumption that the onset-to-isolation has to be a Weibull distribution. -Users can now specify the proportion of presymptomatic transmission rather than having to understand the skew normal parameterisation used by the simulation model, making it easier to get started with the package for new users. +Users can now specify the proportion of presymptomatic transmission rather than having to understand the skew normal parameterisation used by the simulation model, making it easier to get started with the package for new users. Lastly on user-facing changes, the naming and style of function arguments has been standardised for consistent use of [snakecase](https://en.wikipedia.org/wiki/Snake_case) style and abbreviations. @@ -52,7 +52,7 @@ Exported functions now have informative examples (`@examples`) to showcase how t The [{roxyglobals}](https://github.com/anthonynorth/roxyglobals) package has been added to automate the management of global variables with the use of the `@autoglobal` tag. -Vignettes are useful long-form package documentation. Thus far we've added one vignette to the package and plan to add more where relevant. +Vignettes are useful long-form package documentation. Thus far we've added one vignette to the package and plan to add more where relevant. ### Bug fixes @@ -68,10 +68,10 @@ There are various other changes in {ringbp} from our work. Examples include: inp ## Conclusion -The {ringbp} R package implements a simple but informative model for infectious disease transmission and interventions. When written it included many well-developed aspects, but the time constraints of real-time outbreak response meant several improvements were possible. +The {ringbp} R package implements a simple but informative model for infectious disease transmission and interventions. When written it included many well-developed aspects, but the time constraints of real-time outbreak response meant several improvements were possible. -Epiverse-TRACE has the opportunity to not only develop new tooling for pandemic preparedness and response, but to contribute to the ecosystem of open-source software in infectious disease epidemiology. We hope that by covering the collaborative developments of {ringbp}, it can illustrate the benefits of bringing software up to date with best practices, and make tools available, accessible and robust when a new epidemic or pandemic occurs, in turn hopefully removing the need for redeveloping similar software in the future. +Epiverse-TRACE has the opportunity to not only develop new tooling for pandemic preparedness and response, but to contribute to the ecosystem of open-source software in infectious disease epidemiology. We hope that by covering the collaborative developments of {ringbp}, it can illustrate the benefits of bringing software up to date with best practices, and make tools available, accessible and robust when a new epidemic or pandemic occurs, in turn hopefully removing the need for redeveloping similar software in the future. -All of the changes discussed in this blog post can be found in the [{ringbp} news](https://epiforecasts.io/ringbp/news/index.html). For details of developments see the [pull request history of {ringbp} on GitHub](https://github.com/epiforecasts/ringbp/pulls?q=is%3Apr+is%3Aclosed). +All of the changes discussed in this blog post can be found in the [{ringbp} news](https://epiforecasts.io/ringbp/news/index.html). For details of developments see the [pull request history of {ringbp} on GitHub](https://github.com/epiforecasts/ringbp/pulls?q=is%3Apr+is%3Aclosed). [^1]: [Defined by Cambridge Dictionary](https://dictionary.cambridge.org/dictionary/english/abandonware) as: "software that is no longer produced or supported by the company that originally made it". From 67eea278694d7c6bf7024a62e7712818bf2b1fc2 Mon Sep 17 00:00:00 2001 From: chartgerink Date: Mon, 25 Aug 2025 15:15:46 +0200 Subject: [PATCH 13/13] Revert "add epi-community-contrib blog post" This reverts commit ce7134ca211f0b0277976156536aac1767aa2af2. --- posts/epi-community-contrib/index.bib | 48 ----------------- posts/epi-community-contrib/index.qmd | 77 --------------------------- 2 files changed, 125 deletions(-) delete mode 100644 posts/epi-community-contrib/index.bib delete mode 100644 posts/epi-community-contrib/index.qmd diff --git a/posts/epi-community-contrib/index.bib b/posts/epi-community-contrib/index.bib deleted file mode 100644 index ed305959..00000000 --- a/posts/epi-community-contrib/index.bib +++ /dev/null @@ -1,48 +0,0 @@ -@article{hellewellFeasibilityControllingCOVID192020, - title = {Feasibility of Controlling {{COVID-19}} Outbreaks by Isolation of Cases and Contacts}, - author = {Hellewell, Joel and Abbott, Sam and Gimma, Amy and Bosse, Nikos I and Jarvis, Christopher I and Russell, Timothy W and Munday, James D and Kucharski, Adam J and Edmunds, W John and Funk, Sebastian and Eggo, Rosalind M and Sun, Fiona and Flasche, Stefan and Quilty, Billy J and Davies, Nicholas and Liu, Yang and Clifford, Samuel and Klepac, Petra and Jit, Mark and Diamond, Charlie and Gibbs, Hamish and Van Zandvoort, Kevin}, - year = {2020}, - month = apr, - journal = {The Lancet Global Health}, - volume = {8}, - number = {4}, - pages = {e488-e496}, - issn = {2214109X}, - doi = {10.1016/S2214-109X(20)30074-7}, - urldate = {2025-04-09}, - langid = {english}, - file = {/Users/lshjl15/Zotero/storage/NG9MCA47/Hellewell et al. - 2020 - Feasibility of controlling COVID-19 outbreaks by i.pdf} -} - -@article{kucharskiCOVID19ResponseIllustrates2020, - title = {The {{COVID-19}} Response Illustrates That Traditional Academic Reward Structures and Metrics Do Not Reflect Crucial Contributions to Modern Science}, - author = {Kucharski, Adam J. and Funk, Sebastian and Eggo, Rosalind M.}, - year = {2020}, - month = oct, - journal = {PLOS Biology}, - volume = {18}, - number = {10}, - pages = {e3000913}, - publisher = {Public Library of Science (PLoS)}, - issn = {1545-7885}, - doi = {10.1371/journal.pbio.3000913}, - urldate = {2025-07-22}, - copyright = {http://creativecommons.org/licenses/by/4.0/}, - langid = {english}, - file = {/Users/lshjl15/Zotero/storage/ZB4LABCU/Kucharski et al. - 2020 - The COVID-19 response illustrates that traditional.pdf} -} - -@article{kucharskiEffectivenessRingVaccination2016, - title = {Effectiveness of {{Ring Vaccination}} as {{Control Strategy}} for {{Ebola Virus Disease}}}, - author = {Kucharski, Adam J. and Eggo, Rosalind M. and Watson, Conall H. and Camacho, Anton and Funk, Sebastian and Edmunds, W. John}, - year = {2016}, - month = jan, - journal = {Emerging Infectious Diseases}, - volume = {22}, - number = {1}, - pages = {105--108}, - issn = {1080-6040, 1080-6059}, - doi = {10.3201/eid2201.151410}, - urldate = {2023-05-23}, - file = {/Users/lshjl15/Zotero/storage/98HLKB9J/Kucharski et al. - 2016 - Effectiveness of Ring Vaccination as Control Strat.pdf} -} diff --git a/posts/epi-community-contrib/index.qmd b/posts/epi-community-contrib/index.qmd deleted file mode 100644 index ba0ddc11..00000000 --- a/posts/epi-community-contrib/index.qmd +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Epiverse community engagement and software sustainability for research software" -author: - - name: "Joshua W. Lambert" - orcid: "0000-0001-5218-3046" -date: "2025-07-22" -categories: [open-source, R, R package, epidemiology, community, Epiverse, DOI] -bibliography: index.bib -format: - html: - toc: true ---- - -Software that is developed for research or by researchers can be difficult to maintain given the incentive and funding structures in academia. This remains true for epidemiology, with a large volume of software written during the COVID-19 pandemic, much of which is now abandonware[^1]. This does not mean that the software developed to understand the COVID-19 pandemic was bad or does not have utility in understanding future epidemics and pandemics, but just that the capacity to maintain and further develop these tools is not available now the pandemic is no [longer considered an acute public health emergency](https://www.who.int/news/item/05-05-2023-statement-on-the-fifteenth-meeting-of-the-international-health-regulations-(2005)-emergency-committee-regarding-the-coronavirus-disease-(covid-19)-pandemic). - -These issues around software sustainability and the academic structures that hinder software longevity were raised by @kucharskiCOVID19ResponseIllustrates2020 and were one of the leading reasons for the [Epiverse-TRACE initiative](https://epiverse-trace.github.io/). Alongside the developing novel software (R packages), Epiverse also has a commitment to support the community of package developers in epidemiology and outbreak analytics. - -This blog post highlights some recent work by Epiverse software engineers to collaborate on research software, or researchware, to help develop an R package that was initially written in the early days of the COVID-19 pandemic (January 2020 - May 2020) and built on code written for the 2014-2016 West Africa Ebola outbreak. Code that has provided insights into ring vaccination [@kucharskiEffectivenessRingVaccination2016] and isolation and contact tracing effectiveness [@hellewellFeasibilityControllingCOVID192020]. Thus it could be of great help in future infectious disease outbreaks, but has been dormant for the past few years. - -## The R package - -The R package in question is [{ringbp}](https://github.com/epiforecasts/ringbp). The package has two pieces of functionality: 1) to simulate an infectious disease outbreak using a branching process model with non-pharmaceutical interventions; and 2) to calculate the proportion of simulated outbreaks that are contained (i.e. do not cause a large sustained human-to-human epidemic). The utility of the package's general model framework has been shown by serving as a template for other epidemiological research such as [post-exposure prophylaxis](https://sophiemeakin.github.io/pepbp/). - -## The problem - -It is understandable that because {ringbp} was written in haste to produce insights to inform pandemic response it did not adhere to all software best practices. Documentation, testing, code style and (computational) performance could be improved. Certain aspects of model code, like parameterisations, were fixed internally, not providing users the full flexibility that the model could allow. - -## Epiverse contribution - -In the recent months Epiverse has collaborated with {ringbp} developers Seb Funk and Carl Pearson, based at the London School of Hygiene and Tropical Medicine and University of North Carolina, respectively, to try and improve the R package, both internally and from the user-experience. The following sections will give brief summaries of some of the collaborative developments. - -### User interface - -The user experience (API) of the package has been refactored. The main simulation function `scenario_sim()` remains, but its arguments have been modularised to better group model parameters and control arguments. This also makes the package easier to develop further without necessarily introducing many breaking changes and prevents the number of top-level function arguments from expanding. - -The new API gives the user more control over the model's parameterisation. The incubation period is now specified by the user instead of being fixed to an estimate for COVID-19. The way offspring and delay distribution functions are specified also means that any distributional or non-parameteric form can be supplied, relaxing the assumption that the onset-to-isolation has to be a Weibull distribution. - -Users can now specify the proportion of presymptomatic transmission rather than having to understand the skew normal parameterisation used by the simulation model, making it easier to get started with the package for new users. - -Lastly on user-facing changes, the naming and style of function arguments has been standardised for consistent use of [snakecase](https://en.wikipedia.org/wiki/Snake_case) style and abbreviations. - -### Documentation - -Function documentation already used {roxygen2}, but did not make use of inheritance or comprehensively document the function output or usage. We used `@inheritParams` from {roxygen2} to deduplicate, added `@return` documentation to all functions. We also improved the function argument documentation by following a structure of: `: description`, for example: - -```r -@param sim a `list` with class ``: the simulation control - options for the \pkg{ringbp} model, returned by [sim_opts()] -``` - -Exported functions now have informative examples (`@examples`) to showcase how the functions should be used. Function examples now always run (removing `\dontrun{}`) to catch any errors. - -The [{roxyglobals}](https://github.com/anthonynorth/roxyglobals) package has been added to automate the management of global variables with the use of the `@autoglobal` tag. - -Vignettes are useful long-form package documentation. Thus far we've added one vignette to the package and plan to add more where relevant. - -### Bug fixes - -Perhaps more important that any of the software best practices and user interface is the correctness of the code. In our developments we've uncovered a few bugs in the previous version of {ringbp}. The timing of quarantining infected individuals, sampling from the onset-to-isolation distribution, and calculating the generation time from the incubation period have all been identified and fixed. - -### Testing - -- simulation correctness regression (snapshot) testing - -### Miscellaneous - -There are various other changes in {ringbp} from our work. Examples include: input checking, not specifying erroneous function defaults, updating the package website, and functions that return `data.table` objects no longer [return silently](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-faq.html#sec:why-do-i-have-to-type-dt-sometimes-twice-after-using-to-print-the-result-to-console). Mentioned in the introduction, model performance has been incrementally improved, but we've not focused on this aspect, and the package will benefit from time spent focusing on this in the future; especially if the set and complexity of non-pharmaceutical interventions in the model expands. - -## Conclusion - -The {ringbp} R package implements a simple but informative model for infectious disease transmission and interventions. When written it included many well-developed aspects, but the time constraints of real-time outbreak response meant several improvements were possible. - -Epiverse-TRACE has the opportunity to not only develop new tooling for pandemic preparedness and response, but to contribute to the ecosystem of open-source software in infectious disease epidemiology. We hope that by covering the collaborative developments of {ringbp}, it can illustrate the benefits of bringing software up to date with best practices, and make tools available, accessible and robust when a new epidemic or pandemic occurs, in turn hopefully removing the need for redeveloping similar software in the future. - -All of the changes discussed in this blog post can be found in the [{ringbp} news](https://epiforecasts.io/ringbp/news/index.html). For details of developments see the [pull request history of {ringbp} on GitHub](https://github.com/epiforecasts/ringbp/pulls?q=is%3Apr+is%3Aclosed). - -[^1]: [Defined by Cambridge Dictionary](https://dictionary.cambridge.org/dictionary/english/abandonware) as: "software that is no longer produced or supported by the company that originally made it".