diff --git a/01_lo-siRF/.Rprofile b/01_lo-siRF/.Rprofile new file mode 100644 index 0000000..81b960f --- /dev/null +++ b/01_lo-siRF/.Rprofile @@ -0,0 +1 @@ +source("renv/activate.R") diff --git a/01_lo-siRF/01_lo-siRF.Rproj b/01_lo-siRF/01_lo-siRF.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/01_lo-siRF/01_lo-siRF.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/01_lo-siRF/dependencies.txt b/01_lo-siRF/dependencies.txt deleted file mode 100644 index f3f9014..0000000 --- a/01_lo-siRF/dependencies.txt +++ /dev/null @@ -1,85 +0,0 @@ -R version 3.6.1 (2019-07-05) -Platform: x86_64-pc-linux-gnu (64-bit) -Running under: CentOS Linux 7 (Core) - -Matrix products: default -BLAS/LAPACK: /share/software/user/open/openblas/0.2.19/lib/libopenblasp-r0.2.19.so - -locale: - [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C - [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 - [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 - [7] LC_PAPER=en_US.UTF-8 LC_NAME=C - [9] LC_ADDRESS=C LC_TELEPHONE=C -[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C - -attached base packages: -[1] stats4 parallel stats graphics grDevices utils datasets -[8] methods base - -other attached packages: - [1] magrittr_2.0.1 BSgenome.Hsapiens.UCSC.hg19_1.4.0 - [3] BSgenome_1.54.0 rtracklayer_1.46.0 - [5] Biostrings_2.54.0 XVector_0.26.0 - [7] GenomicRanges_1.38.0 GenomeInfoDb_1.22.1 - [9] IRanges_2.20.2 S4Vectors_0.24.4 -[11] BiocGenerics_0.32.0 kableExtra_1.3.1 -[13] forcats_0.5.0 knitr_1.30 -[15] qqman_0.1.4 fastmatch_1.1-0 -[17] pryr_0.1.4 purrr_0.3.3 -[19] snpStats_1.36.0 survival_2.44-1.1 -[21] data.table_1.13.6 KRLS_1.0-0 -[23] iRF_3.0.0 ranger_0.12.1 -[25] caret_6.0-86 ggplot2_3.3.0 -[27] lattice_0.20-38 glmnet_3.0-2 -[29] Matrix_1.3-2 tibble_3.0.3 -[31] stringr_1.4.0 tidyselect_1.1.0 -[33] PRROC_1.3.1 tidyr_1.0.2 -[35] dplyr_1.0.2 vdocs_0.0.0.9000 -[37] vthemes_0.0.0.9000 - -loaded via a namespace (and not attached): - [1] colorspace_2.0-0 ellipsis_0.3.1 - [3] class_7.3-15 rstudioapi_0.13 - [5] prodlim_2019.11.13 fansi_0.4.1 - [7] lubridate_1.7.4 xml2_1.3.2 - [9] codetools_0.2-16 splines_3.6.1 -[11] doParallel_1.0.15 jsonlite_1.7.2 -[13] Rsamtools_2.2.3 pROC_1.17.0.1 -[15] shiny_1.4.0 compiler_3.6.1 -[17] httr_1.4.2 assertthat_0.2.1 -[19] fastmap_1.1.1 cli_2.2.0 -[21] later_1.1.0.1 htmltools_0.5.5 -[23] tools_3.6.1 gtable_0.3.0 -[25] glue_1.4.2 GenomeInfoDbData_1.2.2 -[27] reshape2_1.4.3 doRNG_1.8.2 -[29] Rcpp_1.0.5 Biobase_2.46.0 -[31] vctrs_0.3.4 nlme_3.1-140 -[33] iterators_1.0.13 crosstalk_1.0.0 -[35] timeDate_3043.102 gower_0.2.2 -[37] xfun_0.24 rvest_0.3.5 -[39] mime_0.9 miniUI_0.1.1.1 -[41] lifecycle_0.2.0 rngtools_1.5 -[43] XML_3.99-0.3 zlibbioc_1.32.0 -[45] MASS_7.3-51.4 scales_1.1.0 -[47] ipred_0.9-9 promises_1.1.0 -[49] SummarizedExperiment_1.16.1 RColorBrewer_1.1-2 -[51] memoise_1.1.0 rpart_4.1-15 -[53] calibrate_1.7.7 stringi_1.5.3 -[55] foreach_1.5.1 BiocParallel_1.20.1 -[57] manipulateWidget_0.10.1 lava_1.6.8.1 -[59] shape_1.4.5 matrixStats_0.57.0 -[61] rlang_1.1.0 pkgconfig_2.0.3 -[63] bitops_1.0-6 rgl_0.100.50 -[65] evaluate_0.14 GenomicAlignments_1.22.1 -[67] recipes_0.1.10 htmlwidgets_1.5.1 -[69] AUC_0.3.0 plyr_1.8.6 -[71] R6_2.5.0 generics_0.1.0 -[73] DelayedArray_0.12.3 pillar_1.4.3 -[75] withr_2.3.0 RCurl_1.98-1.2 -[77] nnet_7.3-12 crayon_1.3.4 -[79] rmarkdown_2.9 grid_3.6.1 -[81] ModelMetrics_1.2.2.2 digest_0.6.27 -[83] webshot_0.5.2 xtable_1.8-4 -[85] httpuv_1.5.2 munsell_0.5.0 -[87] viridisLite_0.3.0 diff --git a/01_lo-siRF/renv.lock b/01_lo-siRF/renv.lock new file mode 100644 index 0000000..d665b55 --- /dev/null +++ b/01_lo-siRF/renv.lock @@ -0,0 +1,3795 @@ +{ + "R": { + "Version": "3.6.1", + "Repositories": [ + { + "Name": "BioCsoft", + "URL": "https://bioconductor.org/packages/3.10/bioc" + }, + { + "Name": "BioCann", + "URL": "https://bioconductor.org/packages/3.10/data/annotation" + }, + { + "Name": "BioCexp", + "URL": "https://bioconductor.org/packages/3.10/data/experiment" + }, + { + "Name": "BioCworkflows", + "URL": "https://bioconductor.org/packages/3.10/workflows" + }, + { + "Name": "CRAN", + "URL": "https://cloud.r-project.org" + } + ] + }, + "Bioconductor": { + "Version": "3.10" + }, + "Packages": { + "AUC": { + "Package": "AUC", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "96c9cb399f0c871272dd364b4cee0904" + }, + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "BSgenome": { + "Package": "BSgenome", + "Version": "1.54.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "Rsamtools", + "S4Vectors", + "XVector", + "methods", + "rtracklayer", + "stats", + "utils" + ], + "Hash": "b09372da4a6b4cf370f9372327399c65" + }, + "BSgenome.Hsapiens.UCSC.hg19": { + "Package": "BSgenome.Hsapiens.UCSC.hg19", + "Version": "1.4.0", + "Source": "Bioconductor", + "Requirements": [ + "BSgenome" + ], + "Hash": "45e575474c9df13627ef0bbf6964a2e4" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.46.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "ddbfe185296ede75aadb84a51724ac88" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.32.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "graphics", + "methods", + "parallel", + "stats", + "utils" + ], + "Hash": "b2dabf833cc349c2cd9cba38de7af085" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.25", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "3aec5928ca10897d7a0a1205aae64627" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.20.1", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "744ce1b8f59ad5827fe03f30a4fe8e50" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.10.1", + "Source": "Bioconductor", + "Requirements": [ + "R" + ], + "Hash": "b69e4e634db423b8e6c58103d579ec95" + }, + "Biostrings": { + "Package": "Biostrings", + "Version": "2.54.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "XVector", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "edf03f0e37fc3c09c95dcf8bf3900972" + }, + "CompQuadForm": { + "Package": "CompQuadForm", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "4594a396b693b8705d8dbb5491aca887" + }, + "DBI": { + "Package": "DBI", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "065ae649b05f1ff66bb0c793107508f5" + }, + "DT": { + "Package": "DT", + "Version": "0.33", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "crosstalk", + "htmltools", + "htmlwidgets", + "httpuv", + "jquerylib", + "jsonlite", + "magrittr", + "promises" + ], + "Hash": "64ff3427f559ce3f2597a4fe13255cb6" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.12.3", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "matrixStats", + "methods", + "stats", + "stats4" + ], + "Hash": "b6d613d1e53206ce39aa7a27a1704486" + }, + "DiceDesign": { + "Package": "DiceDesign", + "Version": "1.10", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "ac8b12951882c375d1a14f64c93e78f1" + }, + "FMStable": { + "Package": "FMStable", + "Version": "0.1-4", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "f3ef67f59cf41b9f9c60e6aa0a6db54b" + }, + "GGally": { + "Package": "GGally", + "Version": "2.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "RColorBrewer", + "dplyr", + "ggplot2", + "ggstats", + "grDevices", + "grid", + "gtable", + "lifecycle", + "magrittr", + "plyr", + "progress", + "rlang", + "scales", + "tidyr", + "utils" + ], + "Hash": "b11ac45c916608b7d1374ff87da053d5" + }, + "GPfit": { + "Package": "GPfit", + "Version": "1.0-8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "lattice", + "lhs" + ], + "Hash": "29a7dccade1fd037c8262c2a239775eb" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.22.1", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "RCurl", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "df46d6ce62f1e897fecbfc5e847d823c" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.2", + "Source": "Bioconductor", + "Requirements": [ + "R" + ], + "Hash": "de42132c04371f624cdea8de86e8fc5d" + }, + "GenomicAlignments": { + "Package": "GenomicAlignments", + "Version": "1.22.1", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "Rsamtools", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "0bc774dd3636e0aff56a80da6f928211" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.38.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "8ff54983afa8eda100fa0fcadd6816bf" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.20.2", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "148fe882b25f679b03afc45da15e760c" + }, + "KRLS": { + "Package": "KRLS", + "Version": "1.0-0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "8ff909257097bf4bf352281d87e1166f" + }, + "KernSmooth": { + "Package": "KernSmooth", + "Version": "2.23-15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats" + ], + "Hash": "081f417f4d6d55b7e8981433e8404a22" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-51.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "a94714e63996bc284b8795ec50defc07" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "31262fd18481fab05c5e7258dac163ca" + }, + "MatrixModels": { + "Package": "MatrixModels", + "Version": "0.5-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "methods", + "stats" + ], + "Hash": "0776bf7526869e0286b0463cb72fb211" + }, + "ModelMetrics": { + "Package": "ModelMetrics", + "Version": "1.2.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "data.table" + ], + "Hash": "40a55bd0b44719941d103291ac5e9d74" + }, + "PRROC": { + "Package": "PRROC", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "5506f0a5a0661ac39bfcfca702f1f282" + }, + "R.methodsS3": { + "Package": "R.methodsS3", + "Version": "1.8.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" + }, + "R.oo": { + "Package": "R.oo", + "Version": "1.27.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "6ac79ff194202248cf946fe3a5d6d498" + }, + "R.utils": { + "Package": "R.utils", + "Version": "2.12.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R.methodsS3", + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "3dc2829b790254bfba21e60965787651" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.16", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "ddbdf53d15b47be4407ede6914f56fbb" + }, + "RSpectra": { + "Package": "RSpectra", + "Version": "0.16-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppEigen" + ], + "Hash": "5ffd7a70479497271e57cd0cc2465b3b" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.13-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods", + "utils" + ], + "Hash": "6b868847b365672d6c1677b1608da9ed" + }, + "RcppArmadillo": { + "Package": "RcppArmadillo", + "Version": "14.0.2-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "methods", + "stats", + "utils" + ], + "Hash": "edff747eebfb8f2e18eed194e000caa1" + }, + "RcppEigen": { + "Package": "RcppEigen", + "Version": "0.3.4.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "stats", + "utils" + ], + "Hash": "4ac8e423216b8b70cb9653d1b3f71eb9" + }, + "RcppParallel": { + "Package": "RcppParallel", + "Version": "5.1.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "f38a72a419b91faac0ce5d9eee04c120" + }, + "RcppProgress": { + "Package": "RcppProgress", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "1c0aa18b97e6aaa17f93b8b866c0ace5" + }, + "RcppSpdlog": { + "Package": "RcppSpdlog", + "Version": "0.0.19", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Rcpp" + ], + "Hash": "4e5181c917a8f9caf1f9223e594575d2" + }, + "Rhtslib": { + "Package": "Rhtslib", + "Version": "1.18.1", + "Source": "Bioconductor", + "Requirements": [ + "zlibbioc" + ], + "Hash": "70d3c447ca9f22a8f0b07328dbe32421" + }, + "Rsamtools": { + "Package": "Rsamtools", + "Version": "2.2.3", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Rhtslib", + "S4Vectors", + "XVector", + "bitops", + "methods", + "utils", + "zlibbioc" + ], + "Hash": "6d7d5bb29dd9bb69bfabccfa595a8a53" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.24.4", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "e338665aea0ba0bbf7615d318b2eccee" + }, + "SKAT": { + "Package": "SKAT", + "Version": "2.2.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "RSpectra", + "SPAtest" + ], + "Hash": "a9342bdd131a9620798e943a99994520" + }, + "SPAtest": { + "Package": "SPAtest", + "Version": "3.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "b34bf1e3aee9f3a4cbc68859b48fa6ad" + }, + "SQUAREM": { + "Package": "SQUAREM", + "Version": "2021.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "0cf10dab0d023d5b46a5a14387556891" + }, + "SparseM": { + "Package": "SparseM", + "Version": "1.84-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "e78499cbcbbca98200254bd171379165" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.16.1", + "Source": "Bioconductor", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DelayedArray", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "1f4c0859b8f338bd9f8c0b7967e719a3" + }, + "XML": { + "Package": "XML", + "Version": "3.99-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4cc84f5b13c04b4278bdc447c7bcdcad" + }, + "XVector": { + "Package": "XVector", + "Version": "0.26.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "utils", + "zlibbioc" + ], + "Hash": "b72b7c53049b71fbfd0792fb7ec66987" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "sys" + ], + "Hash": "c39f4155b3ceb1a9a2799d700fbd4b6a" + }, + "assertthat": { + "Package": "assertthat", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tools" + ], + "Hash": "50c838a310445e954bc13f26f26a6ecf" + }, + "backports": { + "Package": "backports", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "e1e1b9d75c37401117b636b7ae50827a" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "543776ae6848fde2f48ff3816d0628bc" + }, + "bit": { + "Package": "bit", + "Version": "4.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5dc7b2677d65d0e874fc4aaf0e879987" + }, + "bit64": { + "Package": "bit64", + "Version": "4.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit", + "methods", + "stats", + "utils" + ], + "Hash": "e84984bf5f12a18628d9a02322128dfd" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-9", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "d972ef991d58c19e6efa71b21f5e144b" + }, + "bookdown": { + "Package": "bookdown", + "Version": "0.41", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmltools", + "jquerylib", + "knitr", + "rmarkdown", + "tinytex", + "xfun", + "yaml" + ], + "Hash": "d8b74e267a5774ded5c91786d6d777bb" + }, + "brio": { + "Package": "brio", + "Version": "1.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c1ee497a6d999947c2c224ae46799b1a" + }, + "broom": { + "Package": "broom", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "backports", + "dplyr", + "generics", + "glue", + "lifecycle", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyr" + ], + "Hash": "8fcc818f3b9887aebaf206f141437cc9" + }, + "broom.helpers": { + "Package": "broom.helpers", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "cli", + "dplyr", + "labelled", + "lifecycle", + "purrr", + "rlang", + "stats", + "stringr", + "tibble", + "tidyr" + ], + "Hash": "d8009f68c87857158a09d598bf5bd8c9" + }, + "bslib": { + "Package": "bslib", + "Version": "0.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "cachem", + "fastmap", + "grDevices", + "htmltools", + "jquerylib", + "jsonlite", + "lifecycle", + "memoise", + "mime", + "rlang", + "sass" + ], + "Hash": "b299c6741ca9746fb227debcb0f9fb6c" + }, + "cachem": { + "Package": "cachem", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "fastmap", + "rlang" + ], + "Hash": "cd9a672193789068eb5a2aad65a0dedf" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "processx", + "utils" + ], + "Hash": "d7e13f49c19103ece9e58ad2d83a7354" + }, + "caret": { + "Package": "caret", + "Version": "6.0-86", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "ModelMetrics", + "R", + "foreach", + "ggplot2", + "grDevices", + "lattice", + "methods", + "nlme", + "pROC", + "plyr", + "recipes", + "reshape2", + "stats", + "stats4", + "utils", + "withr" + ], + "Hash": "77b0545e2c16b4e57c8da2d14042b28d" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rematch", + "tibble" + ], + "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" + }, + "checkmate": { + "Package": "checkmate", + "Version": "2.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "backports", + "utils" + ], + "Hash": "0e14e01ce07e7c88fd25de6d4260d26b" + }, + "class": { + "Package": "class", + "Version": "7.3-15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "stats", + "utils" + ], + "Hash": "4fba6a022803b6c3f30fd023be3fa818" + }, + "cli": { + "Package": "cli", + "Version": "3.6.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "b21916dd77a27642b447374a5d30ecf3" + }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" + }, + "clock": { + "Package": "clock", + "Version": "0.7.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "lifecycle", + "rlang", + "tzdb", + "vctrs" + ], + "Hash": "3dcaebd52554438d12989e5061e15de8" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-16", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "89cf4b8207269ccf82fbeb6473fd662b" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "d954cb1c57e8d8b756165d7ba18aa55a" + }, + "commonmark": { + "Package": "commonmark", + "Version": "1.9.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "14eb0596f987c71535d07c3aff814742" + }, + "cowplot": { + "Package": "cowplot", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "ggplot2", + "grDevices", + "grid", + "gtable", + "methods", + "rlang", + "scales" + ], + "Hash": "8ef2084dd7d28847b374e55440e4f8cb" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "91570bba75d0c9d3f1040c835cee8fba" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "859d96e65ef198fd43e82b9628d593ef" + }, + "credentials": { + "Package": "credentials", + "Version": "2.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass", + "curl", + "jsonlite", + "openssl", + "sys" + ], + "Hash": "09fd631e607a236f8cc7f9604db32cb8" + }, + "crosstalk": { + "Package": "crosstalk", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "htmltools", + "jsonlite", + "lazyeval" + ], + "Hash": "ab12c7b080a57475248a30f4db6298c0" + }, + "curl": { + "Package": "curl", + "Version": "6.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "ff51697d9205fe715f29e7171e874c6e" + }, + "data.table": { + "Package": "data.table", + "Version": "1.13.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "813fa8857aaa949b243e2e0b4abb8592" + }, + "dendextend": { + "Package": "dendextend", + "Version": "1.18.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "datasets", + "ggplot2", + "magrittr", + "stats", + "utils", + "viridis" + ], + "Hash": "735689b7975ad5a4d72b571857d60a33" + }, + "desc": { + "Package": "desc", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "utils" + ], + "Hash": "99b79fcbd6c4d1ce087f5c5c758b384f" + }, + "diagram": { + "Package": "diagram", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "shape", + "stats" + ], + "Hash": "c7f527c59edc72c4bce63519b8d38752" + }, + "dials": { + "Package": "dials", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "DiceDesign", + "R", + "cli", + "dplyr", + "glue", + "hardhat", + "lifecycle", + "pillar", + "purrr", + "rlang", + "scales", + "sfd", + "tibble", + "utils", + "vctrs", + "withr" + ], + "Hash": "f2fbe4e90fab23fc1f95bffcd3662878" + }, + "diffobj": { + "Package": "diffobj", + "Version": "0.3.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "crayon", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "bcaa8b95f8d7d01a5dedfd959ce88ab8" + }, + "digest": { + "Package": "digest", + "Version": "0.6.37", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "33698c4b3127fc9f506654607fb73676" + }, + "doParallel": { + "Package": "doParallel", + "Version": "1.0.17", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "foreach", + "iterators", + "parallel", + "utils" + ], + "Hash": "451e5edf411987991ab6a5410c45011f" + }, + "doRNG": { + "Package": "doRNG", + "Version": "1.8.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "foreach", + "iterators", + "rngtools", + "stats", + "utils" + ], + "Hash": "e207fea8a4991e49c7244001746e3232" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "generics", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "fedd9d00c2944ff00a0e2696ccf048ec" + }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rlang" + ], + "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" + }, + "evaluate": { + "Package": "evaluate", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "3fd29944b231036ad67c3edb32e02201" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "680887028577f3fa2a81e410ed0d6e42" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "aa5e1cd11c2d15497494c5292d7ffcc8" + }, + "fastmatch": { + "Package": "fastmatch", + "Version": "1.1-4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "8c406b7284bbaef08e01c6687367f195" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmltools", + "rlang" + ], + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" + }, + "forcats": { + "Package": "forcats", + "Version": "0.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "ellipsis", + "magrittr", + "rlang", + "tibble" + ], + "Hash": "1cb4279e697650f0bd78cd3601ee7576" + }, + "foreach": { + "Package": "foreach", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "codetools", + "iterators", + "utils" + ], + "Hash": "618609b42c9406731ead03adf5379850" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "formattable": { + "Package": "formattable", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmltools", + "htmlwidgets", + "knitr", + "methods", + "rmarkdown" + ], + "Hash": "870d6d5d39b23923d0c816f904075b4c" + }, + "fs": { + "Package": "fs", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "7f48af39fa27711ea5fbd183b399920d" + }, + "furrr": { + "Package": "furrr", + "Version": "0.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "future", + "globals", + "lifecycle", + "purrr", + "rlang", + "vctrs" + ], + "Hash": "da7a4c32196cb2262a41dd5a25d486ff" + }, + "futile.logger": { + "Package": "futile.logger", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "futile.options", + "lambda.r", + "utils" + ], + "Hash": "99f0ace8c05ec7d3683d27083c4f1e7e" + }, + "futile.options": { + "Package": "futile.options", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" + }, + "future": { + "Package": "future", + "Version": "1.34.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "digest", + "globals", + "listenv", + "parallel", + "parallelly", + "utils" + ], + "Hash": "475771e3edb711591476be387c9a8c2e" + }, + "future.apply": { + "Package": "future.apply", + "Version": "1.11.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "future", + "globals", + "parallel", + "utils" + ], + "Hash": "0efead26b03bb60716ed29971b1953dc" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "gert": { + "Package": "gert", + "Version": "2.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass", + "credentials", + "openssl", + "rstudioapi", + "sys", + "zip" + ], + "Hash": "ae855ad6d7be20dd7b05d43d25700398" + }, + "ggdendro": { + "Package": "ggdendro", + "Version": "0.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "ggplot2" + ], + "Hash": "6c64efa73d60c45946a5e6e3f894fdcd" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "cli", + "glue", + "grDevices", + "grid", + "gtable", + "isoband", + "lifecycle", + "mgcv", + "rlang", + "scales", + "stats", + "tibble", + "vctrs", + "withr" + ], + "Hash": "44c6a2f8202d5b7e878ea274b1092426" + }, + "ggstats": { + "Package": "ggstats", + "Version": "0.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "broom.helpers", + "cli", + "dplyr", + "forcats", + "ggplot2", + "lifecycle", + "magrittr", + "scales", + "stats", + "tidyr" + ], + "Hash": "0dd8018a6bc36eef3ab7f7e02cef2392" + }, + "gh": { + "Package": "gh", + "Version": "1.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "gitcreds", + "glue", + "httr2", + "ini", + "jsonlite", + "lifecycle", + "rlang" + ], + "Hash": "fbbbc48eba7a6626a08bb365e44b563b" + }, + "gitcreds": { + "Package": "gitcreds", + "Version": "0.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe" + }, + "glmnet": { + "Package": "glmnet", + "Version": "3.0-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "foreach", + "methods", + "shape", + "utils" + ], + "Hash": "96a03ce147d2a6d3e056e9da1d9c6940" + }, + "globals": { + "Package": "globals", + "Version": "0.16.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "codetools" + ], + "Hash": "2580567908cafd4f187c1e5a91e98b7f" + }, + "glue": { + "Package": "glue", + "Version": "1.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "5899f1eaa825580172bb56c08266f37c" + }, + "gower": { + "Package": "gower", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "7a0051eef852c301b5efe2f7913dd45f" + }, + "gridExtra": { + "Package": "gridExtra", + "Version": "2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "graphics", + "grid", + "gtable", + "utils" + ], + "Hash": "7d7f283939f563670a697165b2cf5560" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grid" + ], + "Hash": "ac5c6baf7822ce8732b343f14c072c4d" + }, + "h2o": { + "Package": "h2o", + "Version": "3.44.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "RCurl", + "graphics", + "jsonlite", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "abc5f6816dcdbe20daf85199eec2189c" + }, + "hardhat": { + "Package": "hardhat", + "Version": "1.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "rlang", + "tibble", + "vctrs" + ], + "Hash": "e7aabf81944f6c6cbbcec1f85827a279" + }, + "harmonicmeanp": { + "Package": "harmonicmeanp", + "Version": "3.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "FMStable" + ], + "Hash": "925d938340c7f36fd0b00787445cb513" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "forcats", + "hms", + "lifecycle", + "methods", + "readr", + "rlang", + "tibble", + "tidyselect", + "vctrs" + ], + "Hash": "9171f898db9d9c4c1b2c745adc2c1ef1" + }, + "here": { + "Package": "here", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "rprojroot" + ], + "Hash": "24b224366f9c2e7534d2344d10d59211" + }, + "highr": { + "Package": "highr", + "Version": "0.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "xfun" + ], + "Hash": "d65ba49117ca223614f71b60d85b8ab7" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "lifecycle", + "methods", + "pkgconfig", + "rlang", + "vctrs" + ], + "Hash": "b59377caa7ed00fa41808342002138f9" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "digest", + "fastmap", + "grDevices", + "rlang", + "utils" + ], + "Hash": "81d371a9cc60640e74e4ab6ac46dcedc" + }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.6.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "htmltools", + "jsonlite", + "knitr", + "rmarkdown", + "yaml" + ], + "Hash": "04291cc45198225444a397606810ac37" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "Rcpp", + "later", + "promises", + "utils" + ], + "Hash": "d55aa087c47a63ead0f6fc10f8fa1ee0" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "curl", + "jsonlite", + "mime", + "openssl" + ], + "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" + }, + "httr2": { + "Package": "httr2", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "curl", + "glue", + "magrittr", + "openssl", + "rappdirs", + "rlang", + "withr" + ], + "Hash": "0d31d9ab6ed32a436c3e299be9cf508f" + }, + "iRF": { + "Package": "iRF", + "Version": "3.0.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "karlkumbier", + "RemoteRepo": "iRF2.0", + "RemoteRef": "master", + "RemoteSha": "facea6f092ed974cffba1cf34fec28fc0639dc3a", + "Requirements": [ + "AUC", + "Matrix", + "R", + "RColorBrewer", + "Rcpp", + "data.table", + "doParallel", + "doRNG", + "dplyr", + "fastmatch", + "foreach", + "memoise", + "methods", + "ranger", + "rgl", + "stringr" + ], + "Hash": "a4d66f2aa798aaa7c31fbb55a7605aa6" + }, + "ini": { + "Package": "ini", + "Version": "0.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6154ec2223172bce8162d4153cda21f7" + }, + "ipred": { + "Package": "ipred", + "Version": "0.9-15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "class", + "nnet", + "prodlim", + "rpart", + "survival" + ], + "Hash": "3c3e02183ef7b9225213b531d0ce43f5" + }, + "irlba": { + "Package": "irlba", + "Version": "2.3.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "methods", + "stats" + ], + "Hash": "a9ad517358000d57022401ef18ee657a" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "iterators": { + "Package": "iterators", + "Version": "1.0.14", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "8954069286b4b2b0d023d1b288dce978" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "htmltools" + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods" + ], + "Hash": "4e993b65c2c3ffbffce7bb3e2c6f832b" + }, + "kableExtra": { + "Package": "kableExtra", + "Version": "1.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "digest", + "grDevices", + "graphics", + "htmltools", + "knitr", + "magrittr", + "rmarkdown", + "rstudioapi", + "scales", + "stats", + "stringr", + "svglite", + "tools", + "viridisLite", + "xml2" + ], + "Hash": "532d16304274c23c8563f94b79351c86" + }, + "knitr": { + "Package": "knitr", + "Version": "1.49", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "evaluate", + "highr", + "methods", + "tools", + "xfun", + "yaml" + ], + "Hash": "9fcb189926d93c636dea94fbe4f44480" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "labelled": { + "Package": "labelled", + "Version": "2.13.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "dplyr", + "haven", + "lifecycle", + "rlang", + "stringr", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "ad4b6d757624221aec6220b8c78defeb" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "later": { + "Package": "later", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Rcpp", + "rlang" + ], + "Hash": "a3e051d405326b8b0012377434c62b37" + }, + "lattice": { + "Package": "lattice", + "Version": "0.20-38", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "848f8c593fd1050371042d18d152e3d7" + }, + "lava": { + "Package": "lava", + "Version": "1.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "SQUAREM", + "cli", + "future.apply", + "grDevices", + "graphics", + "methods", + "numDeriv", + "progressr", + "stats", + "survival", + "utils" + ], + "Hash": "579303ca1e817d94cea694b319803380" + }, + "lazyeval": { + "Package": "lazyeval", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d908914ae53b04d4c0c0fd72ecc35370" + }, + "lhs": { + "Package": "lhs", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6d18e58d3d1de31b6e5415c1fe291113" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" + }, + "listenv": { + "Package": "listenv", + "Version": "0.9.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "e2fca3e12e4db979dccc6e519b10a7ee" + }, + "logging": { + "Package": "logging", + "Version": "0.10-108", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "fbef2ca79e23f11e033e89317b4c4770" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "generics", + "methods", + "timechange" + ], + "Hash": "680ad542fbcf801442c83a6ac5a2126c" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "8885ffb1f46e820dede6b2ca9442abca" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cachem", + "rlang" + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.8-28", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "aa301a255aac625db12ee1793bd79265" + }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tools" + ], + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" + }, + "modelenv": { + "Package": "modelenv", + "Version": "0.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "glue", + "rlang", + "tibble", + "vctrs" + ], + "Hash": "d3c0bebed774ca58574f6f1d7e9b9a62" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "magrittr", + "purrr", + "rlang", + "tibble", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "4f50122dc256b1b6996a4703fecea821" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "mvMAPIT": { + "Package": "mvMAPIT", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "CompQuadForm", + "R", + "Rcpp", + "RcppArmadillo", + "RcppParallel", + "RcppProgress", + "RcppSpdlog", + "checkmate", + "dplyr", + "foreach", + "harmonicmeanp", + "logging", + "mvtnorm", + "stats", + "testthat", + "tidyr", + "utils" + ], + "Hash": "4d811c3803921c82024b4a627d731020" + }, + "mvtnorm": { + "Package": "mvtnorm", + "Version": "1.3-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats" + ], + "Hash": "9e8405eacb262c0a939e121650247f4b" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-140", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "79d4c59449e799385e98e222e5f8f950" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "68287aec1f476c41d16ce1ace445800c" + }, + "numDeriv": { + "Package": "numDeriv", + "Version": "2016.8-1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "df58958f293b166e4ab885ebcad90e02" + }, + "openssl": { + "Package": "openssl", + "Version": "2.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass" + ], + "Hash": "d413e0fef796c9401a4419485f709ca1" + }, + "pROC": { + "Package": "pROC", + "Version": "1.18.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "methods", + "plyr" + ], + "Hash": "82d32ebd548c6a4e7de73bab96411b3b" + }, + "parallelly": { + "Package": "parallelly", + "Version": "1.39.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "parallel", + "tools", + "utils" + ], + "Hash": "1d60a6e27e3f1753945cf305735dda19" + }, + "parsnip": { + "Package": "parsnip", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "dplyr", + "generics", + "ggplot2", + "globals", + "glue", + "hardhat", + "lifecycle", + "magrittr", + "pillar", + "prettyunits", + "purrr", + "rlang", + "stats", + "tibble", + "tidyr", + "utils", + "vctrs", + "withr" + ], + "Hash": "ace928adf616e06ece817d970faa2d03" + }, + "patchwork": { + "Package": "patchwork", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "farver", + "ggplot2", + "grDevices", + "graphics", + "grid", + "gtable", + "rlang", + "stats", + "utils" + ], + "Hash": "e23fb9ecb1258207bcb763d78d513439" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "fansi", + "glue", + "lifecycle", + "rlang", + "utf8", + "utils", + "vctrs" + ], + "Hash": "15da5a8412f317beeee6175fbc76f4bb" + }, + "pkgbuild": { + "Package": "pkgbuild", + "Version": "1.4.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "callr", + "cli", + "desc", + "processx" + ], + "Hash": "30eaaab94db72652e72e3475c1b55278" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "pkgload": { + "Package": "pkgload", + "Version": "1.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "desc", + "fs", + "glue", + "lifecycle", + "methods", + "pkgbuild", + "processx", + "rlang", + "rprojroot", + "utils", + "withr" + ], + "Hash": "2ec30ffbeec83da57655b850cf2d3e0e" + }, + "plotly": { + "Package": "plotly", + "Version": "4.10.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "RColorBrewer", + "base64enc", + "crosstalk", + "data.table", + "digest", + "dplyr", + "ggplot2", + "htmltools", + "htmlwidgets", + "httr", + "jsonlite", + "lazyeval", + "magrittr", + "promises", + "purrr", + "rlang", + "scales", + "tibble", + "tidyr", + "tools", + "vctrs", + "viridisLite" + ], + "Hash": "a1ac5c03ad5ad12b9d1597e00e23c3dd" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6b8177fd19982f0020743fadbfdbd933" + }, + "praise": { + "Package": "praise", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "a555924add98c99d2f411e37e7d25e9f" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "6b01fc98b1e86c4f705ce9dcfd2f57c7" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "ps", + "utils" + ], + "Hash": "0c90a7d71988856bad2a2a45dd871bb9" + }, + "prodlim": { + "Package": "prodlim", + "Version": "2024.06.25", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "KernSmooth", + "R", + "Rcpp", + "data.table", + "diagram", + "grDevices", + "graphics", + "lava", + "stats", + "survival" + ], + "Hash": "d1e73a231e9442c29e21876f303382fc" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "crayon", + "hms", + "prettyunits" + ], + "Hash": "f4625e061cb2865f111b47ff163a5ca6" + }, + "progressr": { + "Package": "progressr", + "Version": "0.15.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "digest", + "utils" + ], + "Hash": "b3727a8cfc03525cc44a5f2854d6e025" + }, + "promises": { + "Package": "promises", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "Rcpp", + "fastmap", + "later", + "magrittr", + "rlang", + "stats" + ], + "Hash": "434cd5388a3979e74be5c219bcd6e77d" + }, + "pryr": { + "Package": "pryr", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "codetools", + "methods", + "stringr" + ], + "Hash": "bdc2df7c4155553e5a97a56a6c9f0a0d" + }, + "ps": { + "Package": "ps", + "Version": "1.8.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "b4404b1de13758dea1c0484ad0d48563" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "rlang", + "vctrs" + ], + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" + }, + "quantreg": { + "Package": "quantreg", + "Version": "5.99", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "Matrix", + "MatrixModels", + "R", + "SparseM", + "graphics", + "methods", + "stats", + "survival" + ], + "Hash": "c6e207b874494a7ac4d52f02dcd7d3af" + }, + "ranger": { + "Package": "ranger", + "Version": "0.12.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppEigen" + ], + "Hash": "561326df07a5bc5266ba17ce3b81cbf1" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "clipr", + "cpp11", + "crayon", + "hms", + "lifecycle", + "methods", + "rlang", + "tibble", + "tzdb", + "utils", + "vroom" + ], + "Hash": "9de96463d2117f6ac49980577939dfb3" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cellranger", + "cpp11", + "progress", + "tibble", + "utils" + ], + "Hash": "8cf9c239b96df1bbb133b74aef77ad0a" + }, + "recipes": { + "Package": "recipes", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "cli", + "clock", + "dplyr", + "generics", + "glue", + "gower", + "hardhat", + "ipred", + "lifecycle", + "lubridate", + "magrittr", + "purrr", + "rlang", + "stats", + "tibble", + "tidyr", + "tidyselect", + "timeDate", + "utils", + "vctrs", + "withr" + ], + "Hash": "fc6672e55fcd1b5c461a3529ff6b1b08" + }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "cbff1b666c6fa6d21202f07e2318d4f1" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tibble" + ], + "Hash": "76c9e04c712a05848ae7a23d2f170a40" + }, + "renv": { + "Package": "renv", + "Version": "1.0.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "47623f66b4e80b3b0587bc5d7b309888" + }, + "repr": { + "Package": "repr", + "Version": "1.1.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "grDevices", + "htmltools", + "jsonlite", + "pillar", + "utils" + ], + "Hash": "1393acc49816f4fe143d87fb33e75631" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "rgl": { + "Package": "rgl", + "Version": "1.3.12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "base64enc", + "grDevices", + "graphics", + "htmltools", + "htmlwidgets", + "jsonlite", + "knitr", + "magrittr", + "mime", + "stats", + "utils" + ], + "Hash": "983b99c0be0dd052350c6aa359c960a3" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "3eec01f8b1dee337674b2e34ab1f9bc1" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.29", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "evaluate", + "fontawesome", + "htmltools", + "jquerylib", + "jsonlite", + "knitr", + "methods", + "tinytex", + "tools", + "utils", + "xfun", + "yaml" + ], + "Hash": "df99277f63d01c34e95e3d2f06a79736" + }, + "rmdformats": { + "Package": "rmdformats", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "bookdown", + "htmltools", + "knitr", + "rmarkdown" + ], + "Hash": "aa65206cf3a649096a20b81d98b06f96" + }, + "rngtools": { + "Package": "rngtools", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "digest", + "methods", + "parallel", + "stats", + "utils" + ], + "Hash": "367a915f939520767660671efa0e32bd" + }, + "rpart": { + "Package": "rpart", + "Version": "4.1-15", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats" + ], + "Hash": "9787c1fcb680e655d062e7611cadf78e" + }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "4c8415e0ec1e29f3f4f6fc108bef0144" + }, + "rsample": { + "Package": "rsample", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "dplyr", + "furrr", + "generics", + "glue", + "lifecycle", + "methods", + "pillar", + "purrr", + "rlang", + "slider", + "tibble", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "95e0f11d79a7494919c14aa4d8e9e177" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.17.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "5f90cd73946d706cfe26024294236113" + }, + "rtracklayer": { + "Package": "rtracklayer", + "Version": "1.46.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "Biostrings", + "GenomeInfoDb", + "GenomicAlignments", + "GenomicRanges", + "IRanges", + "R", + "RCurl", + "Rsamtools", + "S4Vectors", + "XML", + "XVector", + "methods", + "tools", + "zlibbioc" + ], + "Hash": "a635995c99bc0e67fd23167f859893af" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "httr", + "lifecycle", + "magrittr", + "rlang", + "selectr", + "tibble", + "xml2" + ], + "Hash": "0bcf0c6f274e90ea314b812a6d19a519" + }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "fs", + "htmltools", + "rappdirs", + "rlang" + ], + "Hash": "d53dbfddf695303ea4ad66f86e99b95d" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "munsell", + "rlang", + "viridisLite" + ], + "Hash": "c19df082ba346b0ffa6f833e92de34d1" + }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "methods", + "stringr" + ], + "Hash": "3838071b66e0c566d55cc26bd6e27bf4" + }, + "sfd": { + "Package": "sfd", + "Version": "0.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "rlang", + "tibble" + ], + "Hash": "8798f23058ead1d2ffd1223dfc0c8906" + }, + "shape": { + "Package": "shape", + "Version": "1.4.6.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats" + ], + "Hash": "5c47e84dc0a3ca761ae1d307889e796d" + }, + "shiny": { + "Package": "shiny", + "Version": "1.9.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "bslib", + "cachem", + "commonmark", + "crayon", + "fastmap", + "fontawesome", + "glue", + "grDevices", + "htmltools", + "httpuv", + "jsonlite", + "later", + "lifecycle", + "methods", + "mime", + "promises", + "rlang", + "sourcetools", + "tools", + "utils", + "withr", + "xtable" + ], + "Hash": "6a293995a66e12c48d13aa1f957d09c7" + }, + "simChef": { + "Package": "simChef", + "Version": "0.1.0.9000", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "Yu-Group", + "RemoteRepo": "simChef", + "RemoteRef": "main", + "RemoteSha": "828d3385fbba8a392294ac7ddfb9e850de9d1e41", + "Requirements": [ + "R.utils", + "R6", + "assertthat", + "data.table", + "dplyr", + "future", + "future.apply", + "knitr", + "lifecycle", + "magrittr", + "methods", + "purrr", + "renv", + "rlang", + "rmarkdown", + "stringr", + "testthat", + "tibble", + "tidyr", + "tidyselect", + "usethis", + "vthemes", + "yardstick" + ], + "Hash": "5f6f6ac89abd893573c9a0c56237960a" + }, + "skimr": { + "Package": "skimr", + "Version": "2.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "dplyr", + "knitr", + "magrittr", + "pillar", + "purrr", + "repr", + "rlang", + "stats", + "stringr", + "tibble", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "8f138ff2c8fbea9e0a523f6c399c0386" + }, + "slider": { + "Package": "slider", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "rlang", + "vctrs", + "warp" + ], + "Hash": "c1c73df260af9e1e3692eb3b8e1ecb88" + }, + "snow": { + "Package": "snow", + "Version": "0.4-4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "40b74690debd20c57d93d8c246b305d4" + }, + "snpStats": { + "Package": "snpStats", + "Version": "1.36.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "Matrix", + "R", + "grDevices", + "graphics", + "methods", + "stats", + "survival", + "utils", + "zlibbioc" + ], + "Hash": "d1ea1b4814b4f8420298a63264fd471a" + }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5f5a7629f956619d519205ec475fe647" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "39e1144fd75428983dc3f63aa53dfa91" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "stringi", + "vctrs" + ], + "Hash": "960e2ae9e09656611e0b8214ad543207" + }, + "survival": { + "Package": "survival", + "Version": "2.44-1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "splines", + "stats", + "utils" + ], + "Hash": "8520357700cef5261e7d33f0a113e3df" + }, + "svglite": { + "Package": "svglite", + "Version": "2.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "systemfonts" + ], + "Hash": "124a41fdfa23e8691cb744c762f10516" + }, + "sys": { + "Package": "sys", + "Version": "3.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "de342ebfebdbf40477d0758d05426646" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "lifecycle" + ], + "Hash": "213b6b8ed5afbf934843e6c3b090d418" + }, + "testthat": { + "Package": "testthat", + "Version": "3.2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "brio", + "callr", + "cli", + "desc", + "digest", + "evaluate", + "jsonlite", + "lifecycle", + "magrittr", + "methods", + "pkgload", + "praise", + "processx", + "ps", + "rlang", + "utils", + "waldo", + "withr" + ], + "Hash": "3f6e7e5e2220856ff865e4834766bf2b" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "fansi", + "lifecycle", + "magrittr", + "methods", + "pillar", + "pkgconfig", + "rlang", + "utils", + "vctrs" + ], + "Hash": "a84e2cc86d07289b3b6f5069df7a004c" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "915fb7ce036c22a6a33b5a8adb712eb1" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "DBI", + "broom", + "dplyr", + "forcats", + "ggplot2", + "haven", + "hms", + "httr", + "jsonlite", + "lubridate", + "magrittr", + "modelr", + "purrr", + "readr", + "readxl", + "rvest", + "stringr", + "tibble", + "tidyr", + "xml2" + ], + "Hash": "6315a4ccb83dca79d158aa3b054d3558" + }, + "timeDate": { + "Package": "timeDate", + "Version": "4041.110", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "c5e48e8ac24d4472ddb122bcdeb011ad" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "c5f3c201b931cd6474d17d8700ccb1c8" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.54", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "xfun" + ], + "Hash": "3ec7e3ddcacc2d34a9046941222bf94d" + }, + "tune": { + "Package": "tune", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "GPfit", + "R", + "cli", + "dials", + "dplyr", + "foreach", + "generics", + "ggplot2", + "glue", + "hardhat", + "lifecycle", + "parsnip", + "purrr", + "recipes", + "rlang", + "rsample", + "tibble", + "tidyr", + "tidyselect", + "vctrs", + "withr", + "workflows", + "yardstick" + ], + "Hash": "a521246dbbf19272fc113ff00afac270" + }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "f561504ec2897f4d46f0c7657e488ae1" + }, + "usethis": { + "Package": "usethis", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "clipr", + "crayon", + "curl", + "desc", + "fs", + "gert", + "gh", + "glue", + "jsonlite", + "lifecycle", + "purrr", + "rappdirs", + "rlang", + "rprojroot", + "rstudioapi", + "stats", + "utils", + "whisker", + "withr", + "yaml" + ], + "Hash": "b2fbf93c2127bedd2cbe9b799530d5d2" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "vdocs": { + "Package": "vdocs", + "Version": "0.0.0.9000", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "Yu-Group", + "RemoteRepo": "vdocs", + "RemoteRef": "main", + "RemoteSha": "f7a22d4ab6c5c5e450ac53c71341f2451d49905e", + "Requirements": [ + "GGally", + "caret", + "cowplot", + "data.table", + "dendextend", + "dplyr", + "future.apply", + "ggdendro", + "ggplot2", + "h2o", + "irlba", + "kableExtra", + "knitr", + "magrittr", + "methods", + "parsnip", + "patchwork", + "plotly", + "purrr", + "rlang", + "rsample", + "scales", + "shiny", + "skimr", + "stringr", + "tibble", + "tidyr", + "tidyselect", + "tune", + "vip", + "viridis", + "vthemes", + "workflows", + "yardstick" + ], + "Hash": "3352d8acb19edca6be78374d14c54a53" + }, + "vip": { + "Package": "vip", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "ggplot2", + "gridExtra", + "magrittr", + "plyr", + "stats", + "tibble", + "utils" + ], + "Hash": "70e6da4dbf60a40e80c57901ffef043d" + }, + "viridis": { + "Package": "viridis", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "ggplot2", + "gridExtra", + "viridisLite" + ], + "Hash": "acd96d9fa70adeea4a5a1150609b9745" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit64", + "cli", + "cpp11", + "crayon", + "glue", + "hms", + "lifecycle", + "methods", + "progress", + "rlang", + "stats", + "tibble", + "tidyselect", + "tzdb", + "vctrs", + "withr" + ], + "Hash": "390f9315bc0025be03012054103d227c" + }, + "vthemes": { + "Package": "vthemes", + "Version": "0.1.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "Yu-Group", + "RemoteRepo": "vthemes", + "RemoteRef": "main", + "RemoteSha": "cd7fc64523ad7f2441a67fcfa6a12897e8c18282", + "Requirements": [ + "DT", + "R.utils", + "bookdown", + "dplyr", + "ggplot2", + "htmltools", + "kableExtra", + "knitr", + "magrittr", + "purrr", + "rmarkdown", + "rmdformats", + "scales", + "stringr", + "tidyselect", + "viridis", + "viridisLite" + ], + "Hash": "da28223d1befccd1a8494262107fdd82" + }, + "waldo": { + "Package": "waldo", + "Version": "0.5.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "diffobj", + "glue", + "methods", + "rematch2", + "rlang", + "tibble" + ], + "Hash": "16aa934a49658677d8041df9017329b9" + }, + "warp": { + "Package": "warp", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "fea474d578b1cbcb696ae6ac8bdcc439" + }, + "whisker": { + "Package": "whisker", + "Version": "0.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "c6abfa47a46d281a7d5159d0a8891e88" + }, + "withr": { + "Package": "withr", + "Version": "3.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "cc2d62c76458d425210d1eb1478b30b4" + }, + "workflows": { + "Package": "workflows", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "generics", + "glue", + "hardhat", + "lifecycle", + "modelenv", + "parsnip", + "rlang", + "tidyselect", + "vctrs" + ], + "Hash": "f2c2cefdf6babfed4594b33479d19fc3" + }, + "xfun": { + "Package": "xfun", + "Version": "0.49", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "stats", + "tools" + ], + "Hash": "8687398773806cfff9401a2feca96298" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "methods", + "rlang" + ], + "Hash": "1d0336142f4cd25d8d23cd3ba7a8fb61" + }, + "xtable": { + "Package": "xtable", + "Version": "1.8-4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.10", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "51dab85c6c98e50a18d7551e9d49f76c" + }, + "yardstick": { + "Package": "yardstick", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "dplyr", + "generics", + "hardhat", + "lifecycle", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs", + "withr" + ], + "Hash": "9ce4117141b326c4fffc7c42e56e0f88" + }, + "zip": { + "Package": "zip", + "Version": "2.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "fcc4bd8e6da2d2011eb64a5e5cc685ab" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.32.0", + "Source": "Bioconductor", + "Hash": "f7a31247eadfb45098bcf2e8c4aebb49" + } + } +} diff --git a/01_lo-siRF/renv/.gitignore b/01_lo-siRF/renv/.gitignore new file mode 100644 index 0000000..0ec0cbb --- /dev/null +++ b/01_lo-siRF/renv/.gitignore @@ -0,0 +1,7 @@ +library/ +local/ +cellar/ +lock/ +python/ +sandbox/ +staging/ diff --git a/01_lo-siRF/renv/activate.R b/01_lo-siRF/renv/activate.R new file mode 100644 index 0000000..0eb5108 --- /dev/null +++ b/01_lo-siRF/renv/activate.R @@ -0,0 +1,1305 @@ + +local({ + + # the requested version of renv + version <- "1.0.11" + attr(version, "sha") <- NULL + + # the project directory + project <- Sys.getenv("RENV_PROJECT") + if (!nzchar(project)) + project <- getwd() + + # use start-up diagnostics if enabled + diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") + if (diagnostics) { + start <- Sys.time() + profile <- tempfile("renv-startup-", fileext = ".Rprof") + utils::Rprof(profile) + on.exit({ + utils::Rprof(NULL) + elapsed <- signif(difftime(Sys.time(), start, units = "auto"), digits = 2L) + writeLines(sprintf("- renv took %s to run the autoloader.", format(elapsed))) + writeLines(sprintf("- Profile: %s", profile)) + print(utils::summaryRprof(profile)) + }, add = TRUE) + } + + # figure out whether the autoloader is enabled + enabled <- local({ + + # first, check config option + override <- getOption("renv.config.autoloader.enabled") + if (!is.null(override)) + return(override) + + # if we're being run in a context where R_LIBS is already set, + # don't load -- presumably we're being run as a sub-process and + # the parent process has already set up library paths for us + rcmd <- Sys.getenv("R_CMD", unset = NA) + rlibs <- Sys.getenv("R_LIBS", unset = NA) + if (!is.na(rlibs) && !is.na(rcmd)) + return(FALSE) + + # next, check environment variables + # TODO: prefer using the configuration one in the future + envvars <- c( + "RENV_CONFIG_AUTOLOADER_ENABLED", + "RENV_AUTOLOADER_ENABLED", + "RENV_ACTIVATE_PROJECT" + ) + + for (envvar in envvars) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(tolower(envval) %in% c("true", "t", "1")) + } + + # enable by default + TRUE + + }) + + # bail if we're not enabled + if (!enabled) { + + # if we're not enabled, we might still need to manually load + # the user profile here + profile <- Sys.getenv("R_PROFILE_USER", unset = "~/.Rprofile") + if (file.exists(profile)) { + cfg <- Sys.getenv("RENV_CONFIG_USER_PROFILE", unset = "TRUE") + if (tolower(cfg) %in% c("true", "t", "1")) + sys.source(profile, envir = globalenv()) + } + + return(FALSE) + + } + + # avoid recursion + if (identical(getOption("renv.autoloader.running"), TRUE)) { + warning("ignoring recursive attempt to run renv autoloader") + return(invisible(TRUE)) + } + + # signal that we're loading renv during R startup + options(renv.autoloader.running = TRUE) + on.exit(options(renv.autoloader.running = NULL), add = TRUE) + + # signal that we've consented to use renv + options(renv.consent = TRUE) + + # load the 'utils' package eagerly -- this ensures that renv shims, which + # mask 'utils' packages, will come first on the search path + library(utils, lib.loc = .Library) + + # unload renv if it's already been loaded + if ("renv" %in% loadedNamespaces()) + unloadNamespace("renv") + + # load bootstrap tools + ansify <- function(text) { + if (renv_ansify_enabled()) + renv_ansify_enhanced(text) + else + renv_ansify_default(text) + } + + renv_ansify_enabled <- function() { + + override <- Sys.getenv("RENV_ANSIFY_ENABLED", unset = NA) + if (!is.na(override)) + return(as.logical(override)) + + pane <- Sys.getenv("RSTUDIO_CHILD_PROCESS_PANE", unset = NA) + if (identical(pane, "build")) + return(FALSE) + + testthat <- Sys.getenv("TESTTHAT", unset = "false") + if (tolower(testthat) %in% "true") + return(FALSE) + + iderun <- Sys.getenv("R_CLI_HAS_HYPERLINK_IDE_RUN", unset = "false") + if (tolower(iderun) %in% "false") + return(FALSE) + + TRUE + + } + + renv_ansify_default <- function(text) { + text + } + + renv_ansify_enhanced <- function(text) { + + # R help links + pattern <- "`\\?(renv::(?:[^`])+)`" + replacement <- "`\033]8;;ide:help:\\1\a?\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # runnable code + pattern <- "`(renv::(?:[^`])+)`" + replacement <- "`\033]8;;ide:run:\\1\a\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # return ansified text + text + + } + + renv_ansify_init <- function() { + + envir <- renv_envir_self() + if (renv_ansify_enabled()) + assign("ansify", renv_ansify_enhanced, envir = envir) + else + assign("ansify", renv_ansify_default, envir = envir) + + } + + `%||%` <- function(x, y) { + if (is.null(x)) y else x + } + + catf <- function(fmt, ..., appendLF = TRUE) { + + quiet <- getOption("renv.bootstrap.quiet", default = FALSE) + if (quiet) + return(invisible()) + + msg <- sprintf(fmt, ...) + cat(msg, file = stdout(), sep = if (appendLF) "\n" else "") + + invisible(msg) + + } + + header <- function(label, + ..., + prefix = "#", + suffix = "-", + n = min(getOption("width"), 78)) + { + label <- sprintf(label, ...) + n <- max(n - nchar(label) - nchar(prefix) - 2L, 8L) + if (n <= 0) + return(paste(prefix, label)) + + tail <- paste(rep.int(suffix, n), collapse = "") + paste0(prefix, " ", label, " ", tail) + + } + + heredoc <- function(text, leave = 0) { + + # remove leading, trailing whitespace + trimmed <- gsub("^\\s*\\n|\\n\\s*$", "", text) + + # split into lines + lines <- strsplit(trimmed, "\n", fixed = TRUE)[[1L]] + + # compute common indent + indent <- regexpr("[^[:space:]]", lines) + common <- min(setdiff(indent, -1L)) - leave + text <- paste(substring(lines, common), collapse = "\n") + + # substitute in ANSI links for executable renv code + ansify(text) + + } + + startswith <- function(string, prefix) { + substring(string, 1, nchar(prefix)) == prefix + } + + bootstrap <- function(version, library) { + + friendly <- renv_bootstrap_version_friendly(version) + section <- header(sprintf("Bootstrapping renv %s", friendly)) + catf(section) + + # attempt to download renv + catf("- Downloading renv ... ", appendLF = FALSE) + withCallingHandlers( + tarball <- renv_bootstrap_download(version), + error = function(err) { + catf("FAILED") + stop("failed to download:\n", conditionMessage(err)) + } + ) + catf("OK") + on.exit(unlink(tarball), add = TRUE) + + # now attempt to install + catf("- Installing renv ... ", appendLF = FALSE) + withCallingHandlers( + status <- renv_bootstrap_install(version, tarball, library), + error = function(err) { + catf("FAILED") + stop("failed to install:\n", conditionMessage(err)) + } + ) + catf("OK") + + # add empty line to break up bootstrapping from normal output + catf("") + + return(invisible()) + } + + renv_bootstrap_tests_running <- function() { + getOption("renv.tests.running", default = FALSE) + } + + renv_bootstrap_repos <- function() { + + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + + # check for repos override + repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + + return(repos) + + } + + # check for lockfile repositories + repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) + if (!inherits(repos, "error") && length(repos)) + return(repos) + + # retrieve current repos + repos <- getOption("repos") + + # ensure @CRAN@ entries are resolved + repos[repos == "@CRAN@"] <- cran + + # add in renv.bootstrap.repos if set + default <- c(FALLBACK = "https://cloud.r-project.org") + extra <- getOption("renv.bootstrap.repos", default = default) + repos <- c(repos, extra) + + # remove duplicates that might've snuck in + dupes <- duplicated(repos) | duplicated(names(repos)) + repos[!dupes] + + } + + renv_bootstrap_repos_lockfile <- function() { + + lockpath <- Sys.getenv("RENV_PATHS_LOCKFILE", unset = "renv.lock") + if (!file.exists(lockpath)) + return(NULL) + + lockfile <- tryCatch(renv_json_read(lockpath), error = identity) + if (inherits(lockfile, "error")) { + warning(lockfile) + return(NULL) + } + + repos <- lockfile$R$Repositories + if (length(repos) == 0) + return(NULL) + + keys <- vapply(repos, `[[`, "Name", FUN.VALUE = character(1)) + vals <- vapply(repos, `[[`, "URL", FUN.VALUE = character(1)) + names(vals) <- keys + + return(vals) + + } + + renv_bootstrap_download <- function(version) { + + sha <- attr(version, "sha", exact = TRUE) + + methods <- if (!is.null(sha)) { + + # attempting to bootstrap a development version of renv + c( + function() renv_bootstrap_download_tarball(sha), + function() renv_bootstrap_download_github(sha) + ) + + } else { + + # attempting to bootstrap a release version of renv + c( + function() renv_bootstrap_download_tarball(version), + function() renv_bootstrap_download_cran_latest(version), + function() renv_bootstrap_download_cran_archive(version) + ) + + } + + for (method in methods) { + path <- tryCatch(method(), error = identity) + if (is.character(path) && file.exists(path)) + return(path) + } + + stop("All download methods failed") + + } + + renv_bootstrap_download_impl <- function(url, destfile) { + + mode <- "wb" + + # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715 + fixup <- + Sys.info()[["sysname"]] == "Windows" && + substring(url, 1L, 5L) == "file:" + + if (fixup) + mode <- "w+b" + + args <- list( + url = url, + destfile = destfile, + mode = mode, + quiet = TRUE + ) + + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(url) + if (length(headers) && is.character(headers)) + args$headers <- headers + } + + do.call(utils::download.file, args) + + } + + renv_bootstrap_download_custom_headers <- function(url) { + + headers <- getOption("renv.download.headers") + if (is.null(headers)) + return(character()) + + if (!is.function(headers)) + stopf("'renv.download.headers' is not a function") + + headers <- headers(url) + if (length(headers) == 0L) + return(character()) + + if (is.list(headers)) + headers <- unlist(headers, recursive = FALSE, use.names = TRUE) + + ok <- + is.character(headers) && + is.character(names(headers)) && + all(nzchar(names(headers))) + + if (!ok) + stop("invocation of 'renv.download.headers' did not return a named character vector") + + headers + + } + + renv_bootstrap_download_cran_latest <- function(version) { + + spec <- renv_bootstrap_download_cran_latest_find(version) + type <- spec$type + repos <- spec$repos + + baseurl <- utils::contrib.url(repos = repos, type = type) + ext <- if (identical(type, "source")) + ".tar.gz" + else if (Sys.info()[["sysname"]] == "Windows") + ".zip" + else + ".tgz" + name <- sprintf("renv_%s%s", version, ext) + url <- paste(baseurl, name, sep = "/") + + destfile <- file.path(tempdir(), name) + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (inherits(status, "condition")) + return(FALSE) + + # report success and return + destfile + + } + + renv_bootstrap_download_cran_latest_find <- function(version) { + + # check whether binaries are supported on this system + binary <- + getOption("renv.bootstrap.binary", default = TRUE) && + !identical(.Platform$pkgType, "source") && + !identical(getOption("pkgType"), "source") && + Sys.info()[["sysname"]] %in% c("Darwin", "Windows") + + types <- c(if (binary) "binary", "source") + + # iterate over types + repositories + for (type in types) { + for (repos in renv_bootstrap_repos()) { + + # build arguments for utils::available.packages() call + args <- list(type = type, repos = repos) + + # add custom headers if available -- note that + # utils::available.packages() will pass this to download.file() + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(repos) + if (length(headers) && is.character(headers)) + args$headers <- headers + } + + # retrieve package database + db <- tryCatch( + as.data.frame( + do.call(utils::available.packages, args), + stringsAsFactors = FALSE + ), + error = identity + ) + + if (inherits(db, "error")) + next + + # check for compatible entry + entry <- db[db$Package %in% "renv" & db$Version %in% version, ] + if (nrow(entry) == 0) + next + + # found it; return spec to caller + spec <- list(entry = entry, type = type, repos = repos) + return(spec) + + } + } + + # if we got here, we failed to find renv + fmt <- "renv %s is not available from your declared package repositories" + stop(sprintf(fmt, version)) + + } + + renv_bootstrap_download_cran_archive <- function(version) { + + name <- sprintf("renv_%s.tar.gz", version) + repos <- renv_bootstrap_repos() + urls <- file.path(repos, "src/contrib/Archive/renv", name) + destfile <- file.path(tempdir(), name) + + for (url in urls) { + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (identical(status, 0L)) + return(destfile) + + } + + return(FALSE) + + } + + renv_bootstrap_download_tarball <- function(version) { + + # if the user has provided the path to a tarball via + # an environment variable, then use it + tarball <- Sys.getenv("RENV_BOOTSTRAP_TARBALL", unset = NA) + if (is.na(tarball)) + return() + + # allow directories + if (dir.exists(tarball)) { + name <- sprintf("renv_%s.tar.gz", version) + tarball <- file.path(tarball, name) + } + + # bail if it doesn't exist + if (!file.exists(tarball)) { + + # let the user know we weren't able to honour their request + fmt <- "- RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." + msg <- sprintf(fmt, tarball) + warning(msg) + + # bail + return() + + } + + catf("- Using local tarball '%s'.", tarball) + tarball + + } + + renv_bootstrap_github_token <- function() { + for (envvar in c("GITHUB_TOKEN", "GITHUB_PAT", "GH_TOKEN")) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(envval) + } + } + + renv_bootstrap_download_github <- function(version) { + + enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") + if (!identical(enabled, "TRUE")) + return(FALSE) + + # prepare download options + token <- renv_bootstrap_github_token() + if (nzchar(Sys.which("curl")) && nzchar(token)) { + fmt <- "--location --fail --header \"Authorization: token %s\"" + extra <- sprintf(fmt, token) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "curl", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } else if (nzchar(Sys.which("wget")) && nzchar(token)) { + fmt <- "--header=\"Authorization: token %s\"" + extra <- sprintf(fmt, token) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "wget", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } + + url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) + name <- sprintf("renv_%s.tar.gz", version) + destfile <- file.path(tempdir(), name) + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (!identical(status, 0L)) + return(FALSE) + + renv_bootstrap_download_augment(destfile) + + return(destfile) + + } + + # Add Sha to DESCRIPTION. This is stop gap until #890, after which we + # can use renv::install() to fully capture metadata. + renv_bootstrap_download_augment <- function(destfile) { + sha <- renv_bootstrap_git_extract_sha1_tar(destfile) + if (is.null(sha)) { + return() + } + + # Untar + tempdir <- tempfile("renv-github-") + on.exit(unlink(tempdir, recursive = TRUE), add = TRUE) + untar(destfile, exdir = tempdir) + pkgdir <- dir(tempdir, full.names = TRUE)[[1]] + + # Modify description + desc_path <- file.path(pkgdir, "DESCRIPTION") + desc_lines <- readLines(desc_path) + remotes_fields <- c( + "RemoteType: github", + "RemoteHost: api.github.com", + "RemoteRepo: renv", + "RemoteUsername: rstudio", + "RemotePkgRef: rstudio/renv", + paste("RemoteRef: ", sha), + paste("RemoteSha: ", sha) + ) + writeLines(c(desc_lines[desc_lines != ""], remotes_fields), con = desc_path) + + # Re-tar + local({ + old <- setwd(tempdir) + on.exit(setwd(old), add = TRUE) + + tar(destfile, compression = "gzip") + }) + invisible() + } + + # Extract the commit hash from a git archive. Git archives include the SHA1 + # hash as the comment field of the tarball pax extended header + # (see https://www.kernel.org/pub/software/scm/git/docs/git-archive.html) + # For GitHub archives this should be the first header after the default one + # (512 byte) header. + renv_bootstrap_git_extract_sha1_tar <- function(bundle) { + + # open the bundle for reading + # We use gzcon for everything because (from ?gzcon) + # > Reading from a connection which does not supply a 'gzip' magic + # > header is equivalent to reading from the original connection + conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) + on.exit(close(conn)) + + # The default pax header is 512 bytes long and the first pax extended header + # with the comment should be 51 bytes long + # `52 comment=` (11 chars) + 40 byte SHA1 hash + len <- 0x200 + 0x33 + res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) + + if (grepl("^52 comment=", res)) { + sub("52 comment=", "", res) + } else { + NULL + } + } + + renv_bootstrap_install <- function(version, tarball, library) { + + # attempt to install it into project library + dir.create(library, showWarnings = FALSE, recursive = TRUE) + output <- renv_bootstrap_install_impl(library, tarball) + + # check for successful install + status <- attr(output, "status") + if (is.null(status) || identical(status, 0L)) + return(status) + + # an error occurred; report it + header <- "installation of renv failed" + lines <- paste(rep.int("=", nchar(header)), collapse = "") + text <- paste(c(header, lines, output), collapse = "\n") + stop(text) + + } + + renv_bootstrap_install_impl <- function(library, tarball) { + + # invoke using system2 so we can capture and report output + bin <- R.home("bin") + exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" + R <- file.path(bin, exe) + + args <- c( + "--vanilla", "CMD", "INSTALL", "--no-multiarch", + "-l", shQuote(path.expand(library)), + shQuote(path.expand(tarball)) + ) + + system2(R, args, stdout = TRUE, stderr = TRUE) + + } + + renv_bootstrap_platform_prefix <- function() { + + # construct version prefix + version <- paste(R.version$major, R.version$minor, sep = ".") + prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-") + + # include SVN revision for development versions of R + # (to avoid sharing platform-specific artefacts with released versions of R) + devel <- + identical(R.version[["status"]], "Under development (unstable)") || + identical(R.version[["nickname"]], "Unsuffered Consequences") + + if (devel) + prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r") + + # build list of path components + components <- c(prefix, R.version$platform) + + # include prefix if provided by user + prefix <- renv_bootstrap_platform_prefix_impl() + if (!is.na(prefix) && nzchar(prefix)) + components <- c(prefix, components) + + # build prefix + paste(components, collapse = "/") + + } + + renv_bootstrap_platform_prefix_impl <- function() { + + # if an explicit prefix has been supplied, use it + prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) + if (!is.na(prefix)) + return(prefix) + + # if the user has requested an automatic prefix, generate it + auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) + if (is.na(auto) && getRversion() >= "4.4.0") + auto <- "TRUE" + + if (auto %in% c("TRUE", "True", "true", "1")) + return(renv_bootstrap_platform_prefix_auto()) + + # empty string on failure + "" + + } + + renv_bootstrap_platform_prefix_auto <- function() { + + prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) + if (inherits(prefix, "error") || prefix %in% "unknown") { + + msg <- paste( + "failed to infer current operating system", + "please file a bug report at https://github.com/rstudio/renv/issues", + sep = "; " + ) + + warning(msg) + + } + + prefix + + } + + renv_bootstrap_platform_os <- function() { + + sysinfo <- Sys.info() + sysname <- sysinfo[["sysname"]] + + # handle Windows + macOS up front + if (sysname == "Windows") + return("windows") + else if (sysname == "Darwin") + return("macos") + + # check for os-release files + for (file in c("/etc/os-release", "/usr/lib/os-release")) + if (file.exists(file)) + return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) + + # check for redhat-release files + if (file.exists("/etc/redhat-release")) + return(renv_bootstrap_platform_os_via_redhat_release()) + + "unknown" + + } + + renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { + + # read /etc/os-release + release <- utils::read.table( + file = file, + sep = "=", + quote = c("\"", "'"), + col.names = c("Key", "Value"), + comment.char = "#", + stringsAsFactors = FALSE + ) + + vars <- as.list(release$Value) + names(vars) <- release$Key + + # get os name + os <- tolower(sysinfo[["sysname"]]) + + # read id + id <- "unknown" + for (field in c("ID", "ID_LIKE")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + id <- vars[[field]] + break + } + } + + # read version + version <- "unknown" + for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + version <- vars[[field]] + break + } + } + + # join together + paste(c(os, id, version), collapse = "-") + + } + + renv_bootstrap_platform_os_via_redhat_release <- function() { + + # read /etc/redhat-release + contents <- readLines("/etc/redhat-release", warn = FALSE) + + # infer id + id <- if (grepl("centos", contents, ignore.case = TRUE)) + "centos" + else if (grepl("redhat", contents, ignore.case = TRUE)) + "redhat" + else + "unknown" + + # try to find a version component (very hacky) + version <- "unknown" + + parts <- strsplit(contents, "[[:space:]]")[[1L]] + for (part in parts) { + + nv <- tryCatch(numeric_version(part), error = identity) + if (inherits(nv, "error")) + next + + version <- nv[1, 1] + break + + } + + paste(c("linux", id, version), collapse = "-") + + } + + renv_bootstrap_library_root_name <- function(project) { + + # use project name as-is if requested + asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") + if (asis) + return(basename(project)) + + # otherwise, disambiguate based on project's path + id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) + paste(basename(project), id, sep = "-") + + } + + renv_bootstrap_library_root <- function(project) { + + prefix <- renv_bootstrap_profile_prefix() + + path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) + if (!is.na(path)) + return(paste(c(path, prefix), collapse = "/")) + + path <- renv_bootstrap_library_root_impl(project) + if (!is.null(path)) { + name <- renv_bootstrap_library_root_name(project) + return(paste(c(path, prefix, name), collapse = "/")) + } + + renv_bootstrap_paths_renv("library", project = project) + + } + + renv_bootstrap_library_root_impl <- function(project) { + + root <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) + if (!is.na(root)) + return(root) + + type <- renv_bootstrap_project_type(project) + if (identical(type, "package")) { + userdir <- renv_bootstrap_user_dir() + return(file.path(userdir, "library")) + } + + } + + renv_bootstrap_validate_version <- function(version, description = NULL) { + + # resolve description file + # + # avoid passing lib.loc to `packageDescription()` below, since R will + # use the loaded version of the package by default anyhow. note that + # this function should only be called after 'renv' is loaded + # https://github.com/rstudio/renv/issues/1625 + description <- description %||% packageDescription("renv") + + # check whether requested version 'version' matches loaded version of renv + sha <- attr(version, "sha", exact = TRUE) + valid <- if (!is.null(sha)) + renv_bootstrap_validate_version_dev(sha, description) + else + renv_bootstrap_validate_version_release(version, description) + + if (valid) + return(TRUE) + + # the loaded version of renv doesn't match the requested version; + # give the user instructions on how to proceed + dev <- identical(description[["RemoteType"]], "github") + remote <- if (dev) + paste("rstudio/renv", description[["RemoteSha"]], sep = "@") + else + paste("renv", description[["Version"]], sep = "@") + + # display both loaded version + sha if available + friendly <- renv_bootstrap_version_friendly( + version = description[["Version"]], + sha = if (dev) description[["RemoteSha"]] + ) + + fmt <- heredoc(" + renv %1$s was loaded from project library, but this project is configured to use renv %2$s. + - Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile. + - Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library. + ") + catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) + + FALSE + + } + + renv_bootstrap_validate_version_dev <- function(version, description) { + expected <- description[["RemoteSha"]] + is.character(expected) && startswith(expected, version) + } + + renv_bootstrap_validate_version_release <- function(version, description) { + expected <- description[["Version"]] + is.character(expected) && identical(expected, version) + } + + renv_bootstrap_hash_text <- function(text) { + + hashfile <- tempfile("renv-hash-") + on.exit(unlink(hashfile), add = TRUE) + + writeLines(text, con = hashfile) + tools::md5sum(hashfile) + + } + + renv_bootstrap_load <- function(project, libpath, version) { + + # try to load renv from the project library + if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) + return(FALSE) + + # warn if the version of renv loaded does not match + renv_bootstrap_validate_version(version) + + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warnify) + + # load the project + renv::load(project) + + TRUE + + } + + renv_bootstrap_profile_load <- function(project) { + + # if RENV_PROFILE is already set, just use that + profile <- Sys.getenv("RENV_PROFILE", unset = NA) + if (!is.na(profile) && nzchar(profile)) + return(profile) + + # check for a profile file (nothing to do if it doesn't exist) + path <- renv_bootstrap_paths_renv("profile", profile = FALSE, project = project) + if (!file.exists(path)) + return(NULL) + + # read the profile, and set it if it exists + contents <- readLines(path, warn = FALSE) + if (length(contents) == 0L) + return(NULL) + + # set RENV_PROFILE + profile <- contents[[1L]] + if (!profile %in% c("", "default")) + Sys.setenv(RENV_PROFILE = profile) + + profile + + } + + renv_bootstrap_profile_prefix <- function() { + profile <- renv_bootstrap_profile_get() + if (!is.null(profile)) + return(file.path("profiles", profile, "renv")) + } + + renv_bootstrap_profile_get <- function() { + profile <- Sys.getenv("RENV_PROFILE", unset = "") + renv_bootstrap_profile_normalize(profile) + } + + renv_bootstrap_profile_set <- function(profile) { + profile <- renv_bootstrap_profile_normalize(profile) + if (is.null(profile)) + Sys.unsetenv("RENV_PROFILE") + else + Sys.setenv(RENV_PROFILE = profile) + } + + renv_bootstrap_profile_normalize <- function(profile) { + + if (is.null(profile) || profile %in% c("", "default")) + return(NULL) + + profile + + } + + renv_bootstrap_path_absolute <- function(path) { + + substr(path, 1L, 1L) %in% c("~", "/", "\\") || ( + substr(path, 1L, 1L) %in% c(letters, LETTERS) && + substr(path, 2L, 3L) %in% c(":/", ":\\") + ) + + } + + renv_bootstrap_paths_renv <- function(..., profile = TRUE, project = NULL) { + renv <- Sys.getenv("RENV_PATHS_RENV", unset = "renv") + root <- if (renv_bootstrap_path_absolute(renv)) NULL else project + prefix <- if (profile) renv_bootstrap_profile_prefix() + components <- c(root, renv, prefix, ...) + paste(components, collapse = "/") + } + + renv_bootstrap_project_type <- function(path) { + + descpath <- file.path(path, "DESCRIPTION") + if (!file.exists(descpath)) + return("unknown") + + desc <- tryCatch( + read.dcf(descpath, all = TRUE), + error = identity + ) + + if (inherits(desc, "error")) + return("unknown") + + type <- desc$Type + if (!is.null(type)) + return(tolower(type)) + + package <- desc$Package + if (!is.null(package)) + return("package") + + "unknown" + + } + + renv_bootstrap_user_dir <- function() { + dir <- renv_bootstrap_user_dir_impl() + path.expand(chartr("\\", "/", dir)) + } + + renv_bootstrap_user_dir_impl <- function() { + + # use local override if set + override <- getOption("renv.userdir.override") + if (!is.null(override)) + return(override) + + # use R_user_dir if available + tools <- asNamespace("tools") + if (is.function(tools$R_user_dir)) + return(tools$R_user_dir("renv", "cache")) + + # try using our own backfill for older versions of R + envvars <- c("R_USER_CACHE_DIR", "XDG_CACHE_HOME") + for (envvar in envvars) { + root <- Sys.getenv(envvar, unset = NA) + if (!is.na(root)) + return(file.path(root, "R/renv")) + } + + # use platform-specific default fallbacks + if (Sys.info()[["sysname"]] == "Windows") + file.path(Sys.getenv("LOCALAPPDATA"), "R/cache/R/renv") + else if (Sys.info()[["sysname"]] == "Darwin") + "~/Library/Caches/org.R-project.R/R/renv" + else + "~/.cache/R/renv" + + } + + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { + sha <- sha %||% attr(version, "sha", exact = TRUE) + parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) + paste(parts, collapse = "") + } + + renv_bootstrap_exec <- function(project, libpath, version) { + if (!renv_bootstrap_load(project, libpath, version)) + renv_bootstrap_run(version, libpath) + } + + renv_bootstrap_run <- function(version, libpath) { + + # perform bootstrap + bootstrap(version, libpath) + + # exit early if we're just testing bootstrap + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + return(TRUE) + + # try again to load + if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { + return(renv::load(project = getwd())) + } + + # failed to download or load renv; warn the user + msg <- c( + "Failed to find an renv installation: the project will not be loaded.", + "Use `renv::activate()` to re-initialize the project." + ) + + warning(paste(msg, collapse = "\n"), call. = FALSE) + + } + + renv_json_read <- function(file = NULL, text = NULL) { + + jlerr <- NULL + + # if jsonlite is loaded, use that instead + if ("jsonlite" %in% loadedNamespaces()) { + + json <- tryCatch(renv_json_read_jsonlite(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- tryCatch(renv_json_read_default(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) + else + stop(json) + + } + + renv_json_read_jsonlite <- function(file = NULL, text = NULL) { + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + jsonlite::fromJSON(txt = text, simplifyVector = FALSE) + } + + renv_json_read_default <- function(file = NULL, text = NULL) { + + # find strings in the JSON + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + pattern <- '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + locs <- gregexpr(pattern, text, perl = TRUE)[[1]] + + # if any are found, replace them with placeholders + replaced <- text + strings <- character() + replacements <- character() + + if (!identical(c(locs), -1L)) { + + # get the string values + starts <- locs + ends <- locs + attr(locs, "match.length") - 1L + strings <- substring(text, starts, ends) + + # only keep those requiring escaping + strings <- grep("[[\\]{}:]", strings, perl = TRUE, value = TRUE) + + # compute replacements + replacements <- sprintf('"\032%i\032"', seq_along(strings)) + + # replace the strings + mapply(function(string, replacement) { + replaced <<- sub(string, replacement, replaced, fixed = TRUE) + }, strings, replacements) + + } + + # transform the JSON into something the R parser understands + transformed <- replaced + transformed <- gsub("{}", "`names<-`(list(), character())", transformed, fixed = TRUE) + transformed <- gsub("[[{]", "list(", transformed, perl = TRUE) + transformed <- gsub("[]}]", ")", transformed, perl = TRUE) + transformed <- gsub(":", "=", transformed, fixed = TRUE) + text <- paste(transformed, collapse = "\n") + + # parse it + json <- parse(text = text, keep.source = FALSE, srcfile = NULL)[[1L]] + + # construct map between source strings, replaced strings + map <- as.character(parse(text = strings)) + names(map) <- as.character(parse(text = replacements)) + + # convert to list + map <- as.list(map) + + # remap strings in object + remapped <- renv_json_read_remap(json, map) + + # evaluate + eval(remapped, envir = baseenv()) + + } + + renv_json_read_remap <- function(json, map) { + + # fix names + if (!is.null(names(json))) { + lhs <- match(names(json), names(map), nomatch = 0L) + rhs <- match(names(map), names(json), nomatch = 0L) + names(json)[rhs] <- map[lhs] + } + + # fix values + if (is.character(json)) + return(map[[json]] %||% json) + + # handle true, false, null + if (is.name(json)) { + text <- as.character(json) + if (text == "true") + return(TRUE) + else if (text == "false") + return(FALSE) + else if (text == "null") + return(NULL) + } + + # recurse + if (is.recursive(json)) { + for (i in seq_along(json)) { + json[i] <- list(renv_json_read_remap(json[[i]], map)) + } + } + + json + + } + + # load the renv profile, if any + renv_bootstrap_profile_load(project) + + # construct path to library root + root <- renv_bootstrap_library_root(project) + + # construct library prefix for platform + prefix <- renv_bootstrap_platform_prefix() + + # construct full libpath + libpath <- file.path(root, prefix) + + # run bootstrap code + renv_bootstrap_exec(project, libpath, version) + + invisible() + +}) diff --git a/01_lo-siRF/renv/settings.json b/01_lo-siRF/renv/settings.json new file mode 100644 index 0000000..e29fcdb --- /dev/null +++ b/01_lo-siRF/renv/settings.json @@ -0,0 +1,19 @@ +{ + "bioconductor.version": "3.10", + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": null, + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/01_lo-siRF/rmd/pcs_supplementary_documentation.Rmd b/01_lo-siRF/rmd/pcs_supplementary_documentation.Rmd index 2b5c8b1..58e6c14 100644 --- a/01_lo-siRF/rmd/pcs_supplementary_documentation.Rmd +++ b/01_lo-siRF/rmd/pcs_supplementary_documentation.Rmd @@ -2987,11 +2987,11 @@ if (!params$eval) { "mapit_gene_gsea_classic.GseaPreranked.1726843556954", "gsea_report_for_na_pos_1726843556954.tsv" ) - ) |> - tibble::as_tibble() |> + ) %>% + tibble::as_tibble() %>% dplyr::mutate( Rank = 1:dplyr::n() - ) |> + ) %>% dplyr::select( Rank, Name = NAME, @@ -3001,10 +3001,10 @@ if (!params$eval) { `Nominal p-value` = `NOM p-val`, `FDR q-value` = `FDR q-val`, `FWER p-value` = `FWER p-val` - ) |> + ) %>% dplyr::filter( `Nominal p-value` < 0.05 - ) |> + ) %>% vthemes::pretty_DT( rownames = FALSE, options = list(pageLength = 15, ordering = FALSE) @@ -3130,36 +3130,36 @@ for (dgp_name in dgp_names) { file.path( res_dir, "Permutation Validity", dgp_name, "Varying n", "fit_results.rds" ) - ) |> + ) %>% dplyr::mutate(p = num_features) } # calibration plot alphas <- seq(0, 1, by = 0.01) -plt_df <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") |> - tidyr::unnest(result) |> - dplyr::group_by(dgp_name, n, p) |> +plt_df <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") %>% + tidyr::unnest(result) %>% + dplyr::group_by(dgp_name, n, p) %>% dplyr::summarise( alpha = tibble::tibble( alpha = alphas, reject_prob = purrr::map_dbl(alphas, ~ mean(pval < .x)) - ) |> + ) %>% list(), .groups = "drop" - ) |> - tidyr::unnest(alpha) |> + ) %>% + tidyr::unnest(alpha) %>% dplyr::mutate( setting = sprintf("Num. Samples = %s\nNum. Features = %s", n, p) ) plt_ls <- list() for (dgp_name in null_dgp_names) { - plt_ls[[dgp_name]] <- plt_df |> + plt_ls[[dgp_name]] <- plt_df %>% dplyr::filter( dgp_name == !!dgp_name - ) |> + ) %>% dplyr::mutate( dgp_name = stringr::str_replace(dgp_name, "SNP", "SNV") - ) |> + ) %>% ggplot2::ggplot() + ggplot2::aes( x = alpha, y = reject_prob @@ -3241,18 +3241,18 @@ left_join_with_na <- function(x, y, by) { } } -tab <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") |> +tab <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") %>% dplyr::filter( stringr::str_detect(.dgp_name, "order") - ) |> - dplyr::rowwise() |> + ) %>% + dplyr::rowwise() %>% dplyr::mutate( result = list(left_join_with_na(int_df, result, by = "int")) - ) |> - dplyr::ungroup() |> - tidyr::unnest(result) |> + ) %>% + dplyr::ungroup() %>% + tidyr::unnest(result) %>% dplyr::mutate( - int_vec = stringr::str_remove_all(int, "[[+/-]]") |> + int_vec = stringr::str_remove_all(int, "[[+/-]]") %>% stringr::str_split("_"), true_feat = purrr::map2_lgl( int_vec, .dgp_name, @@ -3278,10 +3278,10 @@ tab <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") |> } ), tested_int = !is.na(pval) - ) |> + ) %>% dplyr::group_by( dgp_name, n, p - ) |> + ) %>% dplyr::summarise( `# Candidate Interactions from siRF` = dplyr::n(), `Prop. (Num.) of True Interactions in Candidate Set` = @@ -3309,19 +3309,19 @@ tab <- dplyr::bind_rows(fit_results_ls, .id = "dgp_name") |> sum(!is.na(pval)) ), .groups = "drop" - ) |> + ) %>% dplyr::mutate( dgp_name = dplyr::case_when( dgp_name == "SNP X (order 1)" ~ "Marginal Model", dgp_name == "SNP X (order 2)" ~ "Interaction Model" - ) |> + ) %>% factor(levels = c("Interaction Model", "Marginal Model")) - ) |> - dplyr::arrange(dgp_name) |> + ) %>% + dplyr::arrange(dgp_name) %>% dplyr::rename( "Simulation Name" = dgp_name, `Num. Samples` = n - ) |> + ) %>% dplyr::select(-p) subchunkify( vthemes::pretty_DT( diff --git a/01_lo-siRF/scripts/efficiency_simulations.R b/01_lo-siRF/scripts/efficiency_simulations.R index 3054578..f98eb56 100644 --- a/01_lo-siRF/scripts/efficiency_simulations.R +++ b/01_lo-siRF/scripts/efficiency_simulations.R @@ -46,11 +46,11 @@ efficiency_dgp_fun <- function(n, beta0, beta1, beta2, beta12, quant_reg_fun <- function(x, y, tau = 0.5, min_thr = 1e-16, ...) { fit_df <- data.frame(.y = y, x) fit <- quantreg::rq(formula = .y ~ X1 * X2, tau = tau, data = fit_df) - fit_summary <- summary(fit, se = "boot")$coefficients |> - as.data.frame() |> - tibble::rownames_to_column("Term") |> - dplyr::rename(Coefficient = Value) |> - dplyr::filter(Term == "X1:X2") |> + fit_summary <- summary(fit, se = "boot")$coefficients %>% + as.data.frame() %>% + tibble::rownames_to_column("Term") %>% + dplyr::rename(Coefficient = Value) %>% + dplyr::filter(Term == "X1:X2") %>% dplyr::mutate(`Pr(>|t|)` = max(min_thr, `Pr(>|t|)`)) return(fit_summary) # return(broom::tidy(fit_summary)) @@ -77,10 +77,10 @@ fi_pval <- create_evaluator( plot_results <- function(fit_results = NULL, eval_results, vary_params = NULL, eval_name, eval_id, add_ggplot_layers = NULL) { vary_params <- unique(vary_params) - plt_df <- eval_results[[eval_name]] |> + plt_df <- eval_results[[eval_name]] %>% dplyr::filter(!is.na(!!rlang::sym(vary_params))) - plt <- plt_df |> - tidyr::unnest(cols = tidyselect::all_of(sprintf("raw_%s", eval_id))) |> + plt <- plt_df %>% + tidyr::unnest(cols = tidyselect::all_of(sprintf("raw_%s", eval_id))) %>% vdocs::plot_boxplot( x_str = vary_params, y_str = sprintf("raw_%s", eval_id) ) + @@ -186,23 +186,23 @@ for (exp_name in names(experiment_config_ls)) { experiment <- create_experiment( name = experiment_name, save_dir = file.path(RESULTS_DIR, experiment_name) - ) |> - add_dgp(dgp) |> - add_method(quant_reg) |> - add_evaluator(fi_pval) |> + ) %>% + add_dgp(dgp) %>% + add_method(quant_reg) %>% + add_evaluator(fi_pval) %>% add_visualizer(fi_pval_plot) # vary across beta12 signal - results <- experiment |> - add_vary_across(.dgp = dgp$name, beta12 = beta12s) |> + results <- experiment %>% + add_vary_across(.dgp = dgp$name, beta12 = beta12s) %>% run_experiment( n_reps = n_reps, save = SAVE, use_cached = USE_CACHED ) # vary across noise levels - results <- experiment |> - remove_vary_across() |> - add_vary_across(.dgp = dgp$name, sd = noise_sds) |> + results <- experiment %>% + remove_vary_across() %>% + add_vary_across(.dgp = dgp$name, sd = noise_sds) %>% run_experiment( n_reps = n_reps, save = SAVE, use_cached = USE_CACHED ) diff --git a/01_lo-siRF/scripts/epistasis_method_comparisons.R b/01_lo-siRF/scripts/epistasis_method_comparisons.R index b33a712..46d8f29 100644 --- a/01_lo-siRF/scripts/epistasis_method_comparisons.R +++ b/01_lo-siRF/scripts/epistasis_method_comparisons.R @@ -5,7 +5,7 @@ source(file.path("..", "functions", "load-functions.R"), chdir = TRUE) DATA_DIR <- file.path("..", "data") RESULTS_DIR <- file.path("..", "results", "epistasis_comparisons") -maf_df <- data.table::fread(file.path(DATA_DIR, "maf.frq")) |> +maf_df <- data.table::fread(file.path(DATA_DIR, "maf.frq")) %>% tibble::as_tibble() #### Regression-based SNP x SNP epistasis scan #### @@ -42,12 +42,12 @@ for (pheno_name in pheno_names) { function(fdir) { fpheno <- str_remove(pheno_name, "_binary_thr.*$") fpath <- file.path(fdir, paste0(fpheno, "_norm.stats_annot")) - snps <- fread(fpath) |> - slice(1:nsnps) |> + snps <- fread(fpath) %>% + slice(1:nsnps) %>% pull(SNP) } - ) |> - purrr::reduce(c) |> + ) %>% + purrr::reduce(c) %>% unique() # load data @@ -58,19 +58,19 @@ for (pheno_name in pheno_names) { keep_genes = keep_genes, keep_snps = keep_snps ) - X <- out$geno_train |> + X <- out$geno_train %>% dplyr::select(weight, height, gender, age) - Z <- out$geno_train |> + Z <- out$geno_train %>% dplyr::select(-tidyselect::all_of(colnames(X))) y <- out$pheno_train # remove snps with MAF < 0.05 snps_df <- loadSNPInfo(colnames(Z)) - rm_snps <- maf_df |> - dplyr::filter(MAF < 0.05) |> - dplyr::left_join(snps_df, by = c("SNP" = "rsID")) |> + rm_snps <- maf_df %>% + dplyr::filter(MAF < 0.05) %>% + dplyr::left_join(snps_df, by = c("SNP" = "rsID")) %>% dplyr::pull(Name) - Z <- Z |> + Z <- Z %>% dplyr::select(-tidyselect::all_of(rm_snps)) snp_pairs_mat <- combn(colnames(Z), 2) @@ -94,25 +94,25 @@ for (pheno_name in pheno_names) { data = fit_df ) } - lm_out <- broom::tidy(lm_fit) |> - dplyr::select(term, p.value) |> - tidyr::pivot_wider(names_from = term, values_from = p.value) |> - dplyr::select(snp1, snp2, `snp1:snp2`) |> + lm_out <- broom::tidy(lm_fit) %>% + dplyr::select(term, p.value) %>% + tidyr::pivot_wider(names_from = term, values_from = p.value) %>% + dplyr::select(snp1, snp2, `snp1:snp2`) %>% dplyr::mutate( snp1_name = snp_pairs_mat[1, j], snp2_name = snp_pairs_mat[2, j] ) } - ) |> - purrr::list_rbind() |> - dplyr::relocate(snp1_name, snp2_name, .before = snp1) |> + ) %>% + purrr::list_rbind() %>% + dplyr::relocate(snp1_name, snp2_name, .before = snp1) %>% dplyr::left_join( - snps_df |> + snps_df %>% dplyr::select(snp1_name = Name, `SNP1 Chr` = Chr, `SNP1 Gene` = Gene), by = "snp1_name" - ) |> + ) %>% dplyr::left_join( - snps_df |> + snps_df %>% dplyr::select(snp2_name = Name, `SNP2 Chr` = Chr, `SNP2 Gene` = Gene), by = "snp2_name" ) @@ -146,12 +146,12 @@ keep_snps <- map( function(fdir) { fpheno <- str_remove(pheno_name, "_binary_thr.*$") fpath <- file.path(fdir, paste0(fpheno, "_norm.stats_annot")) - snps <- fread(fpath) |> - slice(1:nsnps) |> + snps <- fread(fpath) %>% + slice(1:nsnps) %>% pull(SNP) } -) |> - purrr::reduce(c) |> +) %>% + purrr::reduce(c) %>% unique() # load data @@ -162,19 +162,19 @@ out <- loadData( keep_genes = keep_genes, keep_snps = keep_snps ) -X <- out$geno_train |> +X <- out$geno_train %>% dplyr::select(weight, height, gender, age) -Z <- out$geno_train |> +Z <- out$geno_train %>% dplyr::select(-tidyselect::all_of(colnames(X))) y <- out$pheno_train # remove snps with MAF < 0.05 snps_df <- loadSNPInfo(colnames(Z)) -rm_snps <- maf_df |> - dplyr::filter(MAF < 0.05) |> - dplyr::left_join(snps_df, by = c("SNP" = "rsID")) |> +rm_snps <- maf_df %>% + dplyr::filter(MAF < 0.05) %>% + dplyr::left_join(snps_df, by = c("SNP" = "rsID")) %>% dplyr::pull(Name) -Z <- Z |> +Z <- Z %>% dplyr::select(-tidyselect::all_of(rm_snps)) # run mapit @@ -209,12 +209,12 @@ keep_snps <- map( function(fdir) { fpheno <- str_remove(pheno_name, "_binary_thr.*$") fpath <- file.path(fdir, paste0(fpheno, "_norm.stats_annot")) - snps <- fread(fpath) |> - slice(1:nsnps) |> + snps <- fread(fpath) %>% + slice(1:nsnps) %>% pull(SNP) } -) |> - purrr::reduce(c) |> +) %>% + purrr::reduce(c) %>% unique() # load data @@ -225,9 +225,9 @@ out <- loadData( keep_genes = keep_genes, keep_snps = keep_snps ) -X <- out$geno_train |> +X <- out$geno_train %>% dplyr::select(weight, height, gender, age) -Z <- out$geno_train |> +Z <- out$geno_train %>% dplyr::select(-tidyselect::all_of(colnames(X))) y <- out$pheno_train diff --git a/01_lo-siRF/scripts/marginal_gene_method_comparisons.R b/01_lo-siRF/scripts/marginal_gene_method_comparisons.R index 6ea495a..93516c0 100644 --- a/01_lo-siRF/scripts/marginal_gene_method_comparisons.R +++ b/01_lo-siRF/scripts/marginal_gene_method_comparisons.R @@ -7,7 +7,7 @@ DATA_DIR <- file.path("..", "data") RESULTS_DIR <- file.path("..", "results", "marginal_comparisons") #### SKAT-O #### -maf_df <- data.table::fread(file.path(DATA_DIR, "maf.frq")) |> +maf_df <- data.table::fread(file.path(DATA_DIR, "maf.frq")) %>% tibble::as_tibble() # continuous outcome @@ -31,12 +31,12 @@ keep_snps <- map( function(fdir) { fpheno <- str_remove(pheno_name, "_binary_thr.*$") fpath <- file.path(fdir, paste0(fpheno, "_norm.stats_annot")) - snps <- fread(fpath) |> - slice(1:nsnps) |> + snps <- fread(fpath) %>% + slice(1:nsnps) %>% pull(SNP) } -) |> - purrr::reduce(c) |> +) %>% + purrr::reduce(c) %>% unique() # load data @@ -47,25 +47,25 @@ out <- loadData( keep_genes = keep_genes, keep_snps = keep_snps ) -X <- out$geno_train |> +X <- out$geno_train %>% dplyr::select(weight, height, gender, age) -Z <- out$geno_train |> +Z <- out$geno_train %>% dplyr::select(-tidyselect::all_of(colnames(X))) y <- out$pheno_train # remove snps with MAF < 0.05 snps_df <- loadSNPInfo(colnames(Z)) -rm_snps <- maf_df |> - dplyr::filter(MAF < 0.05) |> - dplyr::left_join(snps_df, by = c("SNP" = "rsID")) |> +rm_snps <- maf_df %>% + dplyr::filter(MAF < 0.05) %>% + dplyr::left_join(snps_df, by = c("SNP" = "rsID")) %>% dplyr::pull(Name) -Z <- Z |> +Z <- Z %>% dplyr::select(-tidyselect::all_of(rm_snps)) # get snp sets by gene snps_df <- loadSNPInfo(colnames(Z)) -snp_sets <- snps_df |> - dplyr::group_by(Gene) |> +snp_sets <- snps_df %>% + dplyr::group_by(Gene) %>% dplyr::summarise(snp_set = list(Name)) # run skat @@ -75,28 +75,28 @@ null_mod <- SKAT::SKAT_Null_Model( .y ~ ., data = null_train_df, out_type = out_type ) skato_out <- purrr::map( - snp_sets |> dplyr::pull(snp_set), + snp_sets %>% dplyr::pull(snp_set), function(snp_set) { skat_out <- SKAT::SKAT( Z = as.matrix(Z[, snp_set]), obj = null_mod, method = "SKATO" ) skat_out$p.value } -) |> - setNames(snp_sets |> dplyr::pull(Gene)) +) %>% + setNames(snp_sets %>% dplyr::pull(Gene)) skat_out <- purrr::map( - snp_sets |> dplyr::pull(snp_set), + snp_sets %>% dplyr::pull(snp_set), function(snp_set) { skat_out <- SKAT::SKAT( Z = as.matrix(Z[, snp_set]), obj = null_mod ) skat_out$p.value } -) |> - setNames(snp_sets |> dplyr::pull(Gene)) +) %>% + setNames(snp_sets %>% dplyr::pull(Gene)) -gene_pos_df <- snps_df |> - dplyr::group_by(Gene) |> +gene_pos_df <- snps_df %>% + dplyr::group_by(Gene) %>% dplyr::summarise( Chr = Chr[1], min_pos = min(`hg19 Pos`), @@ -116,7 +116,7 @@ skat_df <- dplyr::bind_rows( pval = unlist(skat_out), mode = "SKAT" ) -) |> +) %>% dplyr::left_join(gene_pos_df, by = "Gene") save( diff --git a/01_lo-siRF/scripts/permutation_simulations.R b/01_lo-siRF/scripts/permutation_simulations.R index 7f79d38..66acea0 100644 --- a/01_lo-siRF/scripts/permutation_simulations.R +++ b/01_lo-siRF/scripts/permutation_simulations.R @@ -42,9 +42,9 @@ generate_interaction <- function(X, int_order = 0, num_int = 0, beta = 0.4) { ~ apply( X[, (.x * int_order + 1):(.x * int_order + int_order), drop = FALSE] > 0, 1, all ) * beta - ) |> - setNames(paste0("X", 1:num_int)) |> - dplyr::bind_cols() |> + ) %>% + setNames(paste0("X", 1:num_int)) %>% + dplyr::bind_cols() %>% rowSums() } else { prob <- beta @@ -84,12 +84,12 @@ snp_X_rwd_dgp_fun <- function(n, p, int_order = 0, num_int = 0, beta = 0.4) { # function(fdir) { # fpheno <- str_remove(pheno_name, "_binary_thr.*$") # fpath <- file.path(fdir, paste0(fpheno, "_norm.stats_annot")) - # snps <- fread(fpath) |> - # slice(1:nsnps) |> + # snps <- fread(fpath) %>% + # slice(1:nsnps) %>% # pull(SNP) # } - # ) |> - # purrr::reduce(c) |> + # ) %>% + # purrr::reduce(c) %>% # unique() # # # load data @@ -103,16 +103,16 @@ snp_X_rwd_dgp_fun <- function(n, p, int_order = 0, num_int = 0, beta = 0.4) { # # # only keep genes with > 10 snps # snps_df <- loadSNPInfo(colnames(out$geno_train)) - # keep_genes <- snps_df |> - # dplyr::group_by(Gene) |> + # keep_genes <- snps_df %>% + # dplyr::group_by(Gene) %>% # dplyr::summarise( # n_snps = dplyr::n() - # ) |> + # ) %>% # dplyr::filter( # n_snps >= 10 - # ) |> + # ) %>% # dplyr::pull(Gene) - # keep_snps_df <- snps_df |> + # keep_snps_df <- snps_df %>% # dplyr::filter(Gene %in% keep_genes) # saveRDS(keep_snps_df, file.path(DATA_DIR, "snps_df_abridged.rds")) @@ -120,14 +120,14 @@ snp_X_rwd_dgp_fun <- function(n, p, int_order = 0, num_int = 0, beta = 0.4) { snps_df <- readRDS(file.path(DATA_DIR, "snps_df_abridged.rds")) data_out <- readRDS(file.path(DATA_DIR, "iLVM_norm_data.rds")) keep_samples <- sample(1:nrow(data_out$geno_train), size = n, replace = FALSE) - keep_snps_df <- snps_df |> - dplyr::slice_sample(n = p) |> - dplyr::group_by(Gene) |> + keep_snps_df <- snps_df %>% + dplyr::slice_sample(n = p) %>% + dplyr::group_by(Gene) %>% dplyr::mutate( order = 1:dplyr::n() - ) |> - dplyr::ungroup() |> - dplyr::arrange(order) |> + ) %>% + dplyr::ungroup() %>% + dplyr::arrange(order) %>% dplyr::mutate( Gene = paste0("Gene", as.numeric(forcats::fct_inorder(Gene))) ) @@ -178,7 +178,7 @@ losirf_method_fun <- function(X, y, ... ) - keep_ints <- irf_gene_out$interaction |> + keep_ints <- irf_gene_out$interaction %>% dplyr::filter( cpe > !!cpe_thr, fsd > !!fsd_thr, @@ -187,12 +187,12 @@ losirf_method_fun <- function(X, y, sta.cpe > !!stability_cpe_thr, sta.fsd > !!stability_fsd_thr, sta.mip > !!stability_mip_thr - ) |> + ) %>% dplyr::arrange(desc(prevalence)) if (nrow(keep_ints) > 0) { if (!is.null(max_ints)) { - keep_ints <- keep_ints |> + keep_ints <- keep_ints %>% dplyr::slice(1:min(dplyr::n(), max_ints)) } @@ -288,9 +288,9 @@ exp_name <- "Permutation Validity" ## Null - Gaussian X DGP experiment <- create_experiment( name = exp_name, save_dir = file.path(RESULTS_DIR, exp_name) -) |> - add_dgp(gaussian_X_dgp) |> - add_method(losirf_method) |> +) %>% + add_dgp(gaussian_X_dgp) %>% + add_method(losirf_method) %>% add_vary_across( .dgp = gaussian_X_dgp$name, n = c(1000, 1500, 2000) @@ -302,9 +302,9 @@ out <- run_experiment( ## Null - SNP X DGP experiment <- create_experiment( name = exp_name, save_dir = file.path(RESULTS_DIR, exp_name) -) |> - add_dgp(snp_X_dgp) |> - add_method(losirf_method) |> +) %>% + add_dgp(snp_X_dgp) %>% + add_method(losirf_method) %>% add_vary_across( .dgp = snp_X_dgp$name, n = c(1000, 1500, 2000) @@ -316,9 +316,9 @@ out <- run_experiment( ## Null - Real SNP X DGP experiment <- create_experiment( name = exp_name, save_dir = file.path(RESULTS_DIR, exp_name) -) |> - add_dgp(snp_X_rwd_dgp) |> - add_method(losirf_method) |> +) %>% + add_dgp(snp_X_rwd_dgp) %>% + add_method(losirf_method) %>% add_vary_across( .dgp = snp_X_rwd_dgp$name, n = c(1000, 2000, 3000) @@ -330,9 +330,9 @@ out <- run_experiment( ## Marginal - SNP X DGP experiment <- create_experiment( name = exp_name, save_dir = file.path(RESULTS_DIR, exp_name) -) |> - add_dgp(snp_X_dgp1) |> - add_method(losirf_filter_method) |> +) %>% + add_dgp(snp_X_dgp1) %>% + add_method(losirf_filter_method) %>% add_vary_across( .dgp = snp_X_dgp1$name, n = c(1000, 2000, 3000) @@ -344,9 +344,9 @@ out <- run_experiment( ## Interaction - SNP X DGP experiment <- create_experiment( name = exp_name, save_dir = file.path(RESULTS_DIR, exp_name) -) |> - add_dgp(snp_X_dgp2) |> - add_method(losirf_filter_method) |> +) %>% + add_dgp(snp_X_dgp2) %>% + add_method(losirf_filter_method) %>% add_vary_across( .dgp = snp_X_dgp2$name, n = c(1000, 2000, 3000) diff --git a/README.md b/README.md index 4984174..d262c24 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ In summary, we developed an end-to-end pipeline to demonstrate the role of epist - **[losiRF](./losiRF)**: R package to run low-signal signed iterative random forest (lo-siRF) pipeline - **[01_lo-siRF/](./01_lo-siRF/)**: code to reproduce manuscript results and run low-signal signed iterative random forest (lo-siRF) given SNV and phenotype data as input - - [dependencies.txt](./01_lo-siRF/dependencies.txt): dependency requirements to run lo-siRF pipeline + - [renv.lock](./01_lo-siRF/renv.lock): dependency requirements to run lo-siRF pipeline; run `renv::restore()` to restore the reproducible environment - **[functions/](./01_lo-siRF/functions)**: contains helper functions to run lo-siRF analysis scripts - **[rmd/](./01_lo-siRF/rmd)**: contains files to reproduce [supplementary PCS R Markdown documentation](https://yu-group.github.io/epistasis-cardiac-hypertrophy/) - **[scripts/](./01_lo-siRF/scripts)**: contains scripts to run lo-siRF analysis (note: these scripts should be run in their numbered order via the corresponding \*.sh files; unnumbered scripts are either helper scripts or scripts to run supplementary analyses and are not part of the main lo-siRF pipeline)