Last updated: 2025-09-09

Checks: 7 0

Knit directory: genomics_ancest_disease_dispar/

This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20220216) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 1d30df5. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .DS_Store
    Ignored:    .Rproj.user/
    Ignored:    data/.DS_Store
    Ignored:    data/gwas_catalog/
    Ignored:    output/gwas_study_info_cohort_corrected.csv
    Ignored:    output/gwas_study_info_trait_corrected.csv
    Ignored:    output/gwas_study_info_trait_ontology_info.csv
    Ignored:    output/gwas_study_info_trait_ontology_info_l1.csv
    Ignored:    output/gwas_study_info_trait_ontology_info_l2.csv
    Ignored:    output/trait_ontology/
    Ignored:    renv/

Untracked files:
    Untracked:  analysis/disease_burden.qmd
    Untracked:  data/gbd/
    Untracked:  data/who/

Unstaged changes:
    Modified:   analysis/disease_inves_by_ancest.Rmd
    Modified:   analysis/index.Rmd
    Modified:   analysis/level_1_disease_group.Rmd
    Modified:   analysis/level_2_disease_group.Rmd

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/non_ontology_trait_collapse.Rmd) and HTML (docs/non_ontology_trait_collapse.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 1d30df5 IJbeasley 2025-09-09 Include phenotypic abornomality in disease terms
html 1bc26c3 IJbeasley 2025-09-09 Build site.
Rmd 6f9b0f1 IJbeasley 2025-09-09 Include phenotypic abornomality in disease terms
html 8e4dd99 IJbeasley 2025-09-09 Build site.
html e6995cd IJbeasley 2025-09-08 Build site.
Rmd 7a2b203 IJbeasley 2025-09-08 workflowr::wflow_publish("analysis/non_ontology_trait_collapse.Rmd")
html 0a2d4ef IJbeasley 2025-09-08 Build site.
Rmd 6925922 IJbeasley 2025-09-08 workflowr::wflow_publish("analysis/non_ontology_trait_collapse.Rmd")
html e3badc3 IJbeasley 2025-09-08 Build site.
Rmd d4dc82c IJbeasley 2025-09-08 Small updates to disease trait grouping
html 5a1b600 IJbeasley 2025-09-07 Build site.
Rmd 39d92e6 IJbeasley 2025-09-07 Minor trait harmonization update
html 26e7c84 IJbeasley 2025-09-07 Build site.
Rmd 5510b11 IJbeasley 2025-09-07 Fixing data writing typo
html d252706 IJbeasley 2025-09-07 Build site.
Rmd cad3bf3 IJbeasley 2025-09-07 Separating disease grouping steps
html dcfc8e1 IJbeasley 2025-09-06 Build site.
Rmd dc84680 IJbeasley 2025-09-06 Updating trait collapsing once again
html 3584988 IJbeasley 2025-09-06 Build site.
Rmd 82b6e8a IJbeasley 2025-09-06 Update trait collapsing
html 13c5442 IJbeasley 2025-09-05 Build site.
Rmd b209d1f IJbeasley 2025-09-05 Even more trait collapsing

1 Set up

library(dplyr)
library(data.table)
library(ggplot2)
library(stringr)
gwas_study_info <- fread(here::here("output/gwas_study_info_trait_ontology_info.csv"))

2 Initial summary

2.1 Objectives of this analysis:

  • Collapsing and standardizing disease trait terms in GWAS study metadata without relying on ontology mappings.
  • Initial harmonization of disease trait terms (fixing spelling, collapsing studies that study different aspects of the same disease)

3 Number of studies per trait - before any grouping

Let’s look at the number of studies associated with each unique disease/trait term before any grouping or collapsing.

n_studies_trait = gwas_study_info |>
  dplyr::filter(DISEASE_STUDY == T) |>
  dplyr::select(all_disease_terms, PUBMED_ID) |>
  dplyr::distinct() |>
  dplyr::group_by(all_disease_terms) |>
  dplyr::summarise(n_studies = dplyr::n()) |>
  dplyr::arrange(desc(n_studies))

head(n_studies_trait)
# A tibble: 6 × 2
  all_disease_terms           n_studies
  <chr>                           <int>
1 , type 2 diabetes mellitus        125
2 , alzheimer disease                95
3 , major depressive disorder        85
4 , breast carcinoma                 84
5 , colorectal cancer                84
6 , schizophrenia                    83
dim(n_studies_trait)
[1] 3385    2

4 Disease trait collapsing and cleaning

# Basic cleaning of disease terms
# Removes trailing commas, 
gwas_study_info$all_disease_terms = sub(",$", "", gwas_study_info$all_disease_terms)

# trims whitespace
gwas_study_info$all_disease_terms = stringr::str_trim(gwas_study_info$all_disease_terms)

# remove apostrophes
gwas_study_info$all_disease_terms = stringr::str_remove_all(gwas_study_info$all_disease_terms, "'|’")

# initializes a new column (collected_all_disease_terms) to standardized traits
# collapse more traits 
gwas_study_info = gwas_study_info |> 
  mutate(collected_all_disease_terms = all_disease_terms) 

4.1 Where a study investigates a given aspect of of disease, reduce this to a study of this disease

4.1.1 e.g Susceptibility to X measurement, X disorder measurement etc.

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "^susceptibility to (.*?) measurement$", "\\1")

         ) |>
    mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "^susceptibility to (.*?) (.*?) measurement$", "\\1")

         ) |>
      mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "^susceptibility to (.*?) (.*?) infection$", "\\1")

         ) 


gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "susceptibility to viral and mycobacterial infections",
                    "viral and mycobacterial infections")

         ) |>
    mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "susceptibility to strep throat",
                    "strep throat")
         )




gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
          stringr::str_remove(collected_all_disease_terms, " symptom severity measurement")
         ) |>
  mutate(collected_all_disease_terms = 
          stringr::str_remove(collected_all_disease_terms, " severity measurement| exacerbation measurement")
         ) 



gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms =
           str_replace_all(collected_all_disease_terms,
                           "\\bdependence\\s+measurement\\b",
                           "dependence")) |> 
  mutate(collected_all_disease_terms =
           str_replace_all(collected_all_disease_terms,
                           "\\ballergy\\s+measurement\\b",
                           "allergy")) |> 
  mutate(collected_all_disease_terms =
           str_replace_all(collected_all_disease_terms,
                           "\\baddiction\\s+measurement\\b",
                           "addiction")) |> 
      mutate(collected_all_disease_terms =
           str_replace_all(collected_all_disease_terms,
                           "\\bsyndrome\\s+measurement\\b",
                           "syndrome")) |> 
      mutate(collected_all_disease_terms =
           str_replace_all(collected_all_disease_terms,
                           "\\bdisorder\\s+measurement\\b",
                           "disorder")) 

4.1.2 e.g age of onset of

gwas_study_info = gwas_study_info |>
      mutate(collected_all_disease_terms = 
         stringr::str_remove(collected_all_disease_terms,
                         pattern = "age of onset of "))


gwas_study_info = 
gwas_study_info |> 
 mutate(collected_all_disease_terms  = 
          stringr::str_replace_all(collected_all_disease_terms ,
                                  pattern = "age of onset of type 2 diabetes mellitus",
                                   "type 2 diabetes mellitus"
                          )  
        )


gwas_study_info = 
gwas_study_info |> 
 mutate(collected_all_disease_terms  = 
          stringr::str_replace_all(collected_all_disease_terms ,
                                  pattern = "age of onset of alzheimer disease",
                                   "alzheimers disease"
                          )  
        )

4.1.3 e.g. Family history of

gwas_study_info = gwas_study_info |>
      mutate(collected_all_disease_terms = 
         stringr::str_remove(collected_all_disease_terms,
                         pattern = "family history of "))


gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "family history of alzheimer’s disease",
                          "alzheimers disease"
         ))

4.1.4 Time to remission

4.1.4.1 COVID

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "time to remission of covid-19 symptoms",
                          "covid-19"
         ))

4.1.5 Symptom measurement

4.1.5.1 ADHD

gwas_study_info = gwas_study_info |> 
  mutate(collected_all_disease_terms = 
           stringr::str_replace_all(collected_all_disease_terms,
                            "adhd symptom measurement",
                            "adhd")
         )

4.1.5.2 Agoraphobia

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "agoraphobia symptom measurement",
                          "agoraphobia"
         ))

4.1.5.3 Alzheimer’s disease - neuropathological change

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "alzheimer disease neuropathological change",
                          "alzheimers disease"
         ))

4.1.5.4 Asthma

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "asthma exacerbation measurement",
                          "asthma"
         )) |>
  mutate(collected_all_disease_terms = 
           stringr::str_replace_all(collected_all_disease_terms,
                            "asthma symptoms measurement",
                            "asthma"
           )) 

4.1.5.5 COVID symptoms

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "covid-19 symptoms measurement",
                          "covid-19")
  )

4.1.5.6 Irritable bowel syndrome

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "irritable bowel syndrome symptom measurement",
                          "irritable bowel syndrome"
         ))

4.1.6 Obsessive compulsive disorder

4.1.6.1 Parkinson’s disease

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "parkinsons disease symptom measurement",
                          "parkinsons disease"
         ))

4.1.6.2 PTSD

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "post-traumatic stress disorder symptom measurement",
                          "post-traumatic stress disorder"
         ))

4.1.6.3 Respiratory symptom change

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "respiratory symptom change measurement" ,
                          "respiratory symptom measurement" 
         ))

4.1.7 Measurement

4.1.7.1 Anxiety disorder

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "anxiety disorder measurement",
                          "anxiety disorder"
         ))

4.1.7.2 Coronary atherosclerosis

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "coronary atherosclerosis measurement",
                          "coronary atherosclerosis")
  ) 

4.1.8 Insommnia

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "insomnia measurement",
                          "insomnia"
         ))

4.1.8.1 Lewy body dementia

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "lewy body dementia measurement",
                          "lewy body dementia"
         ))

4.1.8.2 Psychosis predisposition

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        stringr::str_replace_all(collected_all_disease_terms,
                         "psychosis predisposition measurement",
                         "psychosis predisposition")
        )

4.1.8.3 Sleep apnea measurement

gwas_study_info = gwas_study_info |>
        mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "sleep apnea measurement",
                          "sleep apnea"
         ))

4.1.8.4 Susceptibility to infectious disease

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        str_replace_all(collected_all_disease_terms, 
                    "susceptibility to infectious disease measurement",
                    "susceptibility to infectious disease")
         )

4.1.9 Substance abuse measurement

4.1.9.1 Alcohol

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "alcohol dependence measurement",
                          "alcohol dependence"
         ))

4.1.9.2 Cannibis

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "cannabis dependence measurement",
                          "cannabis dependence"
         ))

4.1.9.3 Cocaine

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "cocaine use disorder|cocaine dependence",
                          "cocaine-related disorders"
         ))

4.1.9.4 Nicotine

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "nicotine dependence symptom count",
                          "nicotine dependence"
         ))

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "nicotine withdrawal symptom count|nicotine withdrawal measurement",
                          "nicotine withdrawal"
         ))

4.2 Deal with basic synonyms

4.2.1 Carcinoma = Cancer

gwas_study_info = gwas_study_info |>
      mutate(collected_all_disease_terms = 
           stringr::str_replace_all(collected_all_disease_terms,
                            "\\bcarcinoma",
                            "cancer")
         )

gwas_study_info = gwas_study_info |>
      mutate(collected_all_disease_terms = 
           stringr::str_replace_all(collected_all_disease_terms,
                            "triple-negative breast cancer",
                            "breast cancer"
           ))

4.2.2 Coronary artery disease = coronary atherosclerosis

https://www.ebi.ac.uk/ols4/ontologies/efo/classes/http%253A%252F%252Fwww.ebi.ac.uk%252Fefo%252FEFO_0001645

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "coronary atherosclerosis",
                          "coronary artery disease"
         ))

4.2.3 Head and neck cancer = head and neck malignant neoplasia

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "head and neck malignant neoplasia",
                          "head and neck cancer"
         ))

4.2.4 Hepatitis virus infection = hepatitis infection

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "hepatitis a virus infection",
                          "hepatitis a infection"
         )) |>
      mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "hepatitis b virus infection",
                          "hepatitis b infection"
         )) |>
        mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "hepatitis c virus infection",
                          "hepatitis c infection"
         ))

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "chronic hepatitis c virus infection",
                          "chronic hepatitis, hepatitis c infection"
         )) |>
      mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "chronic hepatitis b virus infection",
                          "chronic hepatitis, hepatitis b infection"
         ))

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "hepatitis virus-related liver cancer",
                          "hepatitis, liver cancer"
         ))

4.2.5 HIV

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "hiv-1 infection",
                          "hiv infection"
         ))

4.2.6 Mumps virus infection = mumps

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "mumps virus infectious disease",
                          "mumps"
         ))

4.2.7 Renal cancer = kidney cancer

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "renal cancer",
                          "kidney cancer"
         ))

4.2.8 Rubella infect = rubella

gwas_study_info = gwas_study_info |>
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "rubella infection",
                          "rubella"
         ))
gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "multiple sclerosis symptom measurement",
                          "multiple sclerosis"
         ))  

4.2.9 Autism = Autism Spectrum Disorder = Asperger Syndrome

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        stringr::str_replace_all(collected_all_disease_terms,
                         "autism spectrum disorder",
                         "autism")
        ) |>
    mutate(collected_all_disease_terms = 
        stringr::str_replace_all(collected_all_disease_terms,
                         "asperger syndrome",
                         "autism")
        )

4.3 Type 1 diabetes = type 1 diabetes mellitus

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
        stringr::str_replace_all(collected_all_disease_terms,
                         "type 1 diabetes mellitus",
                         "type 1 diabetes")
        ) |>
    mutate(collected_all_disease_terms = 
        stringr::str_replace_all(collected_all_disease_terms,
                         "type 1 diabetes",
                         "type 1 diabetes mellitus")
        )

4.3.1 ADHD = attention deficit hyperactivity disorder

gwas_study_info = gwas_study_info |> 
    mutate(collected_all_disease_terms = 
           stringr::str_replace_all(collected_all_disease_terms,
                            "attention deficit hyperactivity disorder",
                            "adhd"
         ))

4.4 Narcolepsy = Narcolepsy without cataplexy

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms = 
         stringr::str_replace_all(collected_all_disease_terms,
                          "narcolepsy without cataplexy",
                          "narcolepsy"
         ))

4.5 Typos

4.5.1 Alzheimer -> alzheimers

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms =
         stringr::str_replace_all(collected_all_disease_terms,
                          "alzheimer disease",
                          "alzheimers disease"
         ))

4.5.2 Parkinson -> parkinsons

gwas_study_info = gwas_study_info |>
  mutate(collected_all_disease_terms =
         stringr::str_replace_all(collected_all_disease_terms,
                          "parkinson disease",
                          "parkinsons disease"
         ))

5 Putting it all together

gwas_study_info = gwas_study_info |>
  rowwise() |>
  mutate(
    collected_all_disease_terms = paste0(
      unique(unlist(stringr::str_split(collected_all_disease_terms, ", "))),
      collapse = ", "
    )
  ) |>
  ungroup()

           
gwas_study_info$collected_all_disease_terms = stringr::str_trim(gwas_study_info$collected_all_disease_terms)
gwas_study_info$collected_all_disease_terms = sub(",$", "", gwas_study_info$collected_all_disease_terms)



gwas_study_info$collected_all_disease_terms = stringr::str_replace_all(gwas_study_info$collected_all_disease_terms, "^, ", "")

5.1 Final summary - number of studies per trait - after harmonization

n_studies_trait = gwas_study_info |>
  dplyr::filter(DISEASE_STUDY == T) |>
  dplyr::select(collected_all_disease_terms, PUBMED_ID) |>
  dplyr::distinct() |>
  dplyr::group_by(collected_all_disease_terms) |>
  dplyr::summarise(n_studies = dplyr::n()) |>
  dplyr::arrange(desc(n_studies))

head(n_studies_trait)
# A tibble: 6 × 2
  collected_all_disease_terms n_studies
  <chr>                           <int>
1 type 2 diabetes mellitus          145
2 alzheimers disease                114
3 breast cancer                     113
4 asthma                            110
5 major depressive disorder         108
6 schizophrenia                     103
dim(n_studies_trait)
[1] 3091    2
diseases <- stringr::str_split(pattern = ", ", 
                               gwas_study_info$collected_all_disease_terms)  |> 
            unlist() |>
            stringr::str_trim()

length(unique(diseases))
[1] 2204

5.1.1 Save the updated gwas_study_info with harmonized disease terms

gwas_study_info <- fwrite(gwas_study_info,
                          here::here("output/gwas_study_info_trait_ontology_info.csv"))

sessionInfo()
R version 4.3.1 (2023-06-16)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS 15.6.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/Los_Angeles
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] stringr_1.5.1     ggplot2_3.5.2     data.table_1.17.8 dplyr_1.1.4      
[5] workflowr_1.7.1  

loaded via a namespace (and not attached):
 [1] gtable_0.3.6       jsonlite_2.0.0     compiler_4.3.1     renv_1.0.3        
 [5] promises_1.3.3     tidyselect_1.2.1   Rcpp_1.1.0         git2r_0.36.2      
 [9] callr_3.7.6        later_1.4.2        jquerylib_0.1.4    scales_1.4.0      
[13] yaml_2.3.10        fastmap_1.2.0      here_1.0.1         R6_2.6.1          
[17] generics_0.1.4     knitr_1.50         tibble_3.3.0       rprojroot_2.1.0   
[21] RColorBrewer_1.1-3 bslib_0.9.0        pillar_1.11.0      rlang_1.1.6       
[25] utf8_1.2.6         cachem_1.1.0       stringi_1.8.7      httpuv_1.6.16     
[29] xfun_0.52          getPass_0.2-4      fs_1.6.6           sass_0.4.10       
[33] cli_3.6.5          withr_3.0.2        magrittr_2.0.3     ps_1.9.1          
[37] grid_4.3.1         digest_0.6.37      processx_3.8.6     rstudioapi_0.17.1 
[41] lifecycle_1.0.4    vctrs_0.6.5        evaluate_1.0.4     glue_1.8.0        
[45] farver_2.1.2       whisker_0.4.1      rmarkdown_2.29     httr_1.4.7        
[49] tools_4.3.1        pkgconfig_2.0.3    htmltools_0.5.8.1