Graph Analysis features a set of domains, each with its own subpackage. The currently covered domains are:
Bus detection: Detecting bus nodes in graphs, also called “hubs” or “integrative components”. See
Clustering: Detecting (nested) clusters of nodes in graphs that are relatively tightly connected. Both hierarchical and flat clustering algorithms are provided in the
Sequencing: Searching for sequences of nodes according to different algorithms using the
graph_analysis.sequencesubpackage. There are several metrics from literature available to grade sequences as well.
Heuristics: Useful combinations of algorithms available in the other subpackages are included in
Typically used functionality for each subpackage is directly included at the
subpackage’s top-level. This means, that for some analysis step, we typically import the
sequence below) and work from there:
from graph_io import Graph, Node from graph_analysis import sequence nodes = [Node("b"), Node("a")] seq = sequence.name(Graph(nodes=nodes)) # seq = [Node("a"), Node("b")].
Python packaging information¶
Installing the project and its dependencies can be done using
Building the project (creating a wheel) can be done using
The tests need to be put in the tests/ directory and can be run using
raver test on both Windows and Linux as long as Raver and its dependencies
pytest-cov are installed in the active
Python environment. Running
pytest in the tests directory works as well.