---
title: "Dependency graph"
author: "
Authors: `r auths <- eval(parse(text = gsub('person','c',read.dcf('../DESCRIPTION', fields = 'Authors@R'))));paste(auths[names(auths)=='given'],auths[names(auths)=='family'], collapse = ', ')`
"
date: "Vignette updated: `r format( Sys.Date(), '%b-%d-%Y')`
"
output:
rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{depgraph}
%\usepackage[utf8]{inputenc}
%\VignetteEngine{knitr::rmarkdown}
---
```{r}
library(data.table)
```
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
``` r
if(!require("echodeps"))remotes::install_github("RajLabMSSM/echodeps",
dependencies = TRUE)
```
## Create graph
``` r
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
``` r
## 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
```r
knitr::kable(res$report)
```
# Show
## [rworkflow depgraph](https://github.com/neurogenomics/rworkflows/raw/master/reports/rworkflows_depgraph.png)
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.
```r
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
r_repos_res <- echogithub::r_repos(save_path = here::here("reports","r_repos_upset.pdf"), width=12)
```
# Session Info
```{r Session Info}
utils::sessionInfo()
```