- Notifications
You must be signed in to change notification settings - Fork15
A pipe friendly way to interact with an OMOP Common Data Model
License
darwin-eu/CDMConnector
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Are you using thetidyverse with an OMOPCommon Data Model?
Interact with your CDM in a pipe-friendly way with CDMConnector.
- Quickly connect to your CDM and start exploring.
- Build data analysis pipelines using familiar dplyr verbs.
- Easily extract subsets of CDM data from a database.
CDMConnector introduces a single R object that represents an OMOP CDMrelational database inspired by thedm,DatabaseConnector, andAndromeda packages. The cdmobjects encapsulate references toOMOP CDMtables in a remote RDBMS aswell as metadata necessary for interacting with a CDM, allowing fordplyr style data analysis pipelines and interactive data exploration.
CDMConnector is meant to be the entry point for composable tidyversestyle data analysis operations on an OMOP CDM. Acdm_reference objectbehaves like a named list of tables.
- Quickly create a list of references to a subset of CDM tables
- Store connection information for later use inside functions
- Use any DBI driver back-end with the OMOP CDM
See Getting started for more details.
CDMConnector can be installed from CRAN:
install.packages("CDMConnector")The development version can be installed from GitHub:
# install.packages("devtools")devtools::install_github("darwin-eu/CDMConnector")
Create a cdm reference from any DBI connection to a database containingOMOP CDM tables. Use the cdm_schema argument to point to a particularschema in your database that contains your OMOP CDM tables and thewrite_schema to specify the schema where results tables can be created,and use cdm_name to provide a name for the database.
library(CDMConnector)con<-DBI::dbConnect(duckdb::duckdb(dbdir= eunomiaDir()))cdm<- cdmFromCon(con=con,cdmSchema="main",writeSchema="main",cdmName="my_duckdb_database")
Acdm_reference is a named list of table references:
library(dplyr)names(cdm)
## [1] "person" "observation_period" "visit_occurrence" ## [4] "visit_detail" "condition_occurrence" "drug_exposure" ## [7] "procedure_occurrence" "device_exposure" "measurement" ## [10] "observation" "death" "note" ## [13] "note_nlp" "specimen" "fact_relationship" ## [16] "location" "care_site" "provider" ## [19] "payer_plan_period" "cost" "drug_era" ## [22] "dose_era" "condition_era" "metadata" ## [25] "cdm_source" "concept" "vocabulary" ## [28] "domain" "concept_class" "concept_relationship" ## [31] "relationship" "concept_synonym" "concept_ancestor" ## [34] "source_to_concept_map" "drug_strength"Use dplyr verbs with the table references.
cdm$person %>% tally()
## # Source: SQL [?? x 1]## # Database: DuckDB v1.3.1 [root@Darwin 23.1.0:R 4.3.3//private/var/folders/2j/8z0yfn1j69q8sxjc7vj9yhz40000gp/T/RtmpKZqlCg/file6cc036a4e64a.duckdb]## n## <dbl>## 1 2694Compose operations with the pipe.
cdm$condition_era %>% left_join(cdm$concept,by= c("condition_concept_id"="concept_id")) %>% count(top_conditions=concept_name,sort=TRUE)
## # Source: SQL [?? x 2]## # Database: DuckDB v1.3.1 [root@Darwin 23.1.0:R 4.3.3//private/var/folders/2j/8z0yfn1j69q8sxjc7vj9yhz40000gp/T/RtmpKZqlCg/file6cc036a4e64a.duckdb]## # Ordered by: desc(n)## top_conditions n## <chr> <dbl>## 1 Viral sinusitis 17268## 2 Acute viral pharyngitis 10217## 3 Acute bronchitis 8184## 4 Otitis media 3561## 5 Osteoarthritis 2694## 6 Streptococcal sore throat 2656## 7 Sprain of ankle 1915## 8 Concussion with no loss of consciousness 1013## 9 Sinusitis 1001## 10 Acute bacterial sinusitis 939## # ℹ more rowsAnd much more besides. See vignettes for further explanations on how tocreate database connections, make a cdm reference, and start analyzingyour data.
If you encounter a clear bug, please file an issue with a minimalreproducible example onGitHub.
## To cite package 'CDMConnector' in publications use:## ## Black A, Gorbachev A, Burn E, Catala Sabate M, Nika I (????).## _CDMConnector: Connect to an OMOP Common Data Model_. R package## version 2.1.0, https://github.com/darwin-eu/CDMConnector,## <https://darwin-eu.github.io/CDMConnector/>.## ## A BibTeX entry for LaTeX users is## ## @Manual{,## title = {CDMConnector: Connect to an OMOP Common Data Model},## author = {Adam Black and Artem Gorbachev and Edward Burn and Marti {Catala Sabate} and Ioanna Nika},## note = {R package version 2.1.0, https://github.com/darwin-eu/CDMConnector},## url = {https://darwin-eu.github.io/CDMConnector/},## }License: Apache 2.0
About
A pipe friendly way to interact with an OMOP Common Data Model
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.

