Streamlines the setup and execution of network studies using the Observational Medical Outcomes Partnership (OMOP) Common Data Model (CDM). Creates standardised project structures with template code, manages dependencies with 'renv', provides code review utilities, and supports containerised execution with 'Docker' for reproducible multi-site studies. Includes 'GitHub' integration for collaboration and version control.
The OmopStudyBuilder package helps a study prepare for network studies using the OMOP Common Data Model (CDM). The package sets up an R project for your study with a default folder structure and template code typically required for network studies. This allows you to focus on the parts of the analysis that are specific to your study design.
In addition to project setup, the package reviews code and dependencies, supports renv locking for consistent package versions, and can build and run a Docker image for reproducible execution aligned with best practices.
The package is highly opinionated and designed to align with the OxInfer study code checklist. For further details, please refer to the documentation.
You can install the development version of the package from GitHub:
# install.packages("remotes")
remotes::install_github("oxford-pharmacoepi/OmopStudyBuilder")
The main entry point is initStudy(), which creates the study folder
structure and template files.
library(OmopStudyBuilder)
initStudy(here::here("SampleStudy"))
Once the study has been created, you can review the generated code and dependencies:
reviewStudyCode(here::here("SampleStudy", "studyCode"))
reviewStudyDependencies(here::here("SampleStudy", "studyCode"))
If you want reproducible package versions, initialise renv in the
study folder and snapshot the environment:
renv::init(here::here("SampleStudy", "studyCode"))
install.packages(c("dplyr", "CDMConnector", "IncidencePrevalence"))
renv::snapshot(here::here("SampleStudy", "studyCode"))
This package supports building and running study code in Docker for reproducible execution. Docker is optional and only needed if you want to build and run the study in a containerised workflow. Install Docker and confirm it is running before using the Docker-based functions.
General checks (all operating systems)
docker --versiondocker infomacOS
Windows
Linux
sudo, follow:
https://docs.docker.com/engine/install/linux-postinstall/After the study has been created and configured, you can optionally build a Docker image from the study folder:
dockeriseStudy(path = here::here("SampleStudy", "studyCode"))
Run the study interactively in RStudio Server or as an automated script.
If you use a .env file for credentials, pass env_file = ".env".
runRStudio()
runStudy()
Use optional inputs only if you need them:
runStudy(
image_name = "omop-study-study-code",
data_path = "path/to/data",
results_path = "./results"
)
To distribute the study, share the study folder created by
initStudy() (including studyCode/ and renv.lock). Partners can
build and run using the same commands.
install.packages("OmopStudyBuilder")
library(OmopStudyBuilder)
dockeriseStudy(path = here::here("SampleStudy", "studyCode"))
runStudy()
runRStudio()
stopStudy()
To push a built image to Docker Hub, use the helper and enter your
credentials when prompted (the tag defaults to latest, and the image
name defaults to the current folder name):
pushDockerImage(
repo = "yourname/omop-study-study-code"
)