Skip to content

Reproducible analytical pipeline (RAP) for R discrete-event simulation (DES) implementing the Stroke Capacity Planning Model from Monks et al. 2016.

License

Unknown, MIT licenses found

Licenses found

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

pythonhealthdatascience/rdesrap_stroke

Repository files navigation

Stroke capacity planning model: R DES RAP

R 4.4.1 MIT Licence DOI R-CMD-check Lint ORCID


Repository overview

This repository provides a reproducible analytical pipeline (RAP) that implements a real-life stroke service capacity planning model in R. It serves as a practical example, fully reproducible and aligned with RAP principles, based on the following study:

Monks T, Worthington D, Allen M, Pitt M, Stein K, James MA. A modelling tool for capacity planning in acute and community stroke services. BMC Health Serv Res. 2016 Sep 29;16(1):530. doi: 10.1186/s12913-016-1789-4. PMID: 27688152; PMCID: PMC5043535.

Model diagram:


Installation

Clone the repository:

git clone https://github.com/pythonhealthdatascience/rdesrap_stroke.git
cd rdesrap_stroke

Set up the R environment using renv (recommended):

renv::init()
renv::restore()

If you encounter issues restoring the exact environment, you can install dependencies from DESCRIPTION and generate your own lock file:

renv::init()
renv::install()
renv::snapshot()

How to run

The simulation code is in the R/ folder as a local package. There are files executing the model and analysing the results in rmarkdown/.

Install the local package:

devtools::install()  # Needed if running in parallel
devtools::load_all()  # Sufficient if running sequentially

library(simulation)

Run a single simulation:

param <- create_parameters(number_of_runs = 1L)
single_results <- runner(param = param)

Run multiple replications:

param <- create_parameters(number_of_runs = 5L)
single_results <- runner(param = param)

Run all analyses (from command line):

bash run_rmarkdown.sh

Run tests:

devtools::test()

Lint code:

lintr::lint_dir()

Generating the results from the article

The original study used Simul8. Each of the outputs from that article have been replicated in this repository using R:

  • Figure 1. Simulation probability density function for occupancy of an acute stroke unit.
  • Figure 3. Simulated trade-off between the probability that a patient is delayed and the no. of acute beds available.
  • Table 2. Likelihood of delay. Current admissions versus 5% more admissions.
  • Table 3. Results of pooling of acute and rehab beds.
  • Supplementary Table 1. Likelihood of delay. Current admissions versus No Complex neurological patients.
  • Supplementary Table 3. Likelihood of delay. Current admissions versus ring fenced acute stroke beds.

To generate these, simply execute rmarkdown/analysis.Rmd.

Examples

Figure 1

Original:

From this repository:

Figure 3

Original:

From this repository:


Run time and machine specification

The run time for this analysis (notebooks/analysis.Rmd) is 1m 38s seconds. This was on an Intel Core i7-12700H, 32GB RAM, Ubuntu 24.04.1.

The other notebooks generate results for tests and illustrate other functionality (e.g. importing parameters from csv, running with logs), and these just take a second or two.


Citation

If you use this repository, please cite either the GitHub repository or Zenodo:

Heather, A. (2025). Stroke capacity planning model: R DES RAP. GitHub. https://github.com/pythonhealthdatascience/rdesrap_stroke.

Heather, A. (2025). Stroke capacity planning model: R DES RAP. Zenodo. https://doi.org/10.5281/zenodo.15863376.

Contributors:

Amy Heather - developed the repository.

  • ORCID
  • GitHub

Licence

MIT Licence. See LICENSE.md for details.


Acknowledgements

This repository was developed with thanks to a few others sources. These are acknowledged throughout in the relevant scipts, and also summarised here:

TODO


Funding

This project was developed as part of the project STARS: Sharing Tools and Artefacts for Reproducible Simulations. It is supported by the Medical Research Council [grant number MR/Z503915/1].

About

Reproducible analytical pipeline (RAP) for R discrete-event simulation (DES) implementing the Stroke Capacity Planning Model from Monks et al. 2016.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published