Last updated: 2025-03-27

Checks: 6 1

Knit directory: hruban_wflow/

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.


The R Markdown file has staged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish to commit the R Markdown file and build the HTML.

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(20250319) 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 6dc79eb. 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:    code/rlucas/.DS_Store
    Ignored:    data/estimates/.Rapp.history

Untracked files:
    Untracked:  README.Rmd
    Untracked:  code/pivot_wider_pacto.R
    Untracked:  extdata/
    Untracked:  output/process_tcga_beta.Rmd/

Unstaged changes:
    Modified:   .gitignore
    Modified:   README.md

Staged changes:
    Modified:   analysis/about.Rmd
    New:        analysis/ext-fig1.Rmd
    New:        analysis/ext-fig10.Rmd
    New:        analysis/ext-fig11.Rmd
    New:        analysis/ext-fig12.Rmd
    New:        analysis/ext-fig13.Rmd
    New:        analysis/ext-fig14.Rmd
    New:        analysis/ext-fig15.Rmd
    New:        analysis/ext-fig16a.Rmd
    New:        analysis/ext-fig16b.Rmd
    New:        analysis/ext-fig17.Rmd
    New:        analysis/ext-fig18.Rmd
    New:        analysis/ext-fig19.Rmd
    New:        analysis/ext-fig20.Rmd
    New:        analysis/ext-fig21a.Rmd
    New:        analysis/ext-fig21b.Rmd
    New:        analysis/ext-fig22a.Rmd
    New:        analysis/ext-fig22b.Rmd
    New:        analysis/ext-fig23a.Rmd
    New:        analysis/ext-fig23b.Rmd
    New:        analysis/ext-fig24.Rmd
    New:        analysis/ext-fig2a.Rmd
    New:        analysis/ext-fig2b.Rmd
    New:        analysis/ext-fig3.Rmd
    New:        analysis/ext-fig4.Rmd
    New:        analysis/ext-fig5.Rmd
    New:        analysis/ext-fig6.Rmd
    New:        analysis/ext-fig7.Rmd
    New:        analysis/ext-fig8.Rmd
    New:        analysis/ext-fig9.Rmd
    New:        analysis/fig1a.Rmd
    New:        analysis/fig1b.Rmd
    New:        analysis/fig2a.Rmd
    New:        analysis/fig2b.Rmd
    New:        analysis/fig2c.Rmd
    New:        analysis/fig3a.Rmd
    New:        analysis/fig3b.Rmd
    New:        analysis/fig4.Rmd
    New:        analysis/fig5.Rmd
    New:        analysis/fig6a.Rmd
    New:        analysis/fig6b.Rmd
    New:        analysis/fig6c.Rmd
    New:        analysis/fig7a.Rmd
    New:        analysis/fig7b.Rmd
    New:        analysis/fig8.Rmd
    New:        analysis/fig9a.Rmd
    New:        analysis/fig9b.Rmd
    Modified:   analysis/index.Rmd
    Modified:   analysis/license.Rmd
    New:        code/functions.R
    New:        code/hr_plot_funcs.R
    New:        code/liver.tools/DESCRIPTION
    New:        code/liver.tools/NAMESPACE
    New:        code/liver.tools/R/functions.R
    New:        code/liver.tools/R/help.R
    New:        code/liver.tools/man/liver.tools.Rd
    New:        code/liver.tools/zzz.R
    New:        code/process_ab.Rmd
    New:        code/process_tcga_beta.Rmd
    New:        code/rlucas/DESCRIPTION
    New:        code/rlucas/NAMESPACE
    New:        code/rlucas/R/functions.R
    New:        code/rlucas/R/help.R
    New:        code/rlucas/data-derived/SummarizedExperiment.R
    New:        code/rlucas/data/lucas_5mb.rda
    New:        code/rlucas/data/metadata.rda
    New:        code/rlucas/data/prediction_lucas.rda
    New:        code/rlucas/data/se.rda
    New:        code/rlucas/data/valid_metadata.rda
    New:        code/rlucas/inst/extdata/survival_analysis_samples.xlsx
    New:        code/rlucas/man/rlucas.Rd
    New:        code/useful.stuff.aa/DESCRIPTION
    New:        code/useful.stuff.aa/NAMESPACE
    New:        code/useful.stuff.aa/R/convenience.R
    New:        code/useful.stuff.aa/R/models.R
    New:        code/useful.stuff.aa/data/liver_meta.rda
    New:        code/useful.stuff.aa/data/lucas_meta.rda
    New:        code/utility_funcs.R
    New:        data/120122_mutations.csv
    New:        data/CA199.csv
    New:        data/CP_PAC_artemis.xlsx
    New:        data/CheckPAC_clinical_annotated011622.xlsx
    New:        data/Checkpac_Test.csv
    New:        data/Expected.csv
    New:        data/ID_comparison.xlsx
    New:        data/Locked_Models/ARTEMIS_DELFI_SSls_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_DELFI_raw_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_Mathios_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_single_DELFI_SSLs_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_single_DELFI_raw_Ensemble.rds
    New:        data/Locked_Models/ARTEMIS_single_Mathios_Ensemble.rds
    New:        data/Locked_Models/Epi_ssl.rds
    New:        data/Locked_Models/LINE_ssl.rds
    New:        data/Locked_Models/LTR_ssl.rds
    New:        data/Locked_Models/Mathios_DELFI.rds
    New:        data/Locked_Models/RNA_TE_ssl.rds
    New:        data/Locked_Models/Ratios_ssl.rds
    New:        data/Locked_Models/SINE_ssl.rds
    New:        data/Locked_Models/Sat_ssl.rds
    New:        data/Locked_Models/zscores_ssl.rds
    New:        data/PACTO Masterfile.xlsx
    New:        data/PACTO_BL_EOT_EOS_PFS_TA_jh.xlsx
    New:        data/Test_set_pacto.csv
    New:        data/allfeatures_pacto.5mb.hg19.csv
    New:        data/artemis.csv
    New:        data/barv1.csv
    New:        data/cellularity.csv
    New:        data/checkpac_5mb_bins/CGH16N_16_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_17_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_18_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_19_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_20_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_21_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_22_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_23_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_24_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_25_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGH16N_26_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P8_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA217P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA218P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA218P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA219P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA220P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA220P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA220P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA221P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA221P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA221P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P10_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P11_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P12_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P13_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P14_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P15_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P16_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P17_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P8_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P9_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA222P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P10_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P11_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P12_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P14_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P15_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P16_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P17_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P18_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P8_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P9_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA223P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P10_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P11_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P12_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P13_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P14_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P15_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P16_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P17_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P18_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P19_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P20_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P21_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P22_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P23_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P24_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P25_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P8_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P9_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA224P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA226P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA226P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA226P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA765P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA765P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA765P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA766P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA766P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA767P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA768P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA769P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA769P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA770P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA771P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA771P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA771P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA772P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA772P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA772P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA772P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA773P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA773P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA773P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA773P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA774P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA774P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA775P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA775P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA775P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA775P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA775P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA776P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA776P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA776P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA776P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA776P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA777P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA777P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA778P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA778P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA778P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA779P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA779P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA779P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA779P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA780P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA780P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P3_1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA781P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA782P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA784P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA784P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA784P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA785P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA786P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA786P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA786P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA786P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P10_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P11_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P12_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P9_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA787P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA788P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA788P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA788P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA788P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA789P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA789P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA789P7_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA789P8_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA789P9_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA790P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA790P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA790P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA790P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA791P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA791P2_1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA791P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA792P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA792P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA792P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA793P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA793P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA793P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA794P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA796P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA796P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA796P_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P2_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P3_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P4_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P5_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P6_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P7_1_5mb.hg19.csv
    New:        data/checkpac_5mb_bins/CGPLPA797P_5mb.hg19.csv
    New:        data/checkpac_baseline_p2_dates.csv
    New:        data/checkpac_bins.csv
    New:        data/checkpac_ca199.csv
    New:        data/checkpac_ca199_baseline_p4_dates.csv
    New:        data/checkpac_features.csv
    New:        data/checkpac_plasma_manifest.xlsx
    New:        data/clinical_073123.xlsx
    New:        data/combined_bins_102324.rds
    New:        data/df_results_CAIRO5_2_6_ checkpac_ pacto.tsv
    New:        data/estimates/CGPLPA217T.cncf.tsv
    New:        data/estimates/CGPLPA217T.facets.rds
    New:        data/estimates/CGPLPA218T_rep.cncf.tsv
    New:        data/estimates/CGPLPA218T_rep.facets.rds
    New:        data/estimates/CGPLPA219T.cncf.tsv
    New:        data/estimates/CGPLPA219T.facets.rds
    New:        data/estimates/CGPLPA220T.cncf.tsv
    New:        data/estimates/CGPLPA220T.facets.rds
    New:        data/estimates/CGPLPA221T.cncf.tsv
    New:        data/estimates/CGPLPA221T.facets.rds
    New:        data/estimates/CGPLPA222T.cncf.tsv
    New:        data/estimates/CGPLPA222T.facets.rds
    New:        data/estimates/CGPLPA223T.cncf.tsv
    New:        data/estimates/CGPLPA223T.facets.rds
    New:        data/estimates/CGPLPA224T.cncf.tsv
    New:        data/estimates/CGPLPA224T.facets.rds
    New:        data/estimates/CGPLPA225T.cncf.tsv
    New:        data/estimates/CGPLPA225T.facets.rds
    New:        data/estimates/CGPLPA226T.cncf.tsv
    New:        data/estimates/CGPLPA226T.facets.rds
    New:        data/estimates/CGPLPA765T1.cncf.tsv
    New:        data/estimates/CGPLPA765T1.facets.rds
    New:        data/estimates/CGPLPA766T1.cncf.tsv
    New:        data/estimates/CGPLPA766T1.facets.rds
    New:        data/estimates/CGPLPA767T2.cncf.tsv
    New:        data/estimates/CGPLPA767T2.facets.rds
    New:        data/estimates/CGPLPA768T1.cncf.tsv
    New:        data/estimates/CGPLPA768T1.facets.rds
    New:        data/estimates/CGPLPA769T1.cncf.tsv
    New:        data/estimates/CGPLPA769T1.facets.rds
    New:        data/estimates/CGPLPA771T3.cncf.tsv
    New:        data/estimates/CGPLPA771T3.facets.rds
    New:        data/estimates/CGPLPA772T2.cncf.tsv
    New:        data/estimates/CGPLPA772T2.facets.rds
    New:        data/estimates/CGPLPA773T3.cncf.tsv
    New:        data/estimates/CGPLPA773T3.facets.rds
    New:        data/estimates/CGPLPA774T1.cncf.tsv
    New:        data/estimates/CGPLPA774T1.facets.rds
    New:        data/estimates/CGPLPA775T3.cncf.tsv
    New:        data/estimates/CGPLPA775T3.facets.rds
    New:        data/estimates/CGPLPA777T3.cncf.tsv
    New:        data/estimates/CGPLPA777T3.facets.rds
    New:        data/estimates/CGPLPA779T.cncf.tsv
    New:        data/estimates/CGPLPA779T.facets.rds
    New:        data/estimates/CGPLPA780T3.cncf.tsv
    New:        data/estimates/CGPLPA780T3.facets.rds
    New:        data/estimates/CGPLPA781T.cncf.tsv
    New:        data/estimates/CGPLPA781T.facets.rds
    New:        data/estimates/CGPLPA783T.cncf.tsv
    New:        data/estimates/CGPLPA783T.facets.rds
    New:        data/estimates/CGPLPA785T.cncf.tsv
    New:        data/estimates/CGPLPA785T.facets.rds
    New:        data/estimates/CGPLPA786T.cncf.tsv
    New:        data/estimates/CGPLPA786T.facets.rds
    New:        data/estimates/CGPLPA787T.cncf.tsv
    New:        data/estimates/CGPLPA787T.facets.rds
    New:        data/estimates/CGPLPA788T1.cncf.tsv
    New:        data/estimates/CGPLPA788T1.facets.rds
    New:        data/estimates/CGPLPA789T3.cncf.tsv
    New:        data/estimates/CGPLPA789T3.facets.rds
    New:        data/estimates/CGPLPA790T.cncf.tsv
    New:        data/estimates/CGPLPA790T.facets.rds
    New:        data/estimates/CGPLPA791T1.cncf.tsv
    New:        data/estimates/CGPLPA791T1.facets.rds
    New:        data/estimates/CGPLPA792T1.cncf.tsv
    New:        data/estimates/CGPLPA792T1.facets.rds
    New:        data/estimates/CGPLPA794T.cncf.tsv
    New:        data/estimates/CGPLPA794T.facets.rds
    New:        data/estimates/CGPLPA795T1.cncf.tsv
    New:        data/estimates/CGPLPA795T1.facets.rds
    New:        data/estimates/CGPLPA796T1.cncf.tsv
    New:        data/estimates/CGPLPA796T1.facets.rds
    New:        data/estimates/CGPLPA797T1.cncf.tsv
    New:        data/estimates/CGPLPA797T1.facets.rds
    New:        data/fig2c_p2_data.rds
    New:        data/for_leal_plot_042324.xlsx
    New:        data/fp2_lucas_healthy.csv
    New:        data/i07_input.xlsx
    New:        data/loadings.rds
    New:        data/long_bins.csv
    New:        data/pacto_5mb_bins/CGH17N_17_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_18_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_19_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_20_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_21_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_22_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_23_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_24_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_25_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_26_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_27_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_28_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_29_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGH17N_30_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA248P_5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA639P_1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P10_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P11_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P12_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P13_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P14_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P8_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P9_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA815P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA859P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P10_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P11_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P12_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P13_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P14_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P15_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P8_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P9_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA860P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA862P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA862P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA864P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA864P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA864P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA864P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA864P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA866P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P10_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P11_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P12_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P13_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P14_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P15_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P16_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P2_1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P9_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA868P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA869P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA869P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA871P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA871P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA871P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA871P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA871P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA872P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA878P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA879P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA880P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA880P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA880P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA885P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA885P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA885P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA885P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA885P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA886P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA887P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA887P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA888P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA888P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA888P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA888P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA888P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA890P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA890P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA890P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA890P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA890P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA892P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA894P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA894P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA894P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P6_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P7_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA895P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA896P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA896P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA897P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA897P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA897P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA897P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA897P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA898P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA899P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA899P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA899P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA899P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA900P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA900P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA900P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA900P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA900P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA901P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA901P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA901P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA901P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA901P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA902P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA902P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA902P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA902P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA902P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA903P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA903P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA903P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA903P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA903P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA904P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA904P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA904P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA905P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA905P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA905P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA905P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA905P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA906P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA906P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA906P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA907P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA907P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA907P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA909P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA909P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA909P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA910P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA911P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA911P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA911P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P3_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P4_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P5_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA912P_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA913P1_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA913P2_5mb.hg19.csv
    New:        data/pacto_5mb_bins/CGPLPA913P_5mb.hg19.csv
    New:        data/pacto_bins.csv
    New:        data/pacto_features.csv
    New:        data/sel_chr.txt
    New:        data/supplementary_tables.xlsx
    New:        data/tumor_tmb.txt

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.


There are no past versions. Publish this analysis with wflow_publish() to start tracking its development.


Tree plot showing WGMAF input criteria and response for each patient. The section above the dashed line describes evaluable patients, while the section below the dashed line shows patients who were not evaluable due to unavailable tumor or plasma samples, or an insufficient number of somatic mutations found in tumor. Number of somatic mutations identified in tumors are listed to the left of the tree plot in descending order, colored by mutation type. Baseline MAF is plotted on the left side of tree plot and on-treatment MAF is plotted on the right side. The central spine of the tree plot shows the tumor cellularity using two methods, pathological cellularity evaluated from H&E sample and cellularity assessed from molecular sequencing data, as well as BOR RECIST for each patient.

library(tidyverse)
library(readxl)
library(here)
source(here("code/utility_funcs.R"))
#----------------------------------------------------------------------------------
# Prepare the data
#----------------------------------------------------------------------------------
# Tumor mutations
tumor_mut<- read_excel(here("data/i07_input.xlsx"),sheet="tumor_filtered_sbs") %>%
             rowwise() %>%
             mutate(total = sum(c_across(3:8))) %>%
             ungroup()

# Plasma mutations
plasm_mut <- read_excel(here("data/i07_input.xlsx"),sheet="plasma_mafs") %>%
  drop_na(patient_id)
plasm_mut$date_blood_draw<-as.Date(plasm_mut$date_blood_draw)

# Pathological cellularity
path_cell <- read_excel(here("data/i07_input.xlsx"),sheet="cellularity_p", range=c("A1:H38")) %>%
    rename(patient_id = CGID, cellularity=Path_Cellularity) %>%
    select(patient_id, cellularity) %>%
    mutate(cellularity = as.numeric(cellularity)/100)
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `cellularity = as.numeric(cellularity)/100`.
Caused by warning:
! NAs introduced by coercion
# Facets cellularity
fact_cell<- read_excel(here("data/i07_input.xlsx"),sheet="facets_summary") %>%
    select(patient_id = id, cellularity = purity, emflags) %>%
    mutate(patient_id = substring(patient_id, 1, 9))
fact_cell$cellularity<-as.numeric(fact_cell$cellularity)
Warning: NAs introduced by coercion
# Best RECIST response
best_resp <- read_excel(here("data/i07_input.xlsx"),sheet="CheckPAC_DATA4") %>%
             select(subject_id = StudySubjectID,
                    bor = BOR_RECIST) %>%
             mutate(bor = bor_labels(bor)) %>%
             inner_join(read_excel(here("data/i07_input.xlsx"), sheet="ID_comparison") %>%
                    filter(!unlist(lapply(CGID, function(x) any(str_detect(x, c("CGPLPA225", "CGPLPA783", "CGPLPA795")))))) %>%
                    select(patient_id = CGID, subject_id = StudySubjectID) %>%
                    mutate(patient_id = substring(patient_id, 1, 9))) %>%
             mutate(bor = ifelse(bor == "Not evaluable", "NE", bor))
New names:
Joining with `by = join_by(subject_id)`
• `` -> `...32`
# Baseline and on-treatment blood draw dates
blot_date <- read_excel(here("data/i07_input.xlsx"),
                        sheet = "baseline_p2_dates") %>%
             mutate(tx_start_date = as.Date(tx_start_date),
                    ct_flwup_date = excel_date(ct_flwup_date),
                    baseline = excel_date(baseline),
                    endpoint = excel_date(endpoint))
Warning: There were 3 warnings in `mutate()`.
The first warning was:
ℹ In argument: `ct_flwup_date = excel_date(ct_flwup_date)`.
Caused by warning in `as.Date()`:
! NAs introduced by coercion
ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
#----------------------------------------------------------------------------------
# Patient selection for analysis
#----------------------------------------------------------------------------------
# (1) Patients with tumor mutations > 50 AND on-treatment blood draws
anlys_pat <- intersect(pull(filter(tumor_mut, total > 50), patient_id), 
                       pull(drop_na(blot_date, endpoint), patient_id)) 
lefto_pat <- setdiff(pull(blot_date, patient_id), anlys_pat)

# (2) Order patients based on on-treatment plasma mutations
ot_plasm_mut <- plasm_mut %>%
    select(patient_id, date_blood_draw, mf) %>%
    inner_join(pivot_longer(select(blot_date, patient_id, baseline, endpoint),
                            cols = -patient_id,
                            names_to = "timepoint",
                            values_to = "date_blood_draw")) %>%
    filter(timepoint == "endpoint")
Joining with `by = join_by(patient_id, date_blood_draw)`
order_pmt <- ot_plasm_mut %>%
             arrange(desc(mf)) %>%
             pull(patient_id)

# (3) Order left-out patients based on tumor mutations
order_tmt <- tumor_mut %>%
             arrange(total) %>%
             pull(patient_id)

# (4) Add the remaining patients without on-treatment plasma mutations information         
order_std <- c(setdiff(lefto_pat, union(order_tmt, order_pmt)),
               intersect(order_tmt[which(!order_tmt %in% order_pmt)], lefto_pat),
               intersect(order_pmt[which(!order_pmt %in% order_tmt)], lefto_pat),
               order_pmt)

# (4) Split the order into two groups
anlys_ord <- unlist(lapply(order_std, function(x) if(x %in% anlys_pat) x))
lefto_ord <- unlist(lapply(order_std, function(x) if(x %in% lefto_pat) x))

#----------------------------------------------------------------------------------
# Split the plasma mutations into baseline and on-treatment
#----------------------------------------------------------------------------------
plasm_mut_basl <- inner_join(plasm_mut, rename(drop_na(blot_date, baseline), date_blood_draw=baseline))
Joining with `by = join_by(patient_id, date_blood_draw)`
plasm_mut_ontr <- inner_join(plasm_mut, rename(drop_na(blot_date, endpoint), date_blood_draw=endpoint))
Joining with `by = join_by(patient_id, date_blood_draw)`
#----------------------------------------------------------------------------------
# Split the data into patients analyzed and left out 
#----------------------------------------------------------------------------------
## Tumor mutations
tumor_mut_all1 <- left_join(tibble(patient_id = anlys_ord), tumor_mut)
Joining with `by = join_by(patient_id)`
tumor_mut_all2 <- left_join(tibble(patient_id = lefto_ord), tumor_mut)
Joining with `by = join_by(patient_id)`
## Plasma mutations
### Baseline
plasm_mut_bsl1 <- left_join(tibble(patient_id = anlys_ord), plasm_mut_basl)
Joining with `by = join_by(patient_id)`
plasm_mut_bsl2 <- left_join(tibble(patient_id = lefto_ord), plasm_mut_basl)
Joining with `by = join_by(patient_id)`
### On-treatment
plasm_mut_ont1 <- left_join(tibble(patient_id = anlys_ord), plasm_mut_ontr)
Joining with `by = join_by(patient_id)`
plasm_mut_ont2 <- left_join(tibble(patient_id = lefto_ord), plasm_mut_ontr)
Joining with `by = join_by(patient_id)`
## Cellularity
bins <- seq(0,1,0.2); bins[length(bins)] <- bins[length(bins)]+1e-6
# In pathological cellularity, NA means missing
path_cell_binn <- mutate(path_cell,
                         cell_binn = cut(cellularity, breaks=bins, include.lowest=TRUE)) 
# In facets cellularity, if emflags show no confidence, NA => [0,0.2),
# but emflags = NA and NA cellularity => NA cellularity
fact_cell_binn <- mutate(fact_cell,
                         cellularity = ifelse(is.na(cellularity)&!is.na(emflags), 0.1, cellularity),
                         cell_binn = cut(cellularity, breaks=bins, include.lowest=TRUE))
path_cell_all1 <- left_join(tibble(patient_id = anlys_ord), path_cell_binn)
Joining with `by = join_by(patient_id)`
path_cell_all2 <- left_join(tibble(patient_id = lefto_ord), path_cell_binn)
Joining with `by = join_by(patient_id)`
fact_cell_all1 <- left_join(tibble(patient_id = anlys_ord), fact_cell_binn)
Joining with `by = join_by(patient_id)`
fact_cell_all2 <- left_join(tibble(patient_id = lefto_ord), fact_cell_binn)
Joining with `by = join_by(patient_id)`
## Best response
best_resp_all1 <- left_join(tibble(patient_id = anlys_ord), best_resp)
Joining with `by = join_by(patient_id)`
best_resp_all2 <- left_join(tibble(patient_id = lefto_ord), best_resp)
Joining with `by = join_by(patient_id)`
#----------------------------------------------------------------------------------
# Plotting presets
#----------------------------------------------------------------------------------
## Panel widths
w1 <- 25; w2 <- 17; w3 <- 2; w4 <- 2; w5 <- 2; w6 <- 17

## Panel heights
h1 <- 20-1    # analyzed samples
h2 <- 20-1    # left out samples
r12 <- h2/h1

## Panel margins
tp <- 5     # top margin
bt <- 1     # bottom margin

## Y-axis extension
yex <- 0.75

## Fix the layout
lay.mat <- layout.matrix(c(h1,h2), c(w1,w2,w3,w4,w5,w6))
layout(lay.mat)
par(oma=c(0,0,0,0)) # Thin outer margins

# Text size
xaxis.cex <- 0.7
xaxis.spine.cex <- 0.6 

## Fix the color scheme
## Tumor mutations
tumor_mut_col <- scales::hue_pal()(8-3+1) 

## Cellularity
cell_palette <- colorRampPalette(c("white","blue"))(5)
names(cell_palette) <- c("<20", "20-40", "40-60", "60-80", "80-100")
path_cell_col1 <- cell_palette[path_cell_all1$cell_binn] 
path_cell_col1[is.na(path_cell_col1)] <- "#000000"
path_cell_col2 <- cell_palette[path_cell_all2$cell_binn] 
path_cell_col2[is.na(path_cell_col2)] <- "#000000"
fact_cell_col1 <- cell_palette[fact_cell_all1$cell_binn] 
fact_cell_col1[is.na(fact_cell_col1)] <- "#000000"
fact_cell_col2 <- cell_palette[fact_cell_all2$cell_binn] 
fact_cell_col2[is.na(fact_cell_col2)] <- "#000000"

## Best response
resp_palette <- c("green", "darkgoldenrod1", "red", "grey") 
names(resp_palette) <- c("PR", "SD", "PD", "NE")
best_resp_col1 <- resp_palette[best_resp_all1$bor]
best_resp_col2 <- resp_palette[best_resp_all2$bor]

#----------------------------------------------------------------------------------
# Mutations plot
#----------------------------------------------------------------------------------
tm1plot <- t(as.matrix(tumor_mut_all1[,3:8]))
tm2plot <- t(as.matrix(tumor_mut_all2[,3:8]))
breaks <- pretty(colSums(cbind(tm1plot, tm2plot)))

## ANALYZED panel
par(mar=c(bt,4,tp,1))
# Make the horizontal bars for tumor mutations
ytick1 <- barplot(-tm1plot, horiz=TRUE, axes=FALSE, width=0.8, space=0.25,
                  #ylim=c(0.6, ncol(tm1plot)-0.4),
                  ylim=c(0.6-yex, ncol(tm1plot)-0.4+yex),
                  xlim=sort(-range(breaks)),
                  col=tumor_mut_col, border=NA,
                  yaxs="i")

# Annotate total number of mutations
text(-tumor_mut_all1$total-500, ytick1, tumor_mut_all1$total, adj=1, xpd=TRUE, cex=1)

# Adding x-axis at the top
axis(3, at=-breaks, labels=paste0(breaks/1000, c("", rep("k", length(breaks)-1))), 
     lwd=1, font=1)
mtext("Number of tumor somatic mutations", 3, cex=xaxis.cex, line=2.5)

# Adding y-axis on the right
axis(4, at=ytick1, labels=anlys_ord, line=-0.5, las=2, lwd=0, font=1)

#----------------------------------------------------------------------------------
# Adding floating legend for tumor mutations
#----------------------------------------------------------------------------------
add.legend(title="Mutation type", x=-45e3, y=15, xadj=1e3, labels=rownames(tm1plot))

#----------------------------------------------------------------------------------
# Adding floating legend for cellularity 
#----------------------------------------------------------------------------------
add.legend(title="Cellularity", x=-45e3, y=6, xadj=1e3,
           labels=c(rev(names(cell_palette)),"NA"), col_palette=c(rev(cell_palette),"#000000"), border="grey")

#----------------------------------------------------------------------------------

## LEFT OUT panel
par(mar=c(r12*bt,4,r12*tp,1))
# Make the horizontal bars for tumor mutations
ytick2 <- barplot(-tm2plot, horiz=TRUE, axes=FALSE, width=0.8, space=0.25,
                  #ylim=c(0.6, ncol(tm2plot)-0.4),
                  ylim=c(0.6-r12*yex, ncol(tm2plot)-0.4+r12*yex),
                  xlim=sort(-range(breaks)),
                  col=tumor_mut_col, border=NA,
                  yaxs="i")

# Annotate total number of mutations
text(-tumor_mut_all2$total-500, ytick1, tumor_mut_all2$total, adj=1, xpd=TRUE, cex=1)

# Adding x-axis at the top
#axis(3, at=-breaks, labels=paste0(breaks/1000, c("", rep("k", length(breaks)-1))), 
#     lwd=1, font=1)
#mtext("Number of tumor somatic mutations", 3, cex=xaxis.cex, line=2.5)

# Adding y-axis on the right
axis(4, at=ytick2, labels=lefto_ord, line=-0.5, las=2, lwd=0, font=1)

#----------------------------------------------------------------------------------
# Adding floating legend for BOR 
#----------------------------------------------------------------------------------
add.legend(title="BOR RECIST", x=-45e3, y=15, xadj=1e3, 
           labels=names(resp_palette), col_palette=resp_palette, border="grey")


#----------------------------------------------------------------------------------
# Baseline MAF
#----------------------------------------------------------------------------------
breaks <- pretty(c(plasm_mut_basl$mf, plasm_mut_ontr$mf))

## ANALYZED panel
par(mar=c(bt,4,tp,0))
# Make the lollipop plot
# Empty plot - draw the points on top of sticks
plot(x = -plasm_mut_bsl1$mf, y = c(1:nrow(plasm_mut_bsl1)), bty="n", axes=FALSE,
     xlab = "", ylab = "", pch = NA, xlim = sort(-range(breaks)), cex=2,
     ylim = c(1-yex, nrow(plasm_mut_bsl1)+yex),
     yaxs="i")
# Draw the sticks
sapply(1:nrow(plasm_mut_bsl1), function(i) {
     lines(c(-plasm_mut_bsl1$mf[c(1:nrow(plasm_mut_bsl1)) == i], 0), c(i,i),
           col="grey", lwd=2)})
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

[[6]]
NULL

[[7]]
NULL

[[8]]
NULL

[[9]]
NULL

[[10]]
NULL

[[11]]
NULL

[[12]]
NULL

[[13]]
NULL

[[14]]
NULL

[[15]]
NULL

[[16]]
NULL

[[17]]
NULL

[[18]]
NULL

[[19]]
NULL

[[20]]
NULL
# Draw the heads
points(x=-plasm_mut_bsl1$mf, y=1:nrow(plasm_mut_bsl1), pch=16)

# Draw y-axis using abline
abline(v=0, lwd=1)

# Draw x-axis at the top
axis(3, at=-breaks, labels=breaks*100, lwd=1, font=1)
mtext("Baseline MAF (%)", 3, cex=xaxis.cex, line=2.5)

## LEFT OUT panel
par(mar=c(r12*bt,4,r12*tp,0))
# Make the lollipop plot
# Empty plot - draw the points on top of sticks
plot(x = plasm_mut_bsl2$mf, y = c(1:nrow(plasm_mut_bsl2)), bty="n", axes=FALSE,
     xlab = "", ylab = "", pch = NA, xlim = sort(-range(breaks)), cex=2,
     ylim = c(1-r12*yex, nrow(plasm_mut_bsl2)+r12*yex),
     yaxs="i")
# Draw the sticks
sapply(1:nrow(plasm_mut_bsl2), function(i) {
     lines(c(-plasm_mut_bsl2$mf[c(1:nrow(plasm_mut_bsl2)) == i], 0), c(i,i),
           col="grey", lwd=2)})
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

[[6]]
NULL

[[7]]
NULL

[[8]]
NULL

[[9]]
NULL

[[10]]
NULL

[[11]]
NULL

[[12]]
NULL

[[13]]
NULL

[[14]]
NULL

[[15]]
NULL

[[16]]
NULL

[[17]]
NULL

[[18]]
NULL

[[19]]
NULL

[[20]]
NULL
# Draw the heads
points(x=-plasm_mut_bsl2$mf, y=1:nrow(plasm_mut_bsl2), pch=16)

# Draw y-axis using abline
abline(v=0, lwd=1)

# Draw x-axis at the top
#axis(3, at=-breaks, labels=breaks*100, lwd=1, font=1)
#mtext("Baseline MAF (%)", 3, cex=xaxis.cex, line=2.5)

#----------------------------------------------------------------------------------
# Cellularity plot
#----------------------------------------------------------------------------------
# Pathology
## ANALYZED panel
par(mar=c(bt,0,tp,0))
plot(x=rep(0, nrow(path_cell_all1)), y=1:nrow(path_cell_all1),
     pch=22, col="grey", bg=path_cell_col1,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-yex, nrow(path_cell_all1)+yex),
     yaxs="i")
mtext("Pathalogical\ncellularity", 3, las=2, cex=xaxis.spine.cex)

## LEFT OUT panel 
par(mar=c(r12*bt,0,r12*tp,0))
plot(x=rep(0, nrow(path_cell_all2)), y=1:nrow(path_cell_all2),
     pch=22, col="grey", bg=path_cell_col2,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-r12*yex, nrow(path_cell_all2)+r12*yex),
     yaxs="i")
#mtext("Pathalogical\ncellularity", 3, las=2, cex=xaxis.spine.cex)

# Facets
## ANALYZED panel
par(mar=c(bt,0,tp,0))
plot(x=rep(0, nrow(fact_cell_all1)), y=1:nrow(fact_cell_all1),
     pch=22, col="grey", bg=fact_cell_col1,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-yex, nrow(fact_cell_all1)+yex),
     yaxs="i")
mtext("WGS\ncellularity", 3, las=2, cex=xaxis.spine.cex)

## LEFT OUT panel 
par(mar=c(r12*bt,0,r12*tp,0))
plot(x=rep(0, nrow(fact_cell_all2)), y=1:nrow(fact_cell_all2),
     pch=22, col="grey", bg=fact_cell_col2,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-r12*yex, nrow(fact_cell_all2)+r12*yex),
     yaxs="i")
#mtext("WGS\ncellularity", 3, las=2, cex=xaxis.spine.cex)

#----------------------------------------------------------------------------------
# Best RECIST response
#----------------------------------------------------------------------------------
## ANALYZED panel
par(mar=c(bt,0,tp,0))
plot(x=rep(0, nrow(best_resp_all1)), y=1:nrow(best_resp_all1),
     pch=22, col="grey", bg=best_resp_col1,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-yex, nrow(best_resp_all1)+yex),
     yaxs="i")
mtext("BOR\nRECIST", 3, las=2, cex=xaxis.spine.cex)

## LEFT OUT panel 
par(mar=c(r12*bt,0,r12*tp,0))
plot(x=rep(0, nrow(best_resp_all2)), y=1:nrow(best_resp_all2),
     pch=22, col="grey", bg=best_resp_col2,
     bty="n", axes=FALSE, xlab="", ylab="", cex=2, font=1,
     ylim = c(1-r12*yex, nrow(best_resp_all2)+r12*yex),
     yaxs="i")
#mtext("BOR\nRECIST", 3, las=2, cex=xaxis.spine.cex)

#----------------------------------------------------------------------------------
# On-treatment MAF
#----------------------------------------------------------------------------------
breaks <- pretty(c(plasm_mut_basl$mf, plasm_mut_ontr$mf))

## ANALYZED panel
par(mar=c(bt,0,tp,4))
# Make the lollipop plot
# Empty plot - draw the points on top of sticks
plot(x = plasm_mut_ont1$mf, y = c(1:nrow(plasm_mut_ont1)), bty="n", axes=FALSE,
     xlab = "", ylab = "", pch = NA, xlim = range(breaks), cex=2,
     ylim = c(1-yex, nrow(plasm_mut_ont1)+yex),
     yaxs="i")
# Draw the sticks
sapply(1:nrow(plasm_mut_ont1), function(i) {
     lines(c(0,plasm_mut_ont1$mf[c(1:nrow(plasm_mut_ont1)) == i]), c(i,i),
           col="grey", lwd=2)})
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

[[6]]
NULL

[[7]]
NULL

[[8]]
NULL

[[9]]
NULL

[[10]]
NULL

[[11]]
NULL

[[12]]
NULL

[[13]]
NULL

[[14]]
NULL

[[15]]
NULL

[[16]]
NULL

[[17]]
NULL

[[18]]
NULL

[[19]]
NULL

[[20]]
NULL
# Draw the heads
points(x=plasm_mut_ont1$mf, y=1:nrow(plasm_mut_ont1), pch=16)

# Draw y-axis using abline
abline(v=0, lwd=1)

# Draw x-axis at the top
axis(3, at=breaks, labels=breaks*100, lwd=1, font=1)
mtext("On-treatment MAF (%)", 3, cex=xaxis.cex, line=2.5)

## LEFT OUT panel
par(mar=c(r12*bt,0,r12*tp,4))
# Make the lollipop plot
# Empty plot - draw the points on top of sticks
plot(x = plasm_mut_ont2$mf, y = c(1:nrow(plasm_mut_ont2)), bty="n", axes=FALSE,
     xlab = "", ylab = "", pch = NA, xlim = range(breaks), cex=2,
     ylim = c(1-r12*yex, nrow(plasm_mut_ont2)+r12*yex),
     yaxs="i")
# Draw the sticks
sapply(1:nrow(plasm_mut_ont2), function(i) {
     lines(c(0,plasm_mut_ont2$mf[c(1:nrow(plasm_mut_ont2)) == i]), c(i,i),
           col="grey", lwd=2)})
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

[[6]]
NULL

[[7]]
NULL

[[8]]
NULL

[[9]]
NULL

[[10]]
NULL

[[11]]
NULL

[[12]]
NULL

[[13]]
NULL

[[14]]
NULL

[[15]]
NULL

[[16]]
NULL

[[17]]
NULL

[[18]]
NULL

[[19]]
NULL

[[20]]
NULL
# Draw the heads
points(x=plasm_mut_ont2$mf, y=1:nrow(plasm_mut_ont2), pch=16)

# Draw y-axis using abline
abline(v=0, lwd=1)

# Draw x-axis at the top
#axis(3, at=breaks, labels=breaks*100, lwd=1, font=1)
#mtext("On-treatment MAF (%)", 3, cex=xaxis.cex, line=2.5)

#----------------------------------------------------------------------------------
# Annotations
#----------------------------------------------------------------------------------
par(fig=c(0,1,0,1), mar=c(0,1,0,1), new=TRUE)

# Samples that are not evaluable
#plot(c(-10,10), 12.10*c(1,1), lty=3, bty="n", ylim=c(0,25), type="l", axes=FALSE, xpd=TRUE)
#text(1,11.60, "Not evaluable \n(Below analytic threshold)", adj=0.5)

# Samples that were dropped from the analysis, because of missing data
plot(c(-10,10), 12.10*c(1,1), lty=0, bty="n", ylim=c(0,25), type="l", axes=FALSE, xpd=TRUE)
text(0, 12, "Not evaluable \n(Missing tumor sample or blood draw or\nbelow analytic threshold)", adj=0.5)
draw.bracket(0, 11, -10, 10)

# To explain why the MAF is high for low mutation count
smpl_plasm_mut <- filter(plasm_mut_ont2, patient_id == "CGPLPA779")
n_ref <- smpl_plasm_mut$n_ref
n_alt <- smpl_plasm_mut$n_alt
text(8.85,6.60,paste(n_alt,n_alt+n_ref,sep="/"))

#----------------------------------------------------------------------------------

sessionInfo()
R version 4.4.1 (2024-06-14)
Platform: aarch64-apple-darwin20
Running under: macOS 15.3.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.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/New_York
tzcode source: internal

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

other attached packages:
 [1] here_1.0.1      readxl_1.4.5    lubridate_1.9.4 forcats_1.0.0  
 [5] stringr_1.5.1   dplyr_1.1.4     purrr_1.0.4     readr_2.1.5    
 [9] tidyr_1.3.1     tibble_3.2.1    ggplot2_3.5.1   tidyverse_2.0.0
[13] workflowr_1.7.1

loaded via a namespace (and not attached):
 [1] sass_0.4.9        generics_0.1.3    stringi_1.8.4     rematch_2.0.0    
 [5] hms_1.1.3         digest_0.6.37     magrittr_2.0.3    timechange_0.3.0 
 [9] evaluate_1.0.3    grid_4.4.1        fastmap_1.2.0     cellranger_1.1.0 
[13] rprojroot_2.0.4   jsonlite_1.9.1    processx_3.8.6    whisker_0.4.1    
[17] ps_1.9.0          promises_1.3.2    httr_1.4.7        scales_1.3.0     
[21] jquerylib_0.1.4   cli_3.6.4         rlang_1.1.5       munsell_0.5.1    
[25] withr_3.0.2       cachem_1.1.0      yaml_2.3.10       tools_4.4.1      
[29] tzdb_0.4.0        colorspace_2.1-1  httpuv_1.6.15     vctrs_0.6.5      
[33] R6_2.6.1          lifecycle_1.0.4   git2r_0.35.0      fs_1.6.5         
[37] pkgconfig_2.0.3   callr_3.7.6       pillar_1.10.1     bslib_0.9.0      
[41] later_1.4.1       gtable_0.3.6      glue_1.8.0        Rcpp_1.0.14      
[45] xfun_0.51         tidyselect_1.2.1  rstudioapi_0.17.1 knitr_1.49       
[49] farver_2.1.2      htmltools_0.5.8.1 rmarkdown_2.29    compiler_4.4.1   
[53] getPass_0.2-4