knitr::opts_chunk$set(echo = TRUE) library(SqlRender) library(DatabaseConnector) library(FeatureExtraction) library(PatientLevelPrediction) library(AssociationRuleMining) devtools::load_all()
# Setting up connection parameters connectionDetails <- createConnectionDetails(dbms = "postgresql", server = "localhost/ohdsi", user = "joe", password = "supersecret") cdmDatabaseSchema <- "my_cdm_data" cohortsDatabaseSchema <- "my_results" cdmVersion <- "5"
sql <- readSql("../data/cohorts/PlpAfStrokeCohorts.sql") sql <- renderSql(sql, cdmDatabaseSchema = cdmDatabaseSchema, cohortsDatabaseSchema = cohortsDatabaseSchema, post_time = 30, pre_time = 365)$sql sql <- translateSql(sql, targetDialect = connectionDetails$dbms)$sql connection <- connect(connectionDetails) executeSql(connection, sql)
# Checking if everything went well and how many events we have sql <- paste("SELECT cohort_definition_id, COUNT(*) AS count", "FROM @cohortsDatabaseSchema.AFibStrokeCohort", "GROUP BY cohort_definition_id") sql <- renderSql(sql, cohortsDatabaseSchema = cohortsDatabaseSchema)$sql sql <- translateSql(sql, targetDialect = connectionDetails$dbms)$sql querySql(connection, sql)
covariateSettings <- createCovariateSettings(useDemographicsGender = TRUE, useDemographicsAge = TRUE, useConditionGroupEraLongTerm = TRUE, useConditionGroupEraAnyTimePrior = TRUE, useDrugGroupEraLongTerm = TRUE, useDrugGroupEraAnyTimePrior = TRUE, useVisitConceptCountLongTerm = TRUE, longTermStartDays = -365, endDays = -1)
temporalCovariateSettings <- createTemporalCovariateSettings(useConditionOccurrence = TRUE, temporalStartDays = seq(-(99*365), -1, by = 2), temporalEndDays = seq(-(99*365)+1, 0, by = 2)) fpCovariateSettings <- createFrequentPatternsCovariateSettings(useFrequentPatterns = TRUE, algorithm = "SPADE", inputFile = "Af_inputData_forFp.txt", outputFile = "Af_inputData_forFp_results.txt", minsup = 0.5, showID = TRUE, temporalCovariateSettings = temporalCovariateSettings )
covariateSettingsList <- list(covariateSettings, fpCovariateSettings)
atempPlpData <- getPlpData(connectionDetails = connectionDetails, cdmDatabaseSchema = cdmDatabaseSchema, cohortDatabaseSchema = resultsDatabaseSchema, cohortTable = 'AFibStrokeCohort', cohortId = 1, covariateSettings = covariateSettings, outcomeDatabaseSchema = resultsDatabaseSchema, outcomeTable = 'AFibStrokeCohort', outcomeIds = 2, sampleSize = 10000 ) savePlpData(atempplpData, "stroke_in_af_data")
fpPlpData <- getPlpData(connectionDetails = connectionDetails, cdmDatabaseSchema = cdmDatabaseSchema, cohortDatabaseSchema = resultsDatabaseSchema, cohortTable = 'AFibStrokeCohort', cohortId = 1, covariateSettings = covariateSettingsList, outcomeDatabaseSchema = resultsDatabaseSchema, outcomeTable = 'AFibStrokeCohort', outcomeIds = 2, sampleSize = 10000 ) savePlpData(fpPlpData, "stroke_in_af_data_with_fps")
population <- createStudyPopulation(plpData = plpData, outcomeId = 2, washoutPeriod = 1095, firstExposureOnly = FALSE, removeSubjectsWithPriorOutcome = FALSE, priorOutcomeLookback = 1, riskWindowStart = 1, riskWindowEnd = 365, addExposureDaysToStart = FALSE, addExposureDaysToEnd = FALSE, minTimeAtRisk = 364, requireTimeAtRisk = TRUE, includeAllOutcomes = TRUE, verbosity = "DEBUG" )
lassoModel <- setLassoLogisticRegression()
atempResults <- runPlp(population, atempPlpData, modelSettings = lrModel, testSplit='stratified', testFraction=0.25, nfold=2, splitSeed = 1234)
fpResults <- runPlp(population, fpPlpData, modelSettings = lrModel, testSplit='stratified', testFraction=0.25, nfold=2, splitSeed = 1234)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.