serofoi v0.1.0

new-release
Author

The Epiverse-TRACE development team

Published

April 30, 2024

We are very excited to announce the release of a new serofoi version v0.1.0. Here is an automatically generated summary of the changes in this version.

serofoi 0.1.0

New features

  • Data simulation functions from time-varying or age-varying force of infection trends. The following is an example to simulate from a constant (in time) force of infection:
foi_sim_constant <- rep(0.02, 50)

serodata_constant <- generate_sim_data(
  sim_data = data.frame(
    age=seq(1,50),
    tsur=2050),
  foi=foi_sim_constant,
  sample_size_by_age = 5
)

To generate grouped serosurveys the function group_sim_data can be used:

serodata_constant <- group_sim_data(serodata_constant , step = 5) 

Breaking changes

  • Simplifies fit_seromodel output

    • Before, the output of fit_seromodel was a list:
      seromodel_object <- list(
        fit = fit,
        seromodel_fit = seromodel_fit,
        serodata = serodata,
        serodata = serodata,
        stan_data = stan_data,
        ...
      )
    • Now, the output is a stan_fit object as obtained from rstan::sampling. Because of this, some plotting functionalities now require serodata as an input.
  • Initial prior distribution parameters foi_location and foi_scale can be specified explicitely in fit_seromodel:

seromodel <- fit_seromodel(
  serodata,
  foi_model = "tv_normal",
  foi_location = 0,
  foi_scale = 1
)

Depending on the selected model foi_model, the meaning of the parameters change. For the tv_normal_log model these parameters must be in logarithmic scale; the recommended usage is:

seromodel <- fit_seromodel(
  serodata,
  foi_model = "tv_normal_log",
  foi_location = -6,
  foi_scale = 4
)
  • Chunks structure specification is now possible
    • Before, the models estimated one value of the force of infection per year in the time spanned by the serosurvey:
    data(chagas2012)
    serodata <- prepare_serodata(chagas2012)
    seromodel <- fit_seromodel(serodata, foi_model = "tv_normal")

    image
    • Now, the amount of force of infection values estimated by the models depend on the specified chunk structure. This can either be specified by size:
    seromodel <- fit_seromodel(serodata, foi_model = "tv_normal", chunk_size = 10)

    image

or explicitly:

chunks <- rep(c(1, 2, 3, 4, 5), c(10, 10, 15, 15, max(serodata$age_mean_f)-50))
seromodel <- fit_seromodel(serodata, foi_model = "tv_normal", chunks = chunks)

image
  • Deprecate run_seromodel. Initially this function was intended to be a handler for fit_seromodel for cases when the user may need to implement the same model to multiple independent serosurveys; now we plan to showcase examples of this using the current functionalities of the package (to be added in future versions to the vignettes).

Minor changes

  • Refactorization of the visualization module
    1. plot_seroprev allows for data binning (age group manipulation) by means of parameters bin_data=TRUE and bin_step.
    2. Automatic selection of ymin and ymax aesthetics plotting functions (with the exception of plot_rhats).
    3. Correct input validation
  • Remove duplicated data in veev2012 dataset

Internal changes

  • Remove large files from git history (see #77).

  • Added input validation for the following functions:

    • prepare_serodata
    • generate_sim_data
    • get_age_group
    • fit_seromodel
    • extract_seromodel_summary
    • plot_seroprev
    • plot_seroprev_fitted
    • plot_foi
    • plot_seromodel
  • Unit testing:

    • Separate modelling testings by model
    • Use of dplyr::near to test models statistical validity
    • Add tests for data simulation functions
  • Update package template in accordance to {packagetemplate}

Reuse

Citation

BibTeX citation:
@online{epiverse-trace development team2024,
  author = {Epiverse-TRACE development team, The},
  title = {Serofoi V0.1.0},
  date = {2024-04-30},
  url = {https://epiverse-trace.github.io/posts/serofoi_v0.1.0},
  langid = {en}
}
For attribution, please cite this work as:
Epiverse-TRACE development team, The. 2024. “Serofoi V0.1.0.” April 30, 2024. https://epiverse-trace.github.io/posts/serofoi_v0.1.0.