Skip to content

serodynamics

0.1.0Package record

Modeling Longitudinal Antibody Responses to Infection

0packages depend
1.4Kdownloads / year
40.1%test coverage
13/13flavors OK

Overview

About

Implements Bayesian hierarchical models for estimating antibody kinetic parameters from longitudinal serological data. Fits two-phase within-host models capturing antibody rise, peak, and decay following pathogen infection, using 'JAGS' for posterior inference. Designed as the upstream companion to the 'serocalculator' package for end-to-end seroepidemiological analysis. Methods are described in Teunis and colleagues (2016) doi:10.1016/j.epidem.2016.04.001 and Teunis and van Eijkeren (2020) doi:10.1002/sim.8578.

Changes in 0.1.0

This is the first CRAN release of serodynamics, a package for Bayesian

hierarchical modeling of antibody kinetics from longitudinal serological

data. It serves as the upstream companion to the serocalculator package.

New features

  • Reorganized pkgdown documentation with new "Getting Started" guide demonstrating main API workflow, organized articles into "Get started" and "Developer Notes" sections (#73).
  • Made "newperson" optional in prep_data() (#73)
  • Including fitted and residual values as data frame in run_mod output. (#101)
  • Added plot_predicted_curve() with support for faceting by multiple IDs (#68)
  • Replacing old data object with new run_mod output (#102)
  • Adding class assignment to run_mod output (#76)
  • Making prep_priors modifiable (#78)
  • Changes to run_mod() output:
Show all changes in 0.1.0Hide the rest of the changes in 0.1.0
  • Taking out include_subs as an input option, default will include all

individuals

  • Making a single tbl as output
  • All other pieces will be attributes.
  • Changes to run_mod() (#79):
  • jags.post now optionally included in output, as specified by argument

with_post

  • all subjects now optionally included in curve_params output component,

as specified by argument include_subs

  • Diagnostic function to produce R-hat dotplots with stratification (#67)
  • Added function for summarizing estimates in a table (#74)
  • Diagnostic trace plot function with strat (#64)
  • Diagnostic function to produce effective sample size plots with

stratification (#66)

  • Diagnostic function to produce density plots with stratification (#27)
  • Added SEES data set data folder and documentation (#41)
  • Fixing SEES data and added jags_post for SEES (#63)
  • as_case_data() now creates column visit_num (#47, #50)
  • Added postprocess_jags_output() to API (#33)
  • Added initsfunction() to API (#37)
  • Added participant IDs as names to nsmpl element of prep_data() output (#34)
  • Added initsfunction() to API (#37)
  • Added as_case_data() to API (#31)
  • Added prep_priors() to API (#30)
  • Added autoplot() method for case_data objects (#28)
  • Added examples for sim_pop_data(), autoplot.case_data() (#18)
  • Added attributes as a return to the run_mod function (#24)
  • exported run_mod() function (#22)
  • Function that runs jags with option of stratification included. (#14)
  • Changed package name to serodynamics. (#19, #20)

Bug fixes

  • Fixed dplyr::as_tibble() references to tibble::as_tibble() in post_summ() and run_mod(), since as_tibble() is exported from the tibble package, not dplyr.

Developer-facing changes

  • Expanded what the Claude Code (@claude) workflow can do:
  • Install the full R toolchain (R, JAGS, pandoc, the apt system libs mirrored from copilot-setup-steps.yml, plus devtools, roxygen2, rmarkdown, lintr, spelling, rcmdcheck) and allow Rscript, R, and R CMD invocations, so requests that need package- maintenance commands (devtools::document(), spelling::spell_check_package(), R CMD check, vignette rebuilds) succeed instead of being patched by hand.
  • Grant issues: write and allow gh issue invocations so Claude can file follow-up issues for work deferred out of the current PR instead of burying it in a comment.
  • Standardized runjags::findjags() casing across test-coverage.yaml and copilot-setup-steps.yml to match the R-CMD-check.yaml form arriving with the 0.1.0 release (#207 advisory).
  • Re-assign reviewers to a PR's human assignees (filtered via type == "User") when Claude pushes commits during a @claude or Claude Code Review run; if Claude makes no commits, the original reviewer set is restored as before. Detected by comparing the PR's head SHA before and after the Claude step (#210).
  • Stopped deleting prior Claude review comments at the start of each Claude Code Review run, so reviews posted by @claude review invocations are preserved across subsequent pushes instead of being wiped when the review step fails its bot-actor gate (#217).
  • Hardened the Claude code-review workflow against races and silent failures: serialized concurrent runs per PR, made reviewer restore fail loudly instead of silently dropping reviewers, and cleaned up all stale Claude top-level comments per run (#216).
  • Consolidated OS-specific snapshot variants: removed redundant Linux and Windows snapshot directories (which were identical), keeping only base snapshots and darwin-specific variants for macOS platform differences (#73).
  • Updated Copilot instructions to encourage code decomposition and avoid copy-pasting substantial code chunks.
  • Expanded .github/copilot-instructions.md with additional guidance on evidence-based claims, Quarto markdown/cross-reference conventions, R style practices, and phrase-level line-break formatting for source text.
  • Added R 4.5+ snapshot variants to handle the changed attribute ordering in as_case_data(), ensuring test suite compatibility with R 4.5 and later (#109).
  • Added dev container configuration for persistent, cached development environment that includes R, JAGS, and all dependencies preinstalled, making Copilot Workspace sessions much faster.
  • Added .github/workflows/copilot-setup-steps.yml GitHub Actions workflow to automate environment setup for GitHub Copilot coding agent, preinstalling R, JAGS, and all dependencies.
  • Switched ggmcmc dependency from GitHub dev version to CRAN v1.5.1.2 (#135)
  • vectorized ab() function (#116)
  • Added lintr::undesirable_function_linter() to .lintr.R (#81)
  • Reformatted .lintr as R file (following

https://github.com/r-lib/lintr/issues/2844#issuecomment-2776725389) (#81)

  • Set shortcut pipe to be base pipe (#80)
  • Added snapshot test for run_mod()
  • Clarified prep_data() internals using {dplyr} (#34)
  • Removed ".R" suffix from jags model files

to prevent them from getting linted as R files (#34)

  • Added dobson.Rmd minimal vignette (#36)
  • Overall cleaning to get checks working (#28)
  • Added units tests for prep_data(), sim_case_data() (#18)
  • Added various GitHub Actions (#10, #15, #18)

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 2.9 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-09-09
  • ERROR12 OK, 1 ERROR2026-09-04
  • OK13 OK2026-08-04
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-06-09
Show 2 earlier changesHide 2 earlier changes
  • ERROR12 OK, 1 ERROR2026-06-08
  • OK7 OK2026-06-03
Advisories

none known

Documentation

In release 0.1.0
READMEYes · 57 wordsVignettesYes · 1 · dynamicNEWSYes · 100% structured · mentions 0.1.0Citation fileNoWebsiteYes · pkgdown
Help pages
25 (7 internal)includes a package overview page
Examples that run
100%16 run in a plain check
Exported functions with examples
83%
Documented parameters
86%
Return-value docs
94%
Help pages citing references
0%
Vignettes (1)

Downloads

1.4K
CRAN downloads in the past year
Rank #15,102 · ~4/day · ~118/mo
Daily download trend is not available in this view yet.
26730 days
79890 days
1.4K1 year
Compare downloads with other packages →
Also on21 r2u2 autocran

Repository

3Stars
0Forks
59Open issues
22Open PRs
1Releases
2,480Commits
12Commit identities
2,480 commits · Last activity 2026-09-24 · 0% stars, 30d · Default branch at 0.1.0.9024, ahead of CRAN 0.1.0 (checked 2026-10-18) · Discussions: 1 post
Responsiveness
How these are sampled
PRs merged (all time)
87%
Median days to close, 50 most recently updated closed issues
22
Median days to close, 50 most recently updated closed PRs
1

Stars over time

2025-02-08 · 12026-07-07 · 3
PracticesBeta

16 development-tooling and community-health practices detected across 8 families in the upstream repository

Checks run against github.com/ucd-serg/serodynamics on 2026-10-18.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (1)
Contributing guide
Docs source (5)
README.RmdpkgdownQuarto project

GitHub Pages site last deployed 2026-10-18 · The repository has a site deploy workflow

pkgdown site last built 2026-06-15

Coverage (1)
Coverage reporting (Codecov)
Show all practicesHide 4 practices
Reproducibility and dev environment (2)
data-raw/Dev Container
CRAN release process (2)
cran-comments.mdrevdep/
Lint, format, editor (2)
Lint workflowRStudio project
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • GitHub Copilotfirst seen 2025-10-02
    Seen in the repository: .github/copilot-instructions.md, .github/workflows/copilot-setup-steps.yml
    Pull request: opened by its own account
    Commits: 137 by its own account · at least 2 crediting it in the message
  • Claude Codefirst seen 2026-05-14
    Seen in the repository: .claude, .claude/skills, CLAUDE.md
    Named in .Rbuildignore: .claude, CLAUDE.md
    Pull request it wrote: opened by a project member
    Commits: 55 by its own account · at least 80 crediting it in the message
  • Codexfirst seen 2026-05-21
    Pull request: opened by its own account
    Commits: 2 by its own account
From outside contributors
  • Claude Code
    Pull requests: 1 from outside contributors, first on 2026-09-01
Models named in its commits
  • Claude Opus 4.725 commits · May 2026
  • Claude Opus 521 commits · Jul to Sep 2026
  • Claude Opus 4.810 commits · May to Jun 2026
  • Claude Sonnet 54 commits · Jul 2026
  • Claude Sonnet 4.63 commits · Jun 2026

1 more model not listed.

Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
31 external dependencies (excludes base and recommended)

Installing serodynamics adds 56 packages (25 with compiled code, 49 MB of source tarballs). Heaviest: stringi 11 MB, ggplot2 6.0 MB, serocalculator 3.6 MB.

Depends (1)
R >= 4.1.0
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

Datasets

People & History

People (5)
Author, Maintainer since 0.1.0 (2026)
Author, Copyright holder
Author of the method and original code.
Releases (1)
  • 0.1.0Latest
    2026-06-02 · current release
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-06-02
Total releases
1 / 1 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 4.1.0
Bundled data
233 KB / 2 files
Download size
5.4 MB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("serodynamics")
Schildhauer, S., Aiemjoy, K., Lee, K. H., Morrison, D. E., & Teunis, P. (2026). serodynamics: Modeling Longitudinal Antibody Responses to Infection (Version 0.1.0) [Computer software]. https://doi.org/10.32614/CRAN.package.serodynamics

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for serodynamics version 0.1.0 [Data set]. HJJB, LLC. Data release v2026-10-21. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy