kirillseva / ruigi

Ruigi is a pipeline specialist, much like his python counterpart, Luigi.
42 stars 6 forks source link

Use igraph instead of hand rolled graph class #7

Closed jiwalker-usgs closed 7 years ago

jiwalker-usgs commented 7 years ago

Just a thought, but there is already a graph package that has a decent amount of use (https://cran.r-project.org/web/packages/igraph/index.html) that it might be wise to use for the graph operations.

kirillseva commented 7 years ago

@jiwalker-usgs hey, thanks for interest! I did investigate this, but ended up not using another package for the following reasons:

  1. In terms of graph functionality I only need topological sort which wasn't too hard to implement.
  2. igraph requires the graph to be in some special format that it will understand - so I'd have to write a converted between ruigi format and igraph format.
  3. Less dependencies is generally better for maintainability.

Routines for simple graphs and network analysis. It can handle large graphs very well and provides functions for generating random and regular graphs, graph visualization, centrality methods and much more.

The only thing I'd benefit from would be graph visualization, which wouldn't be hard to generate using something like http://rich-iannone.github.io/DiagrammeR/graph_creation.html

jiwalker-usgs commented 7 years ago

That's perfectly fine reasoning. I was looking into your topological sort function and was kind of just wondering. Thanks.