serofoi is an R package to estimate the Force-of-Infection (FoI) of a given pathogen from age-disaggregated population-based cross-sectional serosurveys, using a Bayesian framework. The package provides a set of features for assessing model fitting, convergence and visualisation.
serofoi relies on the
rstan
package, which
provides an R interface for the Stan programming language for
statistical Bayesian modelling. Particularly, serofoi relies on the
use of a Hamiltonian Monte Carlo (HMC) algorithm implemented by Stan
for Markov chain Monte Carlo (MCMC) sampling. The implemented methods
are outlined in (Cucunubá et al. 2017) and
(Carrera et al. 2020) (see FoI
Models
for further details). A compelling mathematical treatment of the
implemented serocatalytic models can be found in (Kamau et al.
2025).
serofoi is part of the Epiverse Initiative.
You can install serofoi from CRAN using:
install.packages("serofoi")
You can install the development version of serofoi from GitHub running:
if(!require("pak")) install.packages("pak")
pak::pak("epiverse-trace/serofoi")
or:
if(!require("remotes")) install.packages("remotes")
remotes::install_github("epiverse-trace/serofoi")
serofoi provides some minimal serosurvey datasets that can be used to
test out the package. For instance, the dataset chagas2012
contains
seroprevalence measures of IgG antibodies against Trypanosoma cruzi
infection corresponding to a serological survey conducted in Colombia
during 2012 on a rural indigenous community that is known to present
long-term endemic transmission
# Load example dataset chagas2012 included with the package
data(chagas2012)
head(chagas2012, 5)
#> survey_year n_sample n_seropositive age_min age_max
#> 1 2012 34 0 1 1
#> 2 2012 25 0 2 2
#> 3 2012 35 1 3 3
#> 4 2012 29 0 4 4
#> 5 2012 36 0 5 5
A visualisation of the serological data can be obtained using the
function plot_serosurvey
:
plot_serosurvey(chagas2012, bin_serosurvey = TRUE, size_text = 15)
Seroprevalence plot for the chagas2012 dataset.
Here, the error bars correspond to the binomial confidence interval and the point size represents the sample size for each age group.
A constant FoI model can easily be implemented by means of
fit_seromodel
:
seromodel <- fit_seromodel(serosurvey = chagas2012)
For further details on how to visualise the results and other available models, please refer to the online documentation.
Contributors to the project include:
Zulma M. Cucunubá (author, maintainer)
Nicolás Torres (author)
Ben Lambert (author)
Pierre Nouvellet (author)
Geraldine Gómez (contributor)
Jaime A. Pavlich-Mariscal (contributor)
Miguel Gamez (contributor)
Hugo Gruson (contributor)
David Santiago Quevedo (contributor)
Everlyn Kamau (contributor)
Richard Creswell (contributor)
Sumali Bajaj (contributor)
More details on how to use serofoi can be found in the online documentation as package vignettes, under “Articles”.
To report a bug please open an issue.
Contributions to serofoi are welcomed. Please follow the package contributing guide.
Please note that the serofoi project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.