11.9 Urine ACR (Albumin:Creatinine Ratio)
This ratio will be needed to define micro/macroalbuminuria phenotypes. The calculated UACR values in UK Biobank lie between 0.15 and 2141.17. For UACR calculated from primary care albumin and creatinine, we only filter based on the original albumin and creatinine measurements. For primary care records of UACR, we filter the value to be below 1000, but not 0.
#Manually generate the UACRs from urine creatinine and albumin.
<- ualb %>%
ratio_manual inner_join(ucreat) %>%
mutate(UACR = ualb_mg_L/ucreat_umol_L *1000, manual=T)
#Extract UACR from primary care that is already calculated
<- gp_clinical %>%
ratio filter(grepl(UACR_codes, code, ignore.case=T)) %>%
mutate(UACR = coalesce(as.numeric(value1), as.numeric(value2), as.numeric(value3)),
micro = grepl("micro", term_description),
manual = F) %>%
filter(!is.na(UACR) & UACR != 0 & UACR < 1000) %>%
filter(!(value3 %in% c("%", "MEA001", "MEA083", "MEA096",
"MEA156", "MEA169", "MEA241",
"ml/min", "mg/L", "m1/min", "mmol/L",
"ng/mL","umol/L", "mg/l"))) %>%
select(-value1, -value2, -value3) %>%
distinct() %>%
::rename(code_uacr = code, term_description_uacr = term_description)
dplyr
#Combine the manually-calculated and already-calculated values of UACR
<- full_join(ratio, ratio_manual) %>%
UACR distinct(f.eid, event_dt, .keep_all = T)
%>% group_by(manual, term_description_uacr, term_description_ualb) %>%
UACR summarize(n=n(), mean = mean(UACR, na.rm=T)) %>%
arrange(desc(n)) %>% kable()
ggplot(data=UACR, aes(x=log10(UACR))) + geom_density() + theme_minimal()