obnb
obnb copied to clipboard
Add `networkx` as a choice of graph backend
In the early development of the nleval
project, a lightweight graph object was implemented and was used throughout the codebase for the sake of computational and memory efficiencies over networkx
. However, there has been a lot of improvement made to the networkx
library and it is worth exploring its current state and finding out whether there is a good way to implement backend support using networkx
.
Motivation
-
networkx
contains comprehensive features for processing graphs. -
networkx
is commonly used by many other libraries for, e.g., plotting - The
native
graph object innleval
is fast, lightweight, and can scale to genome-scale graph efficiently.
Plan
- [ ] Think of abstraction to allow different graph backend
- [ ] (add more specifics here)