# Dependency graph

####

####
Authors: Brian Schilder, Alan Murphy, Hiranyamaya (Hiru) Dash, Nathan Skene

####

####
Vignette updated: May-05-2026

    library(data.table)

    ##
    ## Attaching package: 'data.table'

    ## The following object is masked from 'package:base':
    ##
    ##     %notin%

A dependency graph for all GitHub repos that use the `rworkflows` GitHub Action.

# Create

Here is the code for creating the plot.

## Install required packages

    if(!require("echodeps"))remotes::install_github("RajLabMSSM/echodeps",
                                                    dependencies = TRUE)

## Create graph

    res <- echodeps::dep_graph(pkg = "rworkflows",
                               method_seed = "github",
                               exclude = c("neurogenomics_rworkflows",
                                           "neurogenomics_r_workflows"),
                               #node_size = "total_downloads",
                               reverse = TRUE,
                               save_path = here::here("reports","rworkflows_depgraph.html"))

## Save data

    ## Save network plot as PNG
    echodeps::visnet_save(res$save_path)

    ## Save all data and plots
    saveRDS(res, here::here("reports","dep_graph_res.rds"))

## Count stars/clones/views

    knitr::kable(res$report)

# Show

## rworkflow depgraph

Hover over each node to show additional metadata.

# Identify highly downloaded packages

Identify the CRAN/Bioc R packages with the most number of downloads. This guides which packages would be the most useful to focus on implementing `rworkflows` in.

    pkgs <- echogithub::r_repos_downloads(which = c("CRAN","Bioc"))

    #### Get top 10 per R repository ####
    pkgs_top <- pkgs[, tail(.SD, 10), by="r_repo"]
    methods::show(pkgs_top)

# Assess R repository usage

This demonstrates the need for using `rworkflows`, as there are 25,000 R packages that are exclusively distributes via GitHub (which may or may not have code/documentation checks).

    r_repos_res <- echogithub::r_repos(save_path = here::here("reports","r_repos_upset.pdf"), width=12)

# Session Info

    utils::sessionInfo()

    ## R version 4.6.0 (2026-04-24)
    ## Platform: aarch64-apple-darwin23
    ## Running under: macOS Tahoe 26.4.1
    ##
    ## Matrix products: default
    ## BLAS:   /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRblas.0.dylib
    ## LAPACK: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
    ##
    ## locale:
    ## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
    ##
    ## time zone: Europe/London
    ## tzcode source: internal
    ##
    ## attached base packages:
    ## [1] stats     graphics  grDevices utils     datasets  methods   base
    ##
    ## other attached packages:
    ## [1] data.table_1.18.2.1 rworkflows_1.0.12
    ##
    ## loaded via a namespace (and not attached):
    ##  [1] gtable_0.3.6        jsonlite_2.0.0      renv_1.2.2
    ##  [4] dplyr_1.2.1         compiler_4.6.0      BiocManager_1.30.27
    ##  [7] tidyselect_1.2.1    jquerylib_0.1.4     rvcheck_0.2.1
    ## [10] scales_1.4.0        yaml_2.3.12         fastmap_1.2.0
    ## [13] here_1.0.2          ggplot2_4.0.3       R6_2.6.1
    ## [16] generics_0.1.4      curl_7.1.0          knitr_1.51
    ## [19] yulab.utils_0.2.4   tibble_3.3.1        desc_1.4.3
    ## [22] dlstats_0.1.7       rprojroot_2.1.1     bslib_0.10.0
    ## [25] pillar_1.11.1       RColorBrewer_1.1-3  rlang_1.2.0
    ## [28] cachem_1.1.0        badger_0.2.5        xfun_0.57
    ## [31] fs_2.1.0            sass_0.4.10         S7_0.2.2
    ## [34] otel_0.2.0          cli_3.6.6           magrittr_2.0.5
    ## [37] digest_0.6.39       grid_4.6.0          rstudioapi_0.18.0
    ## [40] rappdirs_0.3.4      lifecycle_1.0.5     vctrs_0.7.3
    ## [43] evaluate_1.0.5      glue_1.8.1          farver_2.1.2
    ## [46] rmarkdown_2.31      tools_4.6.0         pkgconfig_2.0.3
    ## [49] htmltools_0.5.9