8.1 Phenotype outcomes
8.1.1 DM
Outcome fields:
- f.130706.0.0: the date of first occurrence of Type 1 diabetes
- f.130708.0.0: the date of first occurrence of Type 2 diabetes
- f.130714.0.0: the date of first occurrence of diabetes of unspecified type
dm_field_patterns <- "130706|130708|130714"Get DM event table and first occurrence DM event table.
dm_ukb <- get_phenotype_tab(field_patterns = dm_field_patterns,event_tab = event_tab,firstoccur = F)
dm_firstoccur_ukb <- get_phenotype_tab(field_patterns = dm_field_patterns,event_tab = event_tab,firstoccur = T)Categorize diabetes event to either Type1, Type2 or Uncertain in a new field dm_type.
dm_ukb <- dm_ukb %>% mutate(dm_type = ifelse(grepl("130706", key), "Type1", 
                                             ifelse(grepl("130708", key), "Type2","Uncertain")))saveRDS(dm_ukb,"generated_data/dm_ukb.RDS")
saveRDS(dm_firstoccur_ukb,"generated_data/dm_firstoccur_ukb.RDS")8.1.2 MI
Outcome fields:
- f.131298.0.0: the date of first occurrence of MI
- f.131300.0.0: the date of subsequent occurrence of MI
- f.42000.0.0: the date of algorithmically defined MI outcome
ICD10 code prefixes:
- I21
- I22
- I23
Define patterns to search.
mi_field_patterns <- "131298|131300|42000"
mi_icd10_patterns <- "^I21|^I22|^I23"Get MI event table and first occurrence MI event table.
mi_ukb <- 
  get_phenotype_tab(field_patterns = mi_field_patterns, icd10_patterns_any = mi_icd10_patterns,event_tab = event_tab,firstoccur = F)
mi_firstoccur_ukb <- 
  get_phenotype_tab(field_patterns = mi_field_patterns, icd10_patterns_any = mi_icd10_patterns,event_tab = event_tab,firstoccur = T)saveRDS(mi_ukb,"generated_data/mi_ukb.RDS")
saveRDS(mi_firstoccur_ukb,"generated_data/mi_firstoccur_ukb.RDS")8.1.3 Unstable Angina
ICD10 code prefixes:
- I200
unstable_angina_icd10_patterns <- "I200"Get unstable angina table and first occurrence unstable angina event table.
unstable_angina_ukb <- get_phenotype_tab(icd10_patterns_any = unstable_angina_icd10_patterns, event_tab = event_tab,firstoccur = F)
unstable_angina_firstoccur_ukb <- get_phenotype_tab(icd10_patterns_any = unstable_angina_icd10_patterns, event_tab = event_tab,firstoccur = T)saveRDS(unstable_angina_ukb,"generated_data/unstable_angina_ukb.RDS")
saveRDS(unstable_angina_firstoccur_ukb,"generated_data/unstable_angina_firstoccur_ukb.RDS")8.1.4 Ischemic Stroke
Outcome fields: - 131366: Date I63 first reported (cerebral infarction) - 42008: algorithmically defined outcome for ischemic stroke
ICD10 code prefixes: - I63
Self-reported condition codes: - 1583
Define patterns to search.
stroke_infarct_field_patterns <- "131366|42008"
stroke_infarct_icd10_patterns <- "^I63"
stroke_infarct_selfrep_patterns <- "^1583$"Get IS event table and first occurrence IS event table.
stroke_infacrt_ukb <- get_phenotype_tab(field_patterns = stroke_infarct_field_patterns,
                                        icd10_patterns_any = stroke_infarct_icd10_patterns,
                                        selfrep_patterns = stroke_infarct_selfrep_patterns,
                                        event_tab = event_tab,firstoccur = F)
stroke_infacrt_firstoccur_ukb <- get_phenotype_tab(field_patterns = stroke_infarct_field_patterns,
                                        icd10_patterns_any = stroke_infarct_icd10_patterns,
                                        selfrep_patterns = stroke_infarct_selfrep_patterns,
                                        event_tab = event_tab,firstoccur = T)saveRDS(stroke_infacrt_ukb,"generated_data/stroke_infarct_ukb.RDS")
saveRDS(stroke_infacrt_firstoccur_ukb,"generated_data/stroke_infarct_firstoccur_ukb.RDS")8.1.5 Hemorrhagic Stroke
Outcome fields:
- 131360: Subarachnoid Hemorrhage
- 131362: Intracerebral Hemorrhage
- 131364: Other non-traumatic Hemorrhage,
- 42010: Intracerebral Hemorrhage
- 42012: Subarachnoid Hemorrhage
ICD10 code prefixes: - I60 - I61 - I62
Self-reported condition codes: - 1086
Define patterns to search.
stroke_hem_field_patterns <- "131360|131362|131364|42010|42012"
stroke_hem_icd10_patterns <- "^I60|^I61|^I62"
stroke_hem_selfrep_patterns <- "^1086$"Get HS event table and first occurrence HS table.
stroke_hem_ukb <- get_phenotype_tab(field_patterns = stroke_hem_field_patterns,
                                            icd10_patterns_any = stroke_hem_icd10_patterns,
                                            selfrep_patterns = stroke_hem_selfrep_patterns,
                                            event_tab = event_tab,firstoccur = F)
stroke_hem_firstoccur_ukb <- get_phenotype_tab(field_patterns = stroke_hem_field_patterns,
                                            icd10_patterns_any = stroke_hem_icd10_patterns,
                                            selfrep_patterns = stroke_hem_selfrep_patterns,
                                            event_tab = event_tab,firstoccur = T)saveRDS(stroke_hem_ukb,"generated_data/stroke_hem_ukb.RDS")
saveRDS(stroke_hem_firstoccur_ukb,"generated_data/stroke_hem_firstoccur_ukb.RDS")8.1.6 Stroke
Outcome fields: - 42006: unspecified stroke - 131368: unspecified stroke
ICD10 code prefix - I64
Self-reported condition codes: - 1081
Outcome tables: - recurrent ischemic stroke event table - recurrent hemorrhagic stroke event table
Define patterns to search.
stroke_unspec_field_patterns <- "42006|131368"
stroke_unspec_icd10_patterns <- "^I64"
stroke_other_selfrep_patterns <- "^1081$"Get stroke event table
stroke_infarct_hem_ukb <- 
  full_join(stroke_infacrt_ukb,stroke_hem_ukb) %>% arrange(f.eid,event_dt)
stroke_unspec_ukb <- get_phenotype_tab(field_patterns = stroke_unspec_field_patterns,
                                   icd10_patterns_any = stroke_unspec_icd10_patterns,
                                   event_tab = event_tab,firstoccur = F)
stroke_other_ukb <- get_phenotype_tab(selfrep_patterns = stroke_other_selfrep_patterns,
                                   event_tab = event_tab,firstoccur = F)
stroke_ukb <- 
  stroke_infarct_hem_ukb %>% 
  full_join(stroke_unspec_ukb, by = c("f.eid","event_dt")) %>%
  full_join(stroke_other_ukb, by = c("f.eid","event_dt")) %>% 
  arrange(f.eid,event_dt)Get first occurrence stroke event table
stroke_firstoccur_ukb <- stroke_ukb %>% group_by(f.eid) %>% arrange(event_dt) %>% slice(1)saveRDS(stroke_ukb,"generated_data/stroke_ukb.RDS")
saveRDS(stroke_firstoccur_ukb,"generated_data/stroke_firstoccur_ukb.RDS")8.1.7 PCI
OPCS4 codes: - K40, K41, K42, K43, K44, K45, K46, K483, K49, K501, K75, K76
Self-reported operation codes: - 1070 (Coronary Angioplasty) - 1095 (Coronary bypass grafts)
Define patterns to search.
# OPCS patterns start with 'K' so do not have to start the pattern with '^'
pci_opcs_patterns <- "K40|K41|K42|K43|K44|K45|K46|K483|K49|K501|K75|K76"
pci_selfrep_op_patterns <- "^1070$|^1095$"Get PCI event table and first occurrence PCI event table.
pci_ukb <- get_phenotype_tab(opcs_patterns = pci_opcs_patterns,
                                     selfrep_op_patterns = pci_selfrep_op_patterns,
                                     event_tab = event_tab,firstoccur = F)
pci_firstoccur_ukb <- get_phenotype_tab(opcs_patterns = pci_opcs_patterns,
                                     selfrep_op_patterns = pci_selfrep_op_patterns,
                                     event_tab = event_tab,firstoccur = T)saveRDS(pci_ukb,"generated_data/pci_ukb.RDS")
saveRDS(pci_firstoccur_ukb,"generated_data/pci_firstoccur_ukb.RDS")8.1.8 CVD death
ICD10 code prefixes (primary death):
-I*
Define patterns to search.
cvd_death_icd10_death_primary_patterns <- "^I"Get CVD death event table
cvd_death_ukb <- get_phenotype_tab(icd10_patterns_pd = cvd_death_icd10_death_primary_patterns,
                                     event_tab = event_tab,firstoccur = F)saveRDS(cvd_death_ukb,"generated_data/cvd_death_ukb.RDS")8.1.9 Composite CVD
Composite CVD was defined to be any of the following events:
- MI
- IS
- UA
- PCI
- CVD death
Get compositie CVD event table and first occurrence composite CVD event table.
cvd_ukb <- 
  mi_ukb %>%
  full_join(stroke_infacrt_ukb) %>%
  full_join(unstable_angina_ukb) %>%
  full_join(pci_ukb) %>% 
  full_join(cvd_death_ukb) %>% distinct() %>% arrange(f.eid,event_dt)
cvd_firstoccur_ukb <- cvd_ukb %>% group_by(f.eid) %>% arrange(event_dt) %>% slice(1)saveRDS(cvd_ukb,"generated_data/cvd_ukb.RDS")
saveRDS(cvd_firstoccur_ukb,"generated_data/cvd_firstoccur_ukb.RDS")8.1.10 DR
ICD10 codes:
- E1*.3: Diabetes Mellitus with Ophthalmic Complications
- H36.0: Diabetic Retinopathy
- H28.0: Diabetic Cataract
ICD9 codes:
- 2504: Diabetes with Ophthalmic manifestations
- 3620: Diabetic retinopathy
Self-reported condition codes:
- 1276
Custom defined fields:
- dr_self: the date of DR diagnosis. As a reminder dr_selfwas produced by combining information from the fieldsf.5901.0.0,f.5901.1.0,f.5901.2.0andf.5901.3.0which record age of subjects at which DR was diagnosed at four different time points. Please see chapter 3 for details.
Define patterns.
dr_icd10 <- "E103|E113|E133|E143|H360|H280"
dr_icd9 <- "^2504|^3620"
dr_self <- "1276"
dr_custom <- "dr_self"Get first occurrence DR event table.
dr_firstoccur_ukb <- get_phenotype_tab(icd10_patterns_any = dr_icd10,
                                       icd9_patterns_any = dr_icd9,
                                       selfrep_patterns = dr_self,
                                       custom_field_patterns = dr_custom,
                                    event_tab = event_tab,firstoccur = T)saveRDS(dr_firstoccur_ukb,"generated_data/dr_firstoccur_ukb.RDS")8.1.11 DKD
Outcome fields:
- 42026: algorithmically defined End-Stage Renal Disease (ESRD)
ICD10 codes:
- E1.2: Diabetes Mellitus with renal complication
- N18[0345]: CKD Stage 3-5, end stage
- N083: Glomerular disorders in Diabetes Mellitus
ICD9 codes: - 2503: Diabetes with renal manifestations - 5859: Renal failure
Self-reported condition codes:
- 1607
Define patterns.
dkd_field_patterns <- "42026"
dkd_icd10 <- "E102|E112|E132|E142|N180|N183|N184|N185|N083"
dkd_icd9 <- "^2503|^5859"
dkd_self <- "1607"Get DKD event table and first occurrence DKD event table.
dkd_ukb <- get_phenotype_tab(field_patterns = dkd_field_patterns,
                             icd10_patterns_any = dkd_icd10,
                             icd9_patterns_any = dkd_icd9,
                             selfrep_patterns = dkd_self,
                  event_tab = event_tab,firstoccur = F)
dkd_firstoccur_ukb <- get_phenotype_tab(field_patterns = dkd_field_patterns,
                                        icd10_patterns_any = dkd_icd10,
                                        icd9_patterns_any = dkd_icd9,
                                        selfrep_patterns = dkd_self,
                  event_tab = event_tab,firstoccur = T)saveRDS(dkd_ukb,"generated_data/dkd_ukb.RDS")
saveRDS(dkd_firstoccur_ukb,"generated_data/dkd_firstoccur_ukb.RDS")