Skip to content

Releases: epiverse-trace/epiparameter

epiparameter 0.3.0

21 Nov 12:31
Compare
Choose a tag to compare

The third minor release of the {epiparameter} R package contains a range of updates and improvements to the package. The principal aim of this release is to simplify, clarify and enhance the classes and class methods when working with epidemiological parameters in R.

The are a large number of breaking changes in this release, primarily functions and function arguments being renamed or restructured, see the Breaking changes section for an overview.

New features

  • The library of epidemiological parameters has been updated to include 3 new Chikungunya parameter entries. The Mpox parameters previously missing from the Guzzetta et al. entry have been added (#346 & #374).
  • A c() method has been added for <epiparameter> and <multi_epiparameter> objects (#368).
  • An aggregate() method has been added for <multi_epiparameter> to enable consensus distributions to be built utilising the mixture distribution class from {distributional} (#388).
  • Infrastructure has been added to the package to allow translations of messages/warnings/errors printed to the console. (@Bisaloo, #367).
  • convert_summary_stats_to_params() can now convert from median and dispersion for a lognormal distribution (#378).
  • The data_dictionary.json has been enhanced to improve validation of the library of epidemiological parameters (parameters.json) (#379).
  • An interactive network showing all of the <epiparameter> S3 methods has been added to the design_principles.Rmd vignette (#383).
  • The data_from_epireview.Rmd article has been improved and updated with new changes from {epireview} (@CarmenTamayo & @cm401 & @kellymccain28, #305 & #373).
  • Parameter units have been added to every entry in the {epiparameter} library (parameters.json) and to the $metadata element in <epiparameter> objects. The create_metadata() function now has a units argument to construct metadata lists (#391).
  • Improved database.Rmd vignette by adding a short citation to the reference column (@jamesmbaazam, #348).
  • The family() method for <epiparameter> has been improved to allow access to distribution names for transformed (e.g. mixture and truncated distributions) and untransformed (e.g. gamma and lognormal) distributions with a new argument base_dist and a new internal function .distributional_family() (#398).
  • as_epiparameter() can now work with the SARS parameters from {epireview} (#407).

Breaking changes

  • The <epidist> class has been renamed <epiparameter> to avoid confusion with the similar R package {epidist} (#360).
  • Many functions that used epidist in their names have been renamed to use epiparameter due to the renaming of the class (#360).
  • The function signatures of epiparameter() and new_epiparameter() functions (previously epidist() and new_epidist()) have been updated to collapse the prob_dist, prob_dist_params, discretise and truncation arguments into prob_distribution, which accepts the output of create_prob_distribution() (#381).
  • The epi_dist argument has been renamed epi_name. This is to clarify that {epiparameter} can work with epidemiological parameters that take a variety of forms (e.g. point estimates, ranges, probability distributions, etc.) (#390).
  • The <vb_epidist> class and it's methods have been removed from the package. It was not being used and was increasing the complexity and maintenance load of the package (#359).
  • create_prob_dist() has been renamed to create_prob_distribution() (#381).
  • validate_epiparameter() (previously validate_epidist()) has been renamed assert_epiparameter(), and test_epiparameter() has been added, with the aim to harmonise design with {contactmatrix} and the messages and errors have been improved (#366 & #402).
  • The minimum version of R required by the package is now 4.1.0 due to the use of the base R pipe (|>) in dependencies, and the R-CMD-check workflow on GitHub actions now explicitly runs on the minimum version of R stated in the DESCRIPTION (#384 & #405).

Bug fixes

  • Epidemiological parameter entries in the library stored with lognormal distributions, parameterised as median and dispersion are now converted to meanlog and sdlog correctly when creating an <epiparameter> (when auto_calc_params = TRUE) (#381).

Deprecated and defunct

  • epidist_db() has been deprecated. It is replaced by epiparameter_db() (#360 & #399).

epiparameter 0.2.0

10 Jul 15:48
Compare
Choose a tag to compare

The second release of the {epiparameter} R package focuses on interoperability with the {epireview} R package. Several functions have been refactored and enhanced.

This release benefited from feedback from the participants of an EpiParameter Community workshop hosted by the World Health Organisation.

New features

  • The as_epidist() S3 generic has been added to the package for the coercion of other R objects into <epidist> objects. The as_epidist.data.frame() method is added, as well as the internal functions is_epireview() which determines if a <data.frame> is from {epireview}, and epireview_to_epidist() performs the conversion (#298, #334 & #335)

  • The epireview_core_cols.rda data is added to the package. This is used to determine whether the input to as_epidist.data.frame() is a parameter table from {epireview} as these objects do not have a recognisable class attribute (#298).

  • A new website only vignette (i.e. article) data_from_epireview.Rmd is added that explains how to use as_epidist() with data from {epireview} (#298 & #335).

  • A new vignette database.Rmd is added to the package to provide a web interface to the {epiparameter} library of epidemiological parameters. Contributed by @sbfnk (#311).

  • The plotting method for <epidist> objects (plot.epidist()) has been improved to better differentiate continuous from discrete or discretised distributions (#315).

  • epidist_db(..., single_epidist = TRUE) now prioritises parameter entries that account for right truncation (#323).

  • create_epidist_prob_dist() (previously named create_prob_dist()) is now exported and enables more control of discretisation settings by allowing arguments to be passed to distcrete::distcrete() via ... (#324).

  • The <multi_epidist> print method (print.multi_epidist()) has been improved to provides object information in the print header, the first few elements of the list or all elements if list is short, and some extra links and advice in the print footer. The design of the print method follows the design pattern of {pillar} (#326).

  • <epidist> objects and functions that work with <epidist> objects now work with exponential distributions (#333).

  • The package now has an explicit data license: CC0 in the LICENSE file.

Breaking changes

  • list_distributions() has been replaced by parameter_tbl() which enhances the printing by leveraging {pillar} (#321).

  • The <vb_epidist> plotting method (plot.vb_epidist()) has been removed from the package. This provided minimal functionality and was unnecessarily complicating the function signature of plot.epidist() (#315).

Bug fixes

  • DOI and PMID are lowercase throughout the package to resolve issues with older versions of R (see issue #301) (#317).

Deprecated and defunct

  • None

epiparameter 0.1.0

03 May 17:50
Compare
Choose a tag to compare

Initial release of the {epiparameter} R package. {epiparameter} provides:

  1. A library of epidemiological parameters extracted from the literature for a range of diseases.

  2. Functions and classes (with class methods) to work with epidemiological parameters and distributions.

New features

  • A library of 122 epidemiological parameter set from the epidemiological literature. This is accessible from the package as system data (sysdata.rda, as epiparameter::multi_epidist) or as internal data (inst/extdata/parameters.json).
  • The epidist_db() function loads epidemiological parameters from the library.
  • Distribution parameter conversion and extraction functions (convert_params_to_summary_stats() & convert_summary_stats_to_params(), and extract_param()).
  • An S3 class to work with epidemiological parameters <epidist>. This class has S3 methods to aid users easily work with these data structures. These include printing, plotting, and distribution functions for PDF/PMF, CDF, random number generation and distribution quantiles. The <epidist> class has a constructor function, a validator function, accessors (get_*()), checkers (is_*()). There is also a <vb_epidist> S3 class for vector-borne parameters, and an internal <multi_epidist> class for improved printing of lists of <epidist> objects.
  • The package contains a few utility functions. list_distributions() is a helper function to provide information from a list of <epidist> objects in tabular form. calc_disc_dist_quantile() calculates the quantiles of a probability distribution based on the vector of probabilities and time data.
  • Five vignettes are included in this initial release. One as an introduction to the package (epiparameter.Rmd), one as an tutorial on converting and extracting parameters (extract_convert.Rmd), one on the protocol used to collect entries for the library of epidemiological parameters (data_protocol.Rmd), a design vignette (design_principles.Rmd), and a supplementary vignette which quantifies the bias from using the parameter extraction (extract_param()) from {epiparameter} (extract-bias.Rmd).
  • Unit tests and documentation files.
  • Continuous integration workflows for R package checks, rendering the README.md, calculating test coverage, deploying the pkgdown website, updates the package citation, linting package code, checking package or system dependency changes, updating copyright year, and validating the parameter library JSON file.

Breaking changes

  • None

Bug fixes

  • None

Deprecated and defunct

  • None