OrbitSI
OrbitSI solves the subgraph isomorphism problem: it finds every subgraph of a large, vertex-labelled data graph \(G_d\) that is isomorphic to a pattern graph \(G_p\), or counts them. It also counts vertex orbits, which summarise the structural role of each vertex within its graphlets.
OrbitSI prunes the candidate mappings of each pattern vertex with orbit counts, then searches in an order also guided by them. Orbits are counted by two state-of-the-art engines, EVOKE and ORCA, through C++ bindings. Graphs are NetworkX graphs; filtering, ordering and counting also run in a C++ core, the default for counting, and graph files are read in C++ straight into arrays.
from orbitsi.utils import read_graph_from_file
from orbitsi.orbit import EVOKEOrbitCounter
from orbitsi.search import OrbitSIEngine
G = read_graph_from_file("data.graph")
P = read_graph_from_file("pattern.graph")
OrbitSIEngine(G, EVOKEOrbitCounter).count(P)
User guide
Reference
About