Skip to content

Tools to enable flexible and efficient hierarchical nowcasting of epidemiological time-series using a semi-mechanistic Bayesian model with support for a range of reporting and generative processes.

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

epinowcast/epinowcast

Repository files navigation

Flexible Hierarchical Nowcasting epinowcast website

Lifecycle: experimental R-CMD-check Codecov test coverage
Universe MIT license GitHub contributors
DOI

Summary

Tools to enable flexible and efficient hierarchical nowcasting of right-truncated epidemiological time-series using a semi-mechanistic Bayesian model with support for a range of reporting and generative processes. Nowcasting, in this context, is gaining situational awareness using currently available observations and the reporting patterns of historical observations. This can be useful when tracking the spread of infectious disease in real-time: without nowcasting, changes in trends can be obfuscated by partial reporting or their detection may be delayed due to the use of simpler methods like truncation. While the package has been designed with epidemiological applications in mind, it could be applied to any set of right-truncated time-series count data.

Installation

Installing the package

You can install the latest released version using the normal R function, though you need to point to r-universe instead of CRAN:

install.packages(
  "epinowcast", repos = "https://epinowcast.r-universe.dev"
)

Alternatively, you can use the remotes package to install the development version from Github (warning! this version may contain breaking changes and/or bugs):

remotes::install_github(
  "epinowcast/epinowcast", dependencies = TRUE
)

Similarly, you can install historical versions by specifying the release tag (e.g. this installs 0.2.0):

remotes::install_github(
  "epinowcast/epinowcast", dependencies = TRUE, ref = "v0.2.0"
)

Note: You can also use that last approach to install a specific commit if needed, e.g. if you want to try out a specific unreleased feature, but not the absolute latest developmental version.

Installing CmdStan

If you wish to do model fitting and nowcasting, you will need to install CmdStan, which also entails having a suitable C++ toolchain setup. We recommend using the cmdstanr package. The Stan team provides instructions in the Getting started with cmdstanr vignette, with other details and support at the package site along with some key instructions available in the Stan resources package vignette, but the brief version is:

# if you not yet installed `epinowcast`, or you installed it without `Suggests` dependencies
install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
# once `cmdstanr` is installed:
cmdstanr::install_cmdstan()

Note: You can speed up CmdStan installation using the cores argument. If you are installing a particular version of epinowcast, you may also need to install a past version of CmdStan, which you can do with the version argument.

Alternative: Docker

We also provide a Docker image with epinowcast and all dependencies installed. You can use this image to run epinowcast without installing dependencies.

Resources

As you use the package, the documentation available via ?enw_ should be your first stop for troubleshooting. We also provide a range of other documentation, case studies, and community spaces to ask (and answer!) questions:

Package Website

The epinowcast website includes a function reference, model outline, and case studies using the package. The site mainly concerns the release version, but you can also find documentation for the latest development version.

R Vignettes

We have created package vignettes to help you get started nowcasting and to highlight other features with case studies.

Organisation Website

Our organisation website includes links to other resources, guest posts, and seminar schedule for both upcoming and past recordings.

Community Forum

Our community forum has areas for question and answer and considering new methods and tools, among others. If you are generally interested in real-time analysis of infectious disease, you may find this useful even if do not use epinowcast.

Package Analysis Scripts

In addition to the vignettes, the package also comes with example analyses. These are not as polished as the vignettes, but we typically explore new features with these and they may help you if you are using a development version. After installing epinowcast, you can find them via:

list.files(
  system.file("examples", package = "epinowcast"), full.names = TRUE
)

Contributing

We welcome contributions and new contributors! We particularly appreciate help on identifying and identified issues. Please check and add to the issues, and/or add a pull request and see our contributing guide for more information.

If you need a different underlying model for your work: epinowcast lets you pass your own models! If you do try new model parameterisations that expand the overall flexibility or improve the defaults, please let us know either here or on the community forum. We always like to hear about new use-cases, whether or not they are directed at the core epinowcast applications.

How to make a bug report or feature request

Please briefly describe your problem and what output you expect in an issue. If you have a question, please don’t open an issue. Instead, ask on our Q and A page. See our contributing guide for more information.

Code of Conduct

Please note that the epinowcast project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Citation

If making use of our methodology or the methodology on which ours is based, please cite the relevant papers from our model outline. If you use epinowcast in your work, please consider citing it with citation("epinowcast").

Contributors

All contributions to this project are gratefully acknowledged using the allcontributors package following the all-contributors specification. Contributions of any kind are welcome!

Code

seabbs, adrian-lison, sbfnk, Bisaloo, pearsonca, choi-hannah, medewitt, jamesmbaazam, pitmonticone, athowes, jessalynnsebastian, kathsherratt, kaitejohnson, Lnrivas, natemcintosh, nikosbosse, pratikunterwegs

Issue Authors

teojcryan, FelixGuenther, beansrowning, jbracher, zsusswein, christinesangphet

Issue Contributors

jhellewell14, Gulfa, parksw3, TimTaylor, WardBrian, jimrothstein