measles 0.4.0-0
User visible changes
The function
InterventionMeaslesPEP()implements post-exposure prophylaxis featuring both MMR and IG. The process is highly configurable and can be attached to theModelMeaslesSchool(). Not available yet for other models.Fixed the PEP timelines.
mmr_window/ig_windoware now measured from the exposure to the day the case is identified, i.e. whether there is still time to intervene. The reference date is the first day the school encountered the index case on or after its infectious-onset date (rash onset minus the prodromal period); contact tracing is used only to date that first encounter, so if the contact rate is zeroed out on some days (e.g. weekends, via a global event) the first day actually in session anchors the window. When several cases are identified on the same day, the earliest of those first encounters applies. Previously the windows were compared against the index case’s infectious-onset date and gated on the specific day a given classmate met the index, so realistic windows (e.g.mmr_window = 3) did not behave as intended.PEP is now offered to the whole school rather than only to the index case’s recorded contacts, reflecting that public health treats the exposed group as exposed rather than tracing individual contacts. Agents already holding a PEP tool are not dosed again (IG still wanes, after which they become eligible once more). Note this makes PEP considerably more widely administered than in previous versions, and outbreak sizes correspondingly smaller.
InterventionMeaslesPEP()gains an optionalagent_groupsargument for circumscribing that exposed group. Offering PEP to the entire population is appropriate for a single classroom but misleading when the population is really a set of separate communities. Supplying one group label per agent (e.g.agent_groups = rep(1:3, each = 20)) restricts the offer to the group(s) of the identified case(s), and dates each group’s window from its own exposure, so a case identified in one classroom no longer shortens the window available to another. The default,integer(0), keeps the whole-population behavior.Fixed PEP being re-administered every day after a case was identified. The set of triggering cases was only refreshed when a new case was detected, so on quiet days the intervention kept responding to an old detection.
The models
ModelMeaslesMixing()andModelMeaslesMixingRiskQuarantine()no longer usecontact_rate; instead, theircontact_matrixstores the expected number of contacts between groups. Calibration can now be done with the new functioncalibrate_mixing_model().Updated the documentation, examples, and contact-matrix helpers for the mixing models so they consistently treat
contact_matrixas the full contact-rate matrix.Aligned the package documentation and examples with the updated measles state names from epiworldR, replacing
Exposed/Quarantined ExposedwithLatent/Quarantined Latentwhere those names refer to model states.Changed the default vaccine efficacy of Measles from 99% to 97%.
The contact tracing window parameter in
ModelsMeaslesMixing()andModelMeaslesMixingRiskQuarantine()was capturing agents that may have been in contact with infected cases way past the window. No important regressions observed from this change.The
ModelMeaslesMixing()now allows agents with Rash to be infectious. Previously, we assumed that Rash agents would stay home. We now relaxed this assumption to allow agents to have a different contact rate.The new function
make_cmat_symmetric()allows symmetrizing a contact matrix based on the population size (adapted fromsocialmixr::symmetrise()).get_contact_matrix()andset_contact_matrix()are now provided by epiworldR (>= 0.15.1) and work directly on the measles mixing models. The package’s own copies were removed so they no longer mask the epiworldR versions.
Internal changes
Updated package citation metadata to include all people listed in
Authors@R.Added repository citation metadata for GitHub and other CFF consumers.
Added pkgdown author metadata linking George Vega Yon’s website.
The Measles models were removed from epiworldR. This streamlines the development process. So, if we need to update Measles related models, we only need to update the measles R package, not epiworldR and measles.
The
ModelMeaslesMixingincludes parameter validation on the C++ side.The latest version of
epiworldoptimizes the binomial sampler, switching to a Poisson sampler based on Le Cam’s inequality.
measles 0.2.0
CRAN release: 2026-03-31
User visible changes
The vaccination efficacy has been modified to reflect a probability (the original intent) instead of a rate. Previous versions were resulting in a higher than expected vaccinated individuals becoming infected (update from epiworldR 0.13.0.0).
Improved documentation regarding vaccination rates and probabilities across models.
measles 0.1.1
CRAN release: 2026-02-21
Internal changes
Removed the
configurescript infrastructure (configure.ac,configure,cleanup,src/Makevars.in) in favor of a staticsrc/Makevarsthat uses R’s own$(SHLIB_OPENMP_CXXFLAGS)for OpenMP support. This addresses CRAN policy compliance by removing unnecessary C++11 compiler testing and custom OpenMP detection.Added
CXX_STD = CXX17tosrc/Makevarsandsrc/Makevars.win, andSystemRequirements: C++17toDESCRIPTION, as required by the epiworld C++ headers (std::string_view,if constexpr).
measles 0.1.0
CRAN release: 2026-02-12
This is the first release of the measles R package, a spin-off of the epiworldR package, focused on modeling measles transmission dynamics.
New Features
- Added
get_contact_matrix()andset_contact_matrix()functions to retrieve and modify the contact matrix for mixing models. These functions are available for:ModelMeaslesMixingModelMeaslesMixingRiskQuarantine