Skip to content

Instantly share code, notes, and snippets.

@mikelove
Created January 17, 2023 16:38
Show Gist options
  • Save mikelove/258d0c719b07b654e79bb31e663109b1 to your computer and use it in GitHub Desktop.
Save mikelove/258d0c719b07b654e79bb31e663109b1 to your computer and use it in GitHub Desktop.
pkgDependencyGain
# edited from this function: https://github.com/seandavi/BiocPkgTools/blob/HEAD/R/pkgDependencyMetrics.R#L232
pkgDependencyGain <- function(pkg, depdf, depsToRemove) {
## fetch dependency graph
g <- buildPkgDependencyIgraph(depdf)
## exclude 'R', 'base' and 'methods'
excludedpkgs <- c("R", "base", "methods")
g <- igraph::induced_subgraph(g, setdiff(names(V(g)), excludedpkgs))
## get all reachable dependencies
deppkgs <- igraph::subcomponent(g, pkg, mode="out")
## get the induced subgraph of dependencies for 'pkg'
g.pkg <- igraph::induced_subgraph(g, deppkgs)
BiocPkgTools:::.getDepGain(g = g.pkg, pkg = pkg, depsToRemove = depsToRemove)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment