Movatterモバイル変換


[0]ホーム

URL:


CDMConnector

Lifecycle:stableCRAN statuscodecov.ioBuild Statusduckdb statusPostgres statusSQL Server odbc statusRedshift statusSnowflake status

Are you using thetidyversewith an OMOP Common Data Model?

Interact with your CDM in a pipe-friendly way with CDMConnector.

Overview

CDMConnector introduces a single R object that represents an OMOP CDMrelational database inspired by thedm,DatabaseConnector,andAndromeda packages.The cdm objects encapsulate references toOMOP CDM tables in aremote RDBMS as well as metadata necessary for interacting with a CDM,allowing for dplyr style data analysis pipelines and interactive dataexploration.

OMOP CDM v5.4

Features

CDMConnector is meant to be the entry point for composable tidyversestyle data analysis operations on an OMOP CDM. Acdm_reference object behaves like a named list oftables.

See Getting started for more details.

Installation

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")

Usage

Create a cdm reference from any DBI connection to a databasecontaining OMOP CDM tables. Use the cdm_schema argument to point to aparticular schema in your database that contains your OMOP CDM tablesand the write_schema to specify the schema where results tables can becreated, 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  2694

Compose 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 rows

And much more besides. See vignettes for further explanations on howto create database connections, make a cdm reference, and startanalyzing your data.

Getting help

If you encounter a clear bug, please file an issue with a minimalreproducible example onGitHub.

Citation

## 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


[8]ページ先頭

©2009-2025 Movatter.jp