A mapping of diseases to their clinical features, represented as phecodes, is required for calculating phenotype risk scores.

## Usage

mapDiseaseToPhecode(
diseaseHpoMap = phers::diseaseHpoMap,
hpoPhecodeMap = phers::hpoPhecodeMap
)

## Arguments

diseaseHpoMap

A data.table containing the mapping between diseases and HPO terms. Must have columns disease_id and term_id. Default is the map included in this package.

hpoPhecodeMap

A data.table containing the mapping between HPO terms and phecodes. Must have columns term_id and phecode. Default is the map included in this package.

## Value

A data.table with columns disease_id and phecode.

getScores(), phers()

## Examples

library('data.table')
library('survival')

# map ICD codes to phecodes
phecodeOccurrences = getPhecodeOccurrences(icdSample)

# calculate weights using the prevalence method
weightsPrev = getWeights(demoSample, phecodeOccurrences)

# calculate weights using the logistic method
weightsLogistic = getWeights(
demoSample, phecodeOccurrences, method = 'logistic', methodFormula = ~ sex)

# calculate weights using the loglinear method
phecodeOccurrences2 = phecodeOccurrences[, .(
num_occurrences = uniqueN(entry_date)), by = .(person_id, phecode)]
weightsLoglinear = getWeights(
demoSample, phecodeOccurrences2, method = 'loglinear', methodFormula = ~ sex)

# calculate weights using the cox method
phecodeOccurrences3 = phecodeOccurrences[, .(
first_occurrence_date = min(entry_date)) , by = .(person_id, phecode)]
phecodeOccurrences3 = merge(
phecodeOccurrences3, demoSample[, .(person_id, dob)], by = 'person_id')
phecodeOccurrences3[,
occurrence_age := as.numeric((first_occurrence_date - dob)/365.25)]
#>      person_id phecode first_occurrence_date        dob occurrence_age
#>   1:         1     365            2008-02-22 1999-09-03       8.472154
#>   2:         1     366            2006-02-15 1999-09-03       6.454358
#>   3:         1     735            2009-11-05 1999-09-03      10.175097
#>   4:         1   735.1            2009-11-05 1999-09-03      10.175097
#>   5:         2     442            2014-07-06 1995-09-26      18.777409
#>  ---
#> 252:        49     474            2014-07-25 1999-10-21      14.759346
#> 253:        49   474.2            2014-07-25 1999-10-21      14.759346
#> 254:        49     496            2014-07-25 1999-10-21      14.759346
#> 255:        49   496.3            2014-07-25 1999-10-21      14.759346
#> 256:        49     963            2014-07-25 1999-10-21      14.759346
phecodeOccurrences3[, :=(first_occurrence_date = NULL, dob = NULL)]
#>      person_id phecode occurrence_age
#>   1:         1     365       8.472154
#>   2:         1     366       6.454358
#>   3:         1     735      10.175097
#>   4:         1   735.1      10.175097
#>   5:         2     442      18.777409
#>  ---
#> 252:        49     474      14.759346
#> 253:        49   474.2      14.759346
#> 254:        49     496      14.759346
#> 255:        49   496.3      14.759346
#> 256:        49     963      14.759346
demoSample3 = demoSample[, .(
person_id, sex,
first_age = as.numeric((first_visit_date - dob)/365.25),
last_age = as.numeric((last_visit_date - dob)/365.25))]

weightsCox = getWeights(
demoSample3, phecodeOccurrences3, method = 'cox', methodFormula = ~ sex)
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Ran out of iterations and did not converge
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.
#> Warning: Loglik converged before variable  1 ; beta may be infinite.