13 Phenotype outcomes using combination of tables
In this chapter, we combine event tables generated in the previous chapters to generate
- diabetes event table and diabetes first occurrence event table
- diabetic eye disease first occurrence event table
- diabetic first occurrence event table
Load packages.
library(tidyverse)
library(data.table)
source("functions.R")
DM
Load the following datasets:
- diabetes event table generated using UKB assessment center data (chapter 8)
- diabetes event table generated using PCP data (chapter 9)
<- readRDS("generated_data/dm_pc.RDS")
dm_pc <- readRDS("generated_data/dm_ukb.RDS") dm_ukb
Create diabetes event table and diabetes first occurrence event table. The categorize_dm_types()
function categorizes events into different diabetes types. The function also resolves any conflict in types of diabetes for each subject with more than one recorded diabetes types.
<- full_join(dm_ukb %>% select(f.eid, event_dt, dm_type), dm_pc %>% select(f.eid, event_dt, dm_type)) %>%
dm distinct() %>%
group_by(f.eid) %>%
mutate(dm_type = categorize_dm_types(dm_type)) %>%
ungroup()
<- dm %>% group_by(f.eid) %>% arrange(event_dt) %>% slice(1) %>% ungroup() dm_firstoccur
Import ID’s of subjects represented in the primary care data.
<- readRDS("generated_data/gp_subject_ids.RDS") gp_subject_ids
Show a contingency table of diabetes types and availability of the primary care data for the diabetes cohort.
%>% mutate(in_gp = f.eid %in% gp_subject_ids) %>%
dm_firstoccur select(dm_type, in_gp) %>%
table() %>%
addmargins()
saveRDS(dm,"generated_data/dm.RDS")
saveRDS(dm_firstoccur,"generated_data/dm_firstoccur.RDS")
DR
Load the following datasets:
- diabetic eye disease first occurrence event table generated using UKB assessment center data (chapter 8)
- diabetic eye disease event table generated using PCP data (chapter 9)
<- readRDS("generated_data/dr_pc.RDS")
dr_pc <- readRDS("generated_data/dr_firstoccur_ukb.RDS") dr_firstoccur_ukb
Create diabetic eye disease first occurrence event table.
<-
dr_firstoccur %>% full_join(dr_firstoccur_ukb) %>%
dr_pc group_by(f.eid) %>% arrange(event_dt) %>% slice(1) %>% ungroup()
saveRDS(dr_firstoccur,"generated_data/dr_firstoccur.RDS")
DKD
Load the following datasets:
- diabetic kidney disease event table generated using UKB assessment center data (chapter 8)
- diabetic kidney disease event table generated using PCP data (chapter 9)
- macroabuminuria first occurrence event table generated using the biomarker trajectory data (chapter 12)
- prolonged low eGFR first occurrence event table generated using the biomarker trajector data (chapter 12)
<- readRDS("generated_data/kidney_disease_case_pc.RDS")
kidney_disease_case_pc <- readRDS("generated_data/dkd_ukb.RDS")
dkd_ukb <- readRDS("generated_data/macroabu_firstoccur.RDS")
macroabu_firstoccur <- readRDS("generated_data/prolonged_low_egfr_firstoccur.RDS") prolonged_low_egfr_firstoccur
Next, we create the following event tables using low_egfr_firstoccur
and macroabu_firstoccur
to capture additional DKD cases.
<- prolonged_low_egfr_firstoccur %>% filter(!is.na(event_dt))
prolonged_low_egfr_firstoccur <- macroabu_firstoccur %>% filter(!is.na(event_dt)) %>% select(f.eid,event_dt) macroabu_firstoccur
Finally, we merge the following event tables to generate first occurrence diabetic kidney disease event table:
- kidney disease case multiple event table from PCP data
- diabetic kidney disease multiple event table from UKB assessment center data
- macroabuminuria first occurrence event table
- prolonged low eGFR first occurrence event table
<-
dkd_firstoccur %>%
kidney_disease_case_pc full_join(dkd_ukb) %>%
full_join(prolonged_low_egfr_firstoccur) %>%
full_join(macroabu_firstoccur) %>%
filter(!is.na(event_dt)) %>%
group_by(f.eid) %>% arrange(event_dt) %>% slice(1) %>% ungroup()
saveRDS(dkd_firstoccur,"generated_data/dkd_firstoccur.RDS")