All Projects → mrc-ide → individual

mrc-ide / individual

Licence: other
R Package for individual based epidemiological models

Programming Languages

r
7636 projects
C++
36643 projects - #6 most used programming language
TeX
3793 projects

Projects that are alternatives of or similar to individual

nlrx
nlrx NetLogo R
Stars: ✭ 66 (+230%)
Mutual labels:  agent-based-modeling, r-package, individual-based-modelling
travis
⛔ ARCHIVED ⛔ Set Up 'Travis' for Testing and Deployment
Stars: ✭ 61 (+205%)
Mutual labels:  rstats, r-package
EpiModelHIV
Network Models of HIV Transmission Dynamics among MSM and Heterosexuals
Stars: ✭ 20 (+0%)
Mutual labels:  agent-based-modeling, epidemiology
nasapower
API Client for NASA POWER Global Meteorology, Surface Solar Energy and Climatology in R
Stars: ✭ 79 (+295%)
Mutual labels:  rstats, r-package
Polite
Be nice on the web
Stars: ✭ 253 (+1165%)
Mutual labels:  rstats, r-package
geostan
Bayesian spatial analysis
Stars: ✭ 40 (+100%)
Mutual labels:  epidemiology, r-package
mikropml
User-Friendly R Package for Supervised Machine Learning Pipelines
Stars: ✭ 34 (+70%)
Mutual labels:  rstats, r-package
Elastic
R client for the Elasticsearch HTTP API
Stars: ✭ 227 (+1035%)
Mutual labels:  rstats, r-package
cusumcharter
Easier CUSUM control charts. Returns simple CUSUM statistics, CUSUMs with control limit calculations, and function to generate faceted CUSUM Control Charts
Stars: ✭ 17 (-15%)
Mutual labels:  rstats, r-package
geoparser
⛔ ARCHIVED ⛔ R package for the Geoparser.io API
Stars: ✭ 38 (+90%)
Mutual labels:  rstats, r-package
styles
Custom themes for base plots
Stars: ✭ 32 (+60%)
Mutual labels:  rstats, r-package
Shinycssloaders
⌛ Add loading animations to a Shiny output while it's recalculating
Stars: ✭ 248 (+1140%)
Mutual labels:  rstats, r-package
agent
Store sensitive data such as API tokens
Stars: ✭ 19 (-5%)
Mutual labels:  rstats, r-package
kendrick
Domain-Specific Modeling for Epidemiology
Stars: ✭ 43 (+115%)
Mutual labels:  epidemiology, infectious-diseases
Iheatmapr
Complex, interactive heatmaps in R
Stars: ✭ 242 (+1110%)
Mutual labels:  rstats, r-package
cablecuttr
An R wrapper for CanIStream.It API
Stars: ✭ 17 (-15%)
Mutual labels:  rstats, r-package
Taxize
A taxonomic toolbelt for R
Stars: ✭ 209 (+945%)
Mutual labels:  rstats, r-package
Fulltext
Search across and get full text for OA & closed journals
Stars: ✭ 221 (+1005%)
Mutual labels:  rstats, r-package
cranlogs
Download Logs from the RStudio CRAN Mirror
Stars: ✭ 70 (+250%)
Mutual labels:  rstats, r-package
heddlr
Bring a functional programming mindset to R Markdown document generation
Stars: ✭ 14 (-30%)
Mutual labels:  rstats, r-package

Individual

R build status codecov.io CRAN License: MIT DOI

An R package for specifying and simulating individual-based models.

This package is designed to:

  1. encourage clear and testable components for defining your individual-based models, and
  2. provide memory efficient, fast code for executing your model

Installation

The package can be installed from github using the "remotes" library

library('remotes')
install_github('mrc-ide/individual')

Alternatively you can install individual directly from CRAN, but be aware that the CRAN version may not be the most recent version of the package:

install.packages("individual")

For development it is most convenient to run the code from source. You can install the dependencies in RStudio by opening the project and selecting "Build" > "Install and Restart"

Command line users can execute:

library('remotes')
install_deps('.', dependencies = TRUE)

Docker users can build a minimal image with

docker build . -f docker/Dockerfile -t [your image name]

Or if you would like devtools and documentation tools you can run

docker build . -f docker/Dockerfile.dev -t [your image name]

Usage

We recommend first reading vignette("Tutorial") which describes how to simulate a simple SIR model in "individual", and later vignette("API") which describes in detail how to use the data structures in "individual" to build more complicated models. If you are running into performance issues, learn more about how to speed up your model in vignette("Performance").

Statement of need

Individual-based models are important tools for infectious disease epidemiology, but practical use requires an implementation that is both comprehensible so that code may be maintained and adapted, and fast. "individual" is an R package which provides users a set of primitive classes using the R6 class system that define elements common to many tasks in infectious disease modeling. Using R6 classes helps ensure that methods invoked on objects are appropriate for that object type, aiding in testing and maintenance of models programmed using "individual". Computation is carried out in C++ using Rcpp to link to R, helping achieve good performance for even complex models.

"individual" provides a unique method to specify individual-based models compared to other agent/individual-based modeling libraries, where users specify a type for agents, which are subsequently stored in an array or other data structure. In "individual", users instead instantiate a object for each variable which describes some aspect of state, using the appropriate R6 class. Finding subsets of individuals with particular combinations of state variables for further computation can be efficiently accomplished with set operations, using a custom bitset class implemented in C++. Additionally, the software makes no assumptions on the types of models that may be simulated (e.g. mass action, network), and updates are performed on a discrete time step.

We hope our software is useful to infectious disease modellers, ecologists, and others who are interested in individual-based modeling in R.

Contributing

Thank you! Please refer to the vignette on vignette("Contributing") for info on how to contribute :)

Alternatives

Non R Software

Non R Software for Epi

General R Packages

R based DES

R based IBMs

R based Epi

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].