\blandscape

library(magrittr)

Specify parameters

Specify data

As this is an illustrative example, we first must create a fake dataset (if using real data, skip this step).

ds_tb <- readRDS(url("https://dataverse.harvard.edu/api/access/datafile/4750597")) 
ds_tb %>%
    head() %>%
  ready4show::print_table(output_type_1L_chr = "HTML",
                          caption_1L_chr = "Input dataset",
                          mkdn_tbl_ref_1L_chr = "tab:inputds")

We note our use of synthetic data by creating an object use_fake_data_1L_lgl and setting it to TRUE. For real world application - set this variable to FALSE.

use_fake_data_1L_lgl <-  TRUE

Reporting details

We specify details about the authorship team of the study for which we are generating reports.

authors_tb <- ready4show::authors_tb
institutes_tb <- ready4show::institutes_tb

And add details about the main project report we are authoring.

header_yaml_args_ls = list(authors_tb = authors_tb,
                           institutes_tb = institutes_tb,
                           fl_nm_1L_chr = "header_common.yaml",
                           title_1L_chr = "A hypothetical study using fake data for instructional purposes only",
                           keywords_chr = c("this","is","a","replication","using","fake","data","do", "not","cite"))
nbr_of_digits_1L_int = 2L
output_types_ls = list(manuscript_1L_chr = "Word",
                       supplementary_1L_chr = "PDF")

Path parameters

path_params_ls <- list(path_from_top_level_1L_chr = normalizePath("../") %>% strsplit("\\\\") %>% purrr::pluck(1) %>% tail(1),
                  path_to_data_from_top_level_chr = "fake_data.rds", 
                  path_to_current_1L_chr = normalizePath(".") %>% strsplit("\\\\") %>% purrr::pluck(1) %>% tail(1))

Input dataset metadata

ds_descvs_ls <- list(candidate_predrs_chr = c("k10_int","psych_well_int"),
                     cohort_descv_var_nms_chr = c("d_age", "Gender", "d_relation_s","d_sexual_ori_s", "Region", "CALD", "d_studying_working"),
                     dictionary_tb = TTU::make_eq5d_ds_dict(ds_tb), 
                     id_var_nm_1L_chr = "uid", 
                     msrmnt_date_var_nm_1L_chr = "data_collection_dtm",
                     round_var_nm_1L_chr = "Timepoint", 
                     round_vals_chr = c("BL", "FUP"),
                     maui_item_pfx_1L_chr = "eq5dq_", 
                     utl_wtd_var_nm_1L_chr = "EQ5D_total_dbl", 
                     utl_unwtd_var_nm_1L_chr = "EQ5d_cumulative_dbl")

Analysis parameters

predictors_lup <- TTU::TTU_predictors_lup(TTU::make_pt_TTU_predictors_lup(short_name_chr = ds_descvs_ls$candidate_predrs_chr,
                                              long_name_chr = c("Kessler Psychological Distress - 10 Item Total Score",
                                                   "Overall Wellbeing Measure (Winefield et al. 2012)"),
                                              min_val_dbl = c(10,18),
                                              max_val_dbl = c(50,90),
                                              class_chr = "integer",
                                              increment_dbl = 1,
                                              class_fn_chr = "as.integer",
                                              mdl_scaling_dbl = 0.01,
                                              covariate_lgl = F))
analysis_params_ls <- list(ds_descvs_ls = ds_descvs_ls,
                           iters_1L_int = 4000L,
                           mdl_smry_ls = list(mdl_types_lup = TTU::mdl_types_lup,
                                              mdl_types_chr = TTU::mdl_types_lup$short_name_chr,
                                              choose_from_pfx_chr = c("GLM","OLS","BET"),
                                              folds_1L_int = 10L,
                                              max_nbr_of_boruta_mdl_runs_int = 300L),
                           nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                           output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                           predictors_lup = predictors_lup,
                           seed_1L_int = 12345,
                           use_fake_data_1L_lgl =  use_fake_data_1L_lgl,
                           prior_ls = NULL, 
                           control_ls = list(adapt_delta = 0.99))

Reporting details

rprt_lup <- TTU::rprt_lup 
file.create("aaaaaaaaaa.txt") 
paths_ls <- ready4show::write_main_outp_dir(path_params_ls, 
                                     use_fake_data_1L_lgl = use_fake_data_1L_lgl)
paths_ls$path_to_current_1L_chr <- path_params_ls$path_to_current_1L_chr

Output repositories

Provide details of dataverse dataset(s) to which results will be posted. If you do not permissions for any dataverse datasets, set dv_ls <- NULL.

dv_ls <- list(primary_dv_chr = c("fakes","https://doi.org/10.7910/DVN/612HDC"))

Primary Analysis

Run analysis

params_ls <- list(candidate_covar_nms_chr = c("d_sex_birth_s", "d_age",  "d_sexual_ori_s", "d_relation_s", "d_studying_working"),
                  ds_tb = ds_tb,
                  maui_domains_pfxs_1L_chr = NULL,
                  maui_itm_short_nms_chr = c("Mobility", "Self-care", "Activities","Pain","Anxiety"),
     maui_scoring_fn = function(data_tb,# Function must have these arguments in this order.
                                maui_item_pfx_1L_chr,
                                id_var_nm_1L_chr, 
                                utl_wtd_var_nm_1L_chr,
                                utl_unwtd_var_nm_1L_chr){
       require(eq5d)
      data_tb %>% 
        dplyr::rename_with(~stringr::str_replace(.x,maui_item_pfx_1L_chr,""),dplyr::starts_with(maui_item_pfx_1L_chr)) %>%
  dplyr::mutate(`:=`(!!rlang::sym(utl_wtd_var_nm_1L_chr), 
                     eq5d::eq5d(., country="UK", version = "5L", type = "CW"))) %>%
    dplyr::rename_with(~paste0(maui_item_pfx_1L_chr,.x),c("MO","SC","UA","PD","AD")) %>%
    dplyr::mutate(`:=`(!!rlang::sym(utl_unwtd_var_nm_1L_chr), 
        rowSums(dplyr::across(dplyr::starts_with(maui_item_pfx_1L_chr))))) %>% dplyr::filter(!is.na(!!rlang::sym(utl_unwtd_var_nm_1L_chr)))
     },
     prefd_covars_chr = NA_character_, 
     prefd_mdl_types_chr = c("GLM_GSN_LOG","OLS_CLL"),
     raw_ds_tfmn_fn = NULL,
     subtitle_1L_chr = "Methods Report 1: Analysis Program (Primary Analysis)",
     utl_class_fn_1L_chr = "as.numeric") %>%
  append(analysis_params_ls) %>%
  append(path_params_ls[1:2])
  ready4show::write_report(params_ls = params_ls,
                    paths_ls = paths_ls,
                    R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                    rprt_nm_1L_chr = "AAA_PMRY_ANLYS_MTH",
                    abstract_args_ls = NULL,
                    header_yaml_args_ls = header_yaml_args_ls,
                    rprt_lup = rprt_lup)

Report results

ready4show::write_rprt_with_rcrd(path_to_outp_fl_1L_chr = paste0(paths_ls$output_data_dir_1L_chr,"/I_ALL_OUTPUT_.RDS"), 
                     paths_ls = paths_ls,
                     R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                     header_yaml_args_ls = header_yaml_args_ls,
                     rprt_lup = rprt_lup, 
                     use_fake_data_1L_lgl = use_fake_data_1L_lgl,
                     subtitle_1L_chr = "Results Report 1: TTU Models (Primary Analysis)",
                     rprt_subtitle_1L_chr = "Methods Report 2: Reporting Program (Primary Analysis).",
                     rprt_nm_1L_chr = "AAA_TTU_MDL_CTG",
                     rcrd_nm_1L_chr = "AAA_RPRT_WRTNG_MTH",
                     output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                     rprt_output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                     nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                     abstract_args_ls = NULL,
                     rcrd_rprt_append_ls = path_params_ls[1:2])

Share (de-confidentialised) results

if(!is.null(dv_ls)){
  params_ls <- list(dv_ds_nm_and_url_chr = dv_ls$primary_dv_chr,
                              dv_mdl_desc_1L_chr = "This is a longitudinal transfer to utility model designed for use with the youthu R package.",
                              inc_fl_types_chr = ".pdf",
                              nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                              output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                              purge_data_1L_lgl = FALSE,
                              rprt_lup = rprt_lup,
                              subtitle_1L_chr = "Methods Report 3: Sharing Program (Primary Analysis)",
                              use_fake_data_1L_lgl = use_fake_data_1L_lgl) %>%
    append(path_params_ls[1:2])
  params_ls %>%
    ready4show::write_report(paths_ls = paths_ls,
                      R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                      rprt_nm_1L_chr = "AAA_SHARING_MTH",
                      abstract_args_ls = NULL,
                      header_yaml_args_ls = header_yaml_args_ls,
                      rprt_lup = TTU::transform_rprt_lup(rprt_lup, 
                                                         add_suplry_rprt_1L_lgl = F,
                                                         add_sharing_rprt_1L_lgl = T))
  ready4::write_to_dv_with_wait(dss_tb = tibble::tibble(ds_obj_nm_chr = "AAA_SHARING_MTH",
                                                        title_chr = params_ls$subtitle_1L_chr),
                                dv_nm_1L_chr = dv_ls$primary_dv_chr[1],
                                ds_url_1L_chr = dv_ls$primary_dv_chr[2],
                                parent_dv_dir_1L_chr = paths_ls$dv_dir_1L_chr,
                                paths_to_dirs_chr = paths_ls$reports_dir_1L_chr,
                                inc_fl_types_chr = params_ls$inc_fl_types_chr,
                                paths_are_rltv_1L_lgl = F)
}

Secondary Analysis A (Anxiety + Depression)

reference_1L_int <- 1
scndry_paths_ls <- TTU::write_scndry_analysis_dir(paths_ls,
                                             reference_1L_int = reference_1L_int)

Run analysis

TTU::write_scndry_analysis(analysis_params_ls = analysis_params_ls %>%
                             append(path_params_ls[1:2]),
                           candidate_covar_nms_chr = c("BADS", "SOFAS", "c_p_diag_s", "c_clinical_staging_s",
                                                       "d_age",  "d_sex_birth_s", "d_sexual_ori_s", "d_country_bir_s", "d_relation_s",
                                                       "d_studying_working"),
                           candidate_predrs_chr = c("SCARED","OASIS","GAD7"),
                           prefd_covars_chr = "BADS",
                           reference_1L_int = reference_1L_int,
                           subtitle_1L_chr = "Methods Report 4: Analysis Program (Secondary Analysis (A))",
                           header_yaml_args_ls = header_yaml_args_ls,
                           paths_ls = paths_ls,
                           R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                           rprt_lup = rprt_lup)

Report results

ready4show::write_rprt_with_rcrd(path_to_outp_fl_1L_chr = here::here(paths_ls$path_from_top_level_1L_chr,
                                                              paths_ls$write_to_dir_nm_1L_chr,
                                                              paste0("secondary_",reference_1L_int),
                                                              "Output","I_ALL_OUTPUT_.RDS"),
                          paths_ls = scndry_paths_ls,
                          R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                          header_yaml_args_ls = header_yaml_args_ls,
                          rprt_lup = rprt_lup,
                          use_fake_data_1L_lgl = use_fake_data_1L_lgl,
                          subtitle_1L_chr = "Results Report 2: TTU Models (Secondary Analysis A)",
                          rprt_subtitle_1L_chr = "Methods Report 5: Reporting Program (Secondary Analysis A).",
                          rprt_nm_1L_chr = "AAA_TTU_MDL_CTG",
                          rcrd_nm_1L_chr = "AAA_RPRT_WRTNG_MTH",
                          output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                          rprt_output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                          nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                          abstract_args_ls = NULL,
                          rcrd_rprt_append_ls = path_params_ls[1:2],
                          main_rprt_append_ls = list(existing_predrs_ls = readRDS(paste0(paths_ls$output_data_dir_1L_chr,
                                                                             "/I_ALL_OUTPUT_.RDS")) %>% 
                                          purrr::pluck("predr_vars_nms_ls")))

Share (de-confidentialised) results

if(!is.null(dv_ls$secondary_1_dv_chr)){
  params_ls <- list(dv_ds_nm_and_url_chr = dv_ls$secondary_1_dv_chr,
                              dv_mdl_desc_1L_chr = "This is a longitudinal transfer to utility model designed for use with the youthu R package.",
                              inc_fl_types_chr = ".pdf",
                              nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                              output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                              purge_data_1L_lgl = FALSE,
                              rprt_lup = rprt_lup,
                              subtitle_1L_chr = "Methods Report 6: Sharing Program (Secondary Analysis A)",
                              transform_paths_ls = list(fn = transform_paths_ls_for_scndry, #TTU::
                                                        args_ls = list(reference_1L_int = reference_1L_int,
                                                                       remove_prmry_1L_lgl = T)),
                              use_fake_data_1L_lgl = use_fake_data_1L_lgl) %>%
    append(path_params_ls[1:2])

    ready4show::write_report(params_ls = params_ls,
                      paths_ls = scndry_paths_ls[names(scndry_paths_ls) != "prmry_analysis_dir_nm_1L_chr"],
                      R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                      rprt_nm_1L_chr = "AAA_SHARING_MTH",
                      abstract_args_ls = NULL,
                      header_yaml_args_ls = header_yaml_args_ls,
                      rprt_lup = TTU::transform_rprt_lup(rprt_lup, 
                                                         add_suplry_rprt_1L_lgl = F,
                                                         add_sharing_rprt_1L_lgl = T))
    ready4::write_to_dv_with_wait(dss_tb = tibble::tibble(ds_obj_nm_chr = "AAA_SHARING_MTH",
                                                        title_chr = params_ls$subtitle_1L_chr),
                                dv_nm_1L_chr = dv_ls$primary_dv_chr[1],
                                ds_url_1L_chr = dv_ls$primary_dv_chr[2],
                                parent_dv_dir_1L_chr = paths_ls$dv_dir_1L_chr,
                                paths_to_dirs_chr = paths_ls$reports_dir_1L_chr,
                                inc_fl_types_chr = params_ls$inc_fl_types_chr,
                                paths_are_rltv_1L_lgl = F)
}

Secondary Analysis B (SOFAS)

Run analysis

reference_1L_int <- 2
scndry_paths_ls <- TTU::write_scndry_analysis_dir(paths_ls,
                                             reference_1L_int = reference_1L_int)
TTU::write_scndry_analysis(analysis_params_ls = analysis_params_ls %>%
                             append(path_params_ls[1:2]),
                           candidate_covar_nms_chr = c("d_sex_birth_s", "c_p_diag_s", "c_clinical_staging_s", "d_age",  
                                                       "d_sexual_ori_s", "d_country_bir_s", "d_relation_s", "d_studying_working"),
                           candidate_predrs_chr = "SOFAS",
                           prefd_covars_chr = NULL,
                           reference_1L_int = 2,
                           subtitle_1L_chr = "Methods Report 7: Analysis Program (Secondary Analysis (B))",
                           header_yaml_args_ls = header_yaml_args_ls,
                           paths_ls = paths_ls,
                           R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                           rprt_lup = rprt_lup)

Report results

ready4show::write_rprt_with_rcrd(path_to_outp_fl_1L_chr = here::here(paths_ls$path_from_top_level_1L_chr,
                                                              paths_ls$write_to_dir_nm_1L_chr,
                                                              paste0("secondary_",reference_1L_int),
                                                              "Output","I_ALL_OUTPUT_.RDS"),
                          paths_ls = scndry_paths_ls,
                          R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                          header_yaml_args_ls = header_yaml_args_ls,
                          rprt_lup = rprt_lup,
                          use_fake_data_1L_lgl = use_fake_data_1L_lgl,
                          subtitle_1L_chr = "Results Report 3: TTU Models (Secondary Analysis B)",
                          rprt_subtitle_1L_chr = "Methods Report 8: Reporting Program (Secondary Analysis B).",
                          rprt_nm_1L_chr = "AAA_TTU_MDL_CTG",
                          rcrd_nm_1L_chr = "AAA_RPRT_WRTNG_MTH",
                          output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                          rprt_output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                          nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                          abstract_args_ls = NULL,
                          rcrd_rprt_append_ls = path_params_ls[1:2],
                          main_rprt_append_ls = list(existing_predrs_ls = readRDS(paste0(paths_ls$output_data_dir_1L_chr,
                                                                                         "/I_ALL_OUTPUT_.RDS")) %>% 
                                                       purrr::pluck("predr_vars_nms_ls")))

Share (de-confidentialised) results

if(!is.null(dv_ls$secondary_2_dv_chr)){
  params_ls <- list(dv_ds_nm_and_url_chr = dv_ls$secondary_2_dv_chr,
                              dv_mdl_desc_1L_chr = "This is a longitudinal transfer to utility model designed for use with the youthu R package.",
                              inc_fl_types_chr = ".pdf",
                              nbr_of_digits_1L_int = nbr_of_digits_1L_int,
                              output_type_1L_chr = output_types_ls$supplementary_1L_chr,
                              purge_data_1L_lgl = FALSE,
                              rprt_lup = rprt_lup,
                              subtitle_1L_chr = "Methods Report 9: Sharing Program (Secondary Analysis B)",
                              transform_paths_ls = list(fn = TTU::transform_paths_ls_for_scndry, 
                                                        args_ls = list(reference_1L_int = reference_1L_int,
                                                                       remove_prmry_1L_lgl = T)),
                              use_fake_data_1L_lgl = use_fake_data_1L_lgl) %>%
    append(path_params_ls[1:2])

    ready4show::write_report(params_ls = params_ls,
                      paths_ls = scndry_paths_ls[names(scndry_paths_ls) != "prmry_analysis_dir_nm_1L_chr"],
                      R_fl_nm_1L_chr = paths_ls$R_fl_nm_1L_chr,
                      rprt_nm_1L_chr = "AAA_SHARING_MTH",
                      abstract_args_ls = NULL,
                      header_yaml_args_ls = header_yaml_args_ls,
                      rprt_lup = TTU::transform_rprt_lup(rprt_lup, 
                                                         add_suplry_rprt_1L_lgl = F,
                                                         add_sharing_rprt_1L_lgl = T))
      ready4::write_to_dv_with_wait(dss_tb = tibble::tibble(ds_obj_nm_chr = "AAA_SHARING_MTH",
                                                        title_chr = params_ls$subtitle_1L_chr),
                                dv_nm_1L_chr = dv_ls$primary_dv_chr[1],
                                ds_url_1L_chr = dv_ls$primary_dv_chr[2],
                                parent_dv_dir_1L_chr = paths_ls$dv_dir_1L_chr,
                                paths_to_dirs_chr = paths_ls$reports_dir_1L_chr,
                                inc_fl_types_chr = params_ls$inc_fl_types_chr,
                                paths_are_rltv_1L_lgl = F)
}

Render Manuscript

if(!use_fake_data_1L_lgl){
  var_nm_change_lup <- tibble::tibble(old_nms_chr = c("PHQ9","GAD7"),
                                    new_nms_chr = c("PHQ-9", "GAD-7"))
study_descs_ls <- TTU::make_study_descs_ls(health_utl_nm_1L_chr = "AQol-6D",
                       time_btwn_bl_and_fup_1L_chr = "three months",
                       predr_ctgs_ls = list(`psychological distress` = c("K6"),
                                            depression =  c("BADS","PHQ9"),
                                            anxiety =  c("GAD7","OASIS","SCARED")))
spine_of_results_ls <- TTU::make_results_ls_spine(output_data_dir_1L_chr = paths_ls$output_data_dir_1L_chr,
                                   var_nm_change_lup = var_nm_change_lup,
                                   study_descs_ls = study_descs_ls,
                                   nbr_of_digits_1L_int = 2L)
cs_ts_ratios_tb = tibble::tibble(predr_nm_chr = c("K6","depression measurements", "anxiety measurements"),
                                 ratios_chr = c(paste0("about ",round(spine_of_results_ls$mdl_coef_ratios_ls$`psychological distress`,2)),
                                                paste0(round(mean(spine_of_results_ls$mdl_coef_ratios_ls$depression),2)),
                                                paste0(round(min(spine_of_results_ls$mdl_coef_ratios_ls$anxiety),2)," or over")
                                 ))
ctgl_vars_regrouping_ls = list('Primary Diagnosis' = list(anxdpr = list(name_1L_chr = "anxiety/depression",
                                                                          ctgs_chr = c("Anxiety", "Depression", "Depression and Anxiety"))),
                                 'Clinical Stage' = list(early = list(name_1L_chr = "early (prior to first episode of a serious mental disorder) clinical stages",
                                                                      ctgs_chr = c("0-1a","1b"))))
sig_covars_some_predrs_mdls_tb = tibble::tibble(covars_ls = list(c("No other confounding factor"),
                                                                                  c("sex at birth"),
                                                                                                     c("primary diagnosis", "clinical staging","age")),
                                                                 predrs_mdls_ls = list(c("PHQ-9"), c("K6"),c("anxiety and depression measurements other than PHQ-9")),
                                                                 sig_thresh_dbl = c(NA_real_,0.01,NA_real_),
                                                                 assn_strgth_chr = c(NA_character_,NA_character_,"weakly"))
results_ls <- TTU::make_results_ls(spine_of_results_ls,
                                   cs_ts_ratios_tb = cs_ts_ratios_tb,
                                   ctgl_vars_regrouping_ls = ctgl_vars_regrouping_ls,
                                   sig_covars_some_predrs_mdls_tb = sig_covars_some_predrs_mdls_tb,
                                   sig_thresh_covars_1L_chr = "0.005")
saveRDS(results_ls,paste0(paths_ls$output_data_dir_1L_chr,"/results_ls.RDS"))
  rmarkdown::render("AQoL_VIH/AQoL_VIH.Rmd",
                    output_format = NULL,
                    params = list(figures_in_body_lgl = F,
                                  output_type_1L_chr = "Word",
                                  results_ls = results_ls,
                                  tables_in_body_lgl = F),
                    output_file = paste0("AQoL_VIH", ".docx"),
                    output_dir = paths_ls$reports_dir_1L_chr)
}

Purge dataset copies

TTU::write_to_delete_ds_copies(paths_ls)

\elandscape



ready4-dev/TTU documentation built on July 2, 2024, 8:12 a.m.