knitr::opts_chunk$set(results = 'hide') library(DatabaseConnector) library(SqlRender) library(Eunomia) library(FeatureExtraction) library(AssociationRuleMining) devtools::load_all()
### Define database parameters cdmdatabaseschema = "main" resultsdatabaseschema = "main" arm_inputFile = "testing.txt" arm_outputFile = "testingResults.txt" connectionDetails <- Eunomia::getEunomiaConnectionDetails() connection <- connect(connectionDetails) #on.exit(DatabaseConnector::disconnect(connection)) #Close db connection on error or exit
There are two options for defining a cohort: - 1) Define the cohort in ATLAS and export the SQL file - 2) define it locally within R
cohort <- "SELECT person_id AS subject_id, condition_start_date AS cohort_start_date INTO #diagnoses FROM @cdm.condition_occurrence WHERE condition_concept_id IN ( SELECT descendant_concept_id FROM @cdm.concept_ancestor WHERE ancestor_concept_id = 4329847 -- Myocardial infarction ) AND condition_concept_id NOT IN ( SELECT descendant_concept_id FROM @cdm.concept_ancestor WHERE ancestor_concept_id = 314666 -- Old myocardial infarction ); INSERT INTO @cdm.cohort (subject_id, cohort_start_date, cohort_definition_id) SELECT subject_id, cohort_start_date, CAST (1 AS INT) AS cohort_definition_id FROM #diagnoses INNER JOIN @cdm.visit_occurrence ON subject_id = person_id AND cohort_start_date >= visit_start_date AND cohort_start_date <= visit_end_date WHERE visit_concept_id IN (9201, 9203, 262); -- Inpatient or ER;" renderTranslateExecuteSql(connection, cohort, cdm = cdmdatabaseschema) sql <- "ALTER TABLE #diagnoses ADD cohort_definition_id INT NOT NULL DEFAULT(1)" # Execute the script to receive the data renderTranslateExecuteSql(connection, sql) querySql(connection, "SELECT count(*) FROM diagnoses;")
#### Feature Extraction #### covariateSettings <- createCovariateSettings(useConditionOccurrenceAnyTimePrior = TRUE, #includedCovariateIds = c(), #includedCovariateConceptIds = c() ) covariateData_eunomia <- getDbCovariateData(connection = connection, cdmDatabaseSchema = cdmdatabaseschema, cohortDatabaseSchema = resultsDatabaseSchema, cohortTable = "diagnoses", rowIdField = "subject_id", covariateSettings = covariateSettings, cohortTableIsTemp = TRUE) disconnect(connection)
getInputFileForAssociationRules(covariateDataObject = covariateData_eunomia, fileToSave = arm_inputFile)
apriori_associationSets <- runAssociationRules(algorithm = "Apriori", inputFile = arm_inputFile, outputFile = arm_outputFile, minsup = 0.5 ) head(apriori_associationSets)
eclat_associationSets <- runAssociationRules(algorithm = "Eclat", inputFile = arm_inputFile, outputFile = arm_outputFile, minsup = 0.5 ) head(eclat_associationSets)
fpgrowth_associationSets <- runAssociationRules(algorithm = "FP-Growth", inputFile = arm_inputFile, outputFile = arm_outputFile, minsup = 0.5 ) head(fpgrowth_associationSets)
relim_associationSets <- runAssociationRules(algorithm = "Relim", inputFile = arm_inputFile, outputFile = arm_outputFile, minsup = 0.5 ) head(relim_associationSets)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.