Epiverse community involvement and software sustainability for research software | R-Bloggers

Epiverse community involvement and software sustainability for research software | R-Bloggers

7 minutes, 57 seconds Read

Software developed for research or researchers can be difficult to maintain in view of the stimulation and financing structures in the academic world. This remains the case for epidemiology, written with a large number of software during the COVID-19 Pandemie, a large part of which is now passing.1. This does not mean that the software developed to understand the COVID-19 Pandemie was bad or has no use in understanding future epidemics and pandemias, but only that the ability to maintain and further develop these tools is now not available, the pandemie is now no now for longer considered an acute emergency for public health.

These issues related to software and the academic structures that hinder software -were discussed by Kucarski, Funk and Eggo (2020) and were one of the leading reasons for the Epiverse-trace initiative. In addition to the developing new software (R -packages), Epiverse also has an obligation to support the community of package developers in epidemiology and outbreak analyzes. The initiative also tries to improve the cooperation between community and contribution of friendliness of open-source software.

This blog post emphasizes a number of recent work by epiverse software engineers to work together on research software or research work, to improve an R package that was initially written in the early days of the COVID-19 Pandemie (January 2020-May 2020) to assess the effectiveness of insulation and contact tracing effectiveness (Hellwell et al. 2020). It was built on code written for the outbreak of West Africa Ebola 2014-2016 to provide insights into ring vaccination (Kucarski et al. 2016). These applications and the general nature of the questions that the package addresses suggest that it could be of great help in future outbreaks of infectious diseases, but lacked developers without pandemic-related priorities.

The R -PACKAGE

The R package in question is {Ringbp}. The package has two pieces of functionality: 1) to simulate an outbreak of infectious diseases using a branching process model with non-pharmaceutical interventions; and 2) to calculate the share of simulated outbreaks that have been included (ie not a large persistent human-to-human epidemic). The usefulness of the general model framework of the package has been demonstrated by serving as a template for other epidemiological examination such as such as such as Prophylaxis post-exposure” Network effects on control (Firth et al. 2020) and the Impact of self-reporting and isolation therapy compliance (Davis et al. 2020).

The problem

It is understandable that because {ringbp} has been hurriedly written to produce insights to inform Pandemic Response, it did not hold on to all best practices for software. Usability, documentation, testing, code style and (computational) performance can be improved. Certain aspects of model code, such as parameterizations, were hard coded, so that users did not offer full flexibility that could allow the model.

Epiverse

In recent months, epiverse has collaborated with {ringbp} developers Seb Funk (also a member of Epiverse) and Carl Pearson (external employee), based on the London School of Hygiene and Tropical Medicine and University of North Carolina, to try the R-package, both users. The following sections provide short summaries of some of the cooperation developments.

User interface

The user experience (API) of the package has been repacted. The most important simulation function scenario_sim() Remains, but the arguments have been modulated to better group modameters and operating arguments. This also makes the package easier to further develop without necessarily many breaking changes and prevents the number of functions at top level to expand.

Old

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
)

New

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 parameterization of the model. The incubation period is now specified by the user instead of being set to an estimate for COVID-19. The way in which descendants and delay distribution functions are specified also means that any distributional or non-parametric shape can be supplied, so that the assumption is relaxed that the beginning to any insulation must be a Weibull distribution.

Users can now specify the share of presymptomatic transmission instead of the skewed normal parameterization that is used by the simulation model, making it easier to get started with the new users package.

Finally, the changes in user -oriented changes, naming and style of job arguments are standardized for consistent use of snakecase Style and abbreviations.

Documentation

Function documentation has already been used {roxygen2}, but did not use inheritance or documented the function output or the use completely. We used @inheritParams Van {roxygen2} to dug, added @return Documentation for all functions. We have also improved the documentation of the job argument through a structure of: : descriptionFor example:

@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 show how the functions should be used. Function examples are now always performed (delete \dontrun{}) to catch any mistakes.

The {Roxyglobals} package has been added to automate the management of global variables with the use of the @autoglobal Tag.

Vignettes are handy long -term package documentation. So far we have added one vignette to the package and we are planning to add more where relevant.

Bug fixes

Perhaps more important that one of the Software Best Practices and User Interface is the accuracy of the code. In our developments we have discovered a few bugs in the previous version of {ringbp}. Errors in the timing of persons infected in quarantine, sampling of the inflammatory distribution up to and including the development of the generation time from the incubation period have all been identified and determined.

Test

  • Simulation correctness regression (snapshot) testing

Mixed

There are several other changes in {ringbp} from our work. Examples are: input control, not specifying incorrect functions of default values, updating the package website and functions that return data.table objects no longer Silent coming back. On average in the introduction, the model performance has step by step, but we have not focused on this aspect and the package will benefit from the time you have focused on this in the future; Especially if the set and complexity of non-pharmaceutical interventions in the model extends.

Conclusion

The {ringbp} r package implements a simple but informative model for transmission and interventions of infectious diseases. When it was originally written, it included many well -developed aspects, but the time limitations of real -time outbreak response meant that different improvements were possible.

Epiverse-Trace has the opportunity to not only develop new tooling for pandemic readiness and reaction, but also to contribute to the ecosystem of open-source software in epidemiology of infectious diseases. We hope that by covering the cooperation developments of {ringbp}, it can illustrate the benefits of making software with best practices, and making tools available, accessible and robust when a new epidemic or pandemic occurs, hopefully the need for redeveloping similar software in the future.

Improving the accessibility of software for users and developers by improving documentation and user interface will hopefully offer a gateway for more external contributors to enter into the project. In the public health landscape of temporary stimulus in capacity and priorities, it could be better to enable community contributions to open-source software, to support the sustainability of the software.

All changes discussed in this blog post can be found in the {Ringbp} News. For more information about developments, see the Trek request history of {ringbp} on github.

Recognition

Thanks to Seb Funk and Carl Pearson for useful feedback in the preparation of this message and for their collaboration on the {Ringbp} project.

References

Davis, Emma L., Tim CD Lucas, Anna Borlase, Timothy M. Pollington, Sam Abbott, Dievreye Ayabina, Thomas Crellen, et al. 2020. “An imperfect tool: Contact tracing can offer valuable reductions COVID-19 Transmission if a good compliance can be achieved and maintained. “ https://doi.org/10.1101/2020.06.09.20124008.

Firth, Johs A., Joel Help, Petra Drapac, Stephen Kissing Covid-19 Working Group, Cartin Cars, Et Alkins, Et Alkins, It Old. 2020. “Use a Real-World network to model COVID-19 Control strategies. “ Nature Medicine 26 (10): 1616–22. https://doi.org/10.1038/s41591-020-1036-8.

Hellwell, Joel, Sam Abbott, Amy Gimma, Nikos I Bossse, Christopher I Jawothy W Russoe, Jaday, Jaday, it’s old. 2020. “Feasibility of control COVID-19 Outbreaks due to the insulation of cases and contacts. “ The Lancet Global Health 8 (4): E488–96. https://doi.org/10.1016/s2214-109x(20)30074-7.

Kucharski, Adam J., Rosalind M. Eggo, Conall H. Watson, Anton Camacho, Sebastian Funk and W. John Edmunds. 2016. “Effectiveness of Ring vaccination when Control strategy for Ebola -virus disease. “ Emerging infectious diseases 22 (1): 105–8. https://doi.org/10.3201/eid2201.151410.

Kuchaski, Adam J., Sebastian Funk and Rosalind M. Eggo. 2020. “The COVID-19 Response illustrates that traditional academic reward structures and statistics do not reflect crucial contributions to modern science. “ PLOS Biology 18 (10): E3000913. https://doi.org/10.1371/journal.pbio.3000913.

Reuse

Quote

Bibtex quote:

@online{w._lambert2025,
  author = {W. Lambert, Joshua},
  title = {Epiverse Community Engagement and Software Sustainability for
    Research Software},
  date = {2025-08-25},
  url = {https://epiverse-trace.github.io/posts/epi-community-contrib/},
  langid = {en}
}

Name this work for:

W. Lambert, Joshua. 2025. “Epennial community involvement and software sustainability for research software.” August 25, 2025.
https: // epiverse trace.github.io/posts/epi-community-trib/.


#Epiverse #community #involvement #software #sustainability #research #software #RBloggers

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *