2  Biobanks

r
---
title: "Cohort Characteristics for Multi-Biobank CHIP Study"
author: "Research Team"
format: 
  html:
    theme: cosmo
    toc: true
    code-fold: true
    fig-width: 8
    fig-height: 5
date: "April 20, 2025"
bibliography: references.bib
---



## Cohort Descriptions

The study utilized data from three large biobanks with diverse populations and comprehensive genomic data.

#| label: cohort-data #| include: false

3 Create a dataframe with cohort information

cohorts <- tribble( ~cohort, ~type, ~n_participants, ~seq_type, ~seq_depth, ~enrollment_start, ~enrollment_end, ~median_age, ~age_iqr_low, ~age_iqr_high, “All of Us”, “US-based”, 245388, “WGS”, 40, 2017, 2022, 53, 37, 65, “BioVU”, “US-based”, 107607, “WGS”, 35, 2006, 2023, 50, 34, 62, “UK Biobank”, “UK-based”, 454033, “WES”, 40, 2007, 2010, 58, 50, 63 )


### All of Us Research Program (AoU)

#| label: fig-aou #| fig-cap: “All of Us Research Program Cohort Overview” #| fig-height: 3

4 Extract the AoU data for visualization

aou <- cohorts %>% filter(cohort == “All of Us”)

5 Create a simple visualization for AoU

p1 <- ggplot() + annotate(“rect”, xmin = aou\(enrollment_start, xmax = aou\)enrollment_end, ymin = 0, ymax = 1, fill = “#3182bd”, alpha = 0.8) + annotate(“text”, x = mean(c(aou\(enrollment_start, aou\)enrollment_end)), y = 0.5, label = paste0(“Enrollment Period”, aou\(enrollment_start, "-", aou\)enrollment_end), color = “white”, fontface = “bold”) + scale_x_continuous(limits = c(2005, 2025), breaks = seq(2005, 2025, 5)) + scale_y_continuous(limits = c(0, 1)) + labs(title = “All of Us Research Program”, subtitle = paste0(format(aou$n_participants, big.mark = “,”), ” participants”), x = “Year”) + theme_minimal() + theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank())

p1


AoU is an ongoing US-based observational cohort study\^\[All of Us Research Program Investigators. The "All of Us" Research Program. N Engl J Med. 2019.\]. AoU whole genome sequencing (WGS) data with median sequencing depth of 40x was available for 245,388 participants who were enrolled from 2017 to 2022. These participants have linked health outcome data from participant survey questionnaires and electronic health records harmonized to the Observational Medical Outcomes Partnership (OMOP) Common Data Model (CDM) at enrollment and follow-up time points. The median age at enrollment for this cohort is 53 years old (interquartile range, 37 to 65).

### Vanderbilt BioVU

#| label: fig-biovu #| fig-cap: “BioVU Cohort Overview” #| fig-height: 3

6 Extract the BioVU data for visualization

biovu <- cohorts %>% filter(cohort == “BioVU”)

7 Create a simple visualization for BioVU

p2 <- ggplot() + annotate(“rect”, xmin = biovu\(enrollment_start, xmax = biovu\)enrollment_end, ymin = 0, ymax = 1, fill = “#31a354”, alpha = 0.8) + annotate(“text”, x = mean(c(biovu\(enrollment_start, biovu\)enrollment_end)), y = 0.5, label = paste0(“Enrollment Period”, biovu\(enrollment_start, "-", biovu\)enrollment_end), color = “white”, fontface = “bold”) + scale_x_continuous(limits = c(2005, 2025), breaks = seq(2005, 2025, 5)) + scale_y_continuous(limits = c(0, 1)) + labs(title = “Vanderbilt BioVU”, subtitle = paste0(format(biovu$n_participants, big.mark = “,”), ” participants”), x = “Year”) + theme_minimal() + theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank())

p2


BioVU is Vanderbilt's biorepository of DNA extracted from discarded blood collected during routine clinical testing and linked to de-identified medical records derived from Vanderbilt's electronic medical record\^\[Roden DM, Pulley JM, Basford MA, et al. Development of a large-scale de-identified DNA biobank to enable personalized medicine. Clin Pharmacol Ther. 2008;84(3):362-369.\]. WGS data was available for 107,607 adult participants enrolled from 2006 to 2023 with linked electronic health record data harmonized to the OMOP CDM at enrollment and each subsequent healthcare encounter. WGS was performed using Illumina PCR-free whole genome sequencing technology and sequenced on the NovaSeq platform to a median sequencing depth of 35x. The median age at enrollment for this cohort is 50 years old (interquartile range, 34 to 62).

### UK Biobank (UKB)

#| label: fig-ukb #| fig-cap: “UK Biobank Cohort Overview” #| fig-height: 3

8 Extract the UKB data for visualization

ukb <- cohorts %>% filter(cohort == “UK Biobank”)

9 Create a simple visualization for UKB

p3 <- ggplot() + annotate(“rect”, xmin = ukb\(enrollment_start, xmax = ukb\)enrollment_end, ymin = 0, ymax = 1, fill = “#756bb1”, alpha = 0.8) + annotate(“text”, x = mean(c(ukb\(enrollment_start, ukb\)enrollment_end)), y = 0.5, label = paste0(“Enrollment Period”, ukb\(enrollment_start, "-", ukb\)enrollment_end), color = “white”, fontface = “bold”) + scale_x_continuous(limits = c(2005, 2025), breaks = seq(2005, 2025, 5)) + scale_y_continuous(limits = c(0, 1)) + labs(title = “UK Biobank”, subtitle = paste0(format(ukb$n_participants, big.mark = “,”), ” participants”), x = “Year”) + theme_minimal() + theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank())

p3


UKB is a UK-based observational cohort study. UKB whole exome sequencing (WES) with median sequencing depth of 40x was available for 454,033 participants aged 40 to 70 at time of DNA collection\^\[Backman JD, Li AH, Marcketta A, et al. Exome sequencing and analysis of 454,787 UK Biobank participants. Nature. 2021;599(7886):628-634.\]. Participants were enrolled from 2007 to 2010 and have questionnaire, physical measurement, laboratory, and medical imaging data available at enrollment and follow-up time points\^\[Sudlow C, Gallacher J, Allen N, et al. UK Biobank: An Open Access Resource for Identifying the Causes of a Wide Range of Complex Diseases of Middle and Old Age. PLOS Med. 2015;12(3)

.\]. Health outcomes since enrollment are tracked from hospitalization general practice health records and death and cancer registries. The median age at enrollment for this cohort is 58 years old (interquartile range, 50 to 63).

## Comparison of Cohort Characteristics

#| label: fig-cohort-comparison #| fig-cap: “Comparative Analysis of Study Cohorts”

10 Part 1: Sample size comparison

p_size <- ggplot(cohorts, aes(x = cohort, y = n_participants, fill = cohort)) + geom_col() + scale_y_continuous(labels = comma) + scale_fill_viridis_d(option = “D”, begin = 0.3, end = 0.7) + labs(title = “Cohort Size”, y = “Number of Participants”) + theme_minimal() + theme(legend.position = “none”, axis.title.x = element_blank())

11 Part 2: Age distribution

cohorts_long <- cohorts %>% select(cohort, median_age, age_iqr_low, age_iqr_high) %>% pivot_longer(cols = c(median_age, age_iqr_low, age_iqr_high), names_to = “stat”, values_to = “age”)

p_age <- ggplot(cohorts, aes(x = cohort, y = median_age, color = cohort)) + geom_point(size = 3) + geom_errorbar(aes(ymin = age_iqr_low, ymax = age_iqr_high), width = 0.2) + scale_color_viridis_d(option = “D”, begin = 0.3, end = 0.7) + labs(title = “Age Distribution”, y = “Age (years)”) + theme_minimal() + theme(legend.position = “none”, axis.title.x = element_blank())

12 Part 3: Sequencing characteristics

p_seq <- ggplot(cohorts, aes(x = cohort, y = seq_depth, fill = seq_type)) + geom_col() + geom_text(aes(label = seq_type), position = position_stack(vjust = 0.5), color = “white”) + scale_fill_manual(values = c(“WGS” = “#2c7fb8”, “WES” = “#7fcdbb”)) + labs(title = “Sequencing Characteristics”, y = “Median Sequencing Depth (x)”) + theme_minimal() + theme(legend.position = “none”, axis.title.x = element_blank())

13 Combine plots

(p_size | p_age) / p_seq

#| label: tbl-cohort-comparison #| tbl-cap: “Detailed Comparison of Study Cohorts”

14 Create a detailed comparison table

cohorts %>% gt() %>% cols_label( cohort = “Cohort”, type = “Type”, n_participants = “Participants”, seq_type = “Sequencing”, seq_depth = “Depth (x)”, enrollment_start = “Start Year”, enrollment_end = “End Year”, median_age = “Median Age”, age_iqr_low = “Age IQR Low”, age_iqr_high = “Age IQR High” ) %>% tab_spanner( label = “Cohort Information”, columns = c(cohort, type, n_participants) ) %>% tab_spanner( label = “Genomic Data”, columns = c(seq_type, seq_depth) ) %>% tab_spanner( label = “Enrollment Period”, columns = c(enrollment_start, enrollment_end) ) %>% tab_spanner( label = “Age Distribution”, columns = c(median_age, age_iqr_low, age_iqr_high) ) %>% fmt_number( columns = n_participants, decimals = 0, use_seps = TRUE ) %>% cols_align( align = “center”, columns = everything() ) %>% tab_style( style = list( cell_fill(color = “#f7f7f7”), cell_text(weight = “bold”) ), locations = cells_column_labels() ) %>% tab_options( table.border.top.color = “black”, table.border.bottom.color = “black”, column_labels.border.bottom.color = “black”, column_labels.border.bottom.width = px(3) )


## Key Differences and Commonalities

#| label: fig-venn #| fig-cap: “Key Features of Each Cohort” #| fig-height: 4 #| eval: false

15 To include a Venn diagram, you would need the VennDiagram package

16 This is just placeholder code

library(VennDiagram) grid.newpage() draw.triple.venn( area1 = 245388, area2 = 107607, area3 = 454033, n12 = 0, n23 = 0, n13 = 0, n123 = 0, category = c(“All of Us”, “BioVU”, “UK Biobank”), fill = c(“#3182bd”, “#31a354”, “#756bb1”), alpha = 0.5, cat.cex = 1.5, cat.col = c(“#3182bd”, “#31a354”, “#756bb1”) )

#| label: fig-timeline #| fig-cap: “Enrollment and Follow-up Periods Across Cohorts”

17 Create a timeline dataframe

timeline <- tribble( ~cohort, ~event, ~year, “All of Us”, “Start”, 2017, “All of Us”, “End”, 2022, “All of Us”, “Latest Data”, 2022, “BioVU”, “Start”, 2006, “BioVU”, “End”, 2023, “BioVU”, “Latest Data”, 2023, “UK Biobank”, “Start”, 2007, “UK Biobank”, “End”, 2010, “UK Biobank”, “Latest Data”, 2020 )

18 Create a timeline visualization

ggplot(timeline, aes(x = year, y = cohort, color = event)) + geom_point(size = 4) + geom_line(aes(group = cohort), color = “gray”, linetype = “dashed”) + scale_color_manual(values = c(“Start” = “#4daf4a”, “End” = “#984ea3”, “Latest Data” = “#e41a1c”)) + scale_x_continuous(limits = c(2005, 2025), breaks = seq(2005, 2025, 2)) + labs(title = “Cohort Timeline”, x = “Year”, color = “Event”) + theme_minimal() + theme(panel.grid.minor = element_blank())


### Summary of Key Characteristics

The study leveraged three distinct biobanks with complementary strengths:

1.  

2.  **All of Us Research Program**: A recent US-based initiative with diverse participant demographics and comprehensive WGS data

3.  

4.  **BioVU**: A healthcare-based biorepository with long-term clinical data spanning 17 years and WGS data

5.  

6.  **UK Biobank**: A large population-based cohort with the longest follow-up period and WES data

7.  

Together, these cohorts provide a robust foundation for studying clonal hematopoiesis across diverse populations with different baseline characteristics and follow-up durations.

## Additional Information

To complete this documentation with proper references, create a `references.bib` file with the following entries:

(article?){aou_program, title={The “All of Us” Research Program}, author={{All of Us Research Program Investigators}}, journal={N Engl J Med}, year={2019} }

(article?){biovu_biobank, title={Development of a large-scale de-identified DNA biobank to enable personalized medicine}, author={Roden, Dan M and Pulley, Jill M and Basford, Melissa A and Bernard, Gordon R and Clayton, Ellen W and Balser, Jeffrey R and Masys, Daniel R}, journal={Clin Pharmacol Ther}, volume={84}, number={3}, pages={362–369}, year={2008} }

(article?){ukb_exome, title={Exome sequencing and analysis of 454,787 UK Biobank participants}, author={Backman, Joshua D and Li, Alexander H and Marcketta, Anthony and others}, journal={Nature}, volume={599}, number={7886}, pages={628–634}, year={2021} }

(article?){ukb_resource, title={UK Biobank: An Open Access Resource for Identifying the Causes of a Wide Range of Complex Diseases of Middle and Old Age}, author={Sudlow, Cathie and Gallacher, John and Allen, Naomi and others}, journal={PLOS Med}, volume={12}, number={3}, pages={e1001779}, year={2015} } ```