graph_kcore — GRAPH core op

• Data kinds: matrix → table

• Call: import fullseye as fs; fs.ledger.graph_kcore(adj, mode='total', weighted=False) (to call the implementation directly, import graphinv; graphinv.graph_kcore(adj, mode='total', weighted=False); from the registry, opsgraph.get("graph_kcore"))

Usage

k-core (or weighted s-core) decomposition of a wiring matrix — every node's core index.

A k-core is the maximal subgraph in which every node has degree at least k (Seidman 1983); a node's core index is the largest k of a core it belongs to. mode picks the degree: "in" (inputs a node receives), "out", "total" (in + out; a reciprocal pair counts twice, as in conngraph.graph_rich_club) or "undirected" (an edge in either direction counts once — this is what networkx.core_number computes on the symmetrised graph). With weighted=True the degree is the strength (sum of weights, e.g. synapse counts) and the result is the s-core of Eidsaa & Almaas 2013: the index is the running maximum of the minimum strength during peeling, so it is a real number with the units of the weights. Self-loops are dropped.

Returns a dict: core (n,) — the index per node (int for k-core, float for s-core); kmax — the innermost index; inner (n,) bool — nodes of the innermost core; n_inner; levels — the distinct indices in increasing order and counts — how many nodes have each (sum(counts) == n); mode; weighted.

Identities (the tests): a complete graph on n nodes has every index n−1; a tree 1; a cycle 2; undirected agrees with networkx.core_number on random graphs; the s-core of a 0/1 matrix equals the k-core; multiplying every weight by c multiplies every s-core index by c; the innermost core is never empty and every one of its nodes has at least kmax (weighted: strength) inside the core.

Raises ValueError: as graph_degree_summary (non-square, negative, non-finite, string / bool / complex / masked input); mode not one of in / out / total / undirected.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_worm_core_persists — py -3.11 examples/poc_worm_core_persists.py

Ops the type connects to (they accept table as input)

graph_edge_consensus · graph_core_persistence · tree_morphometry · tree_sholl · tree_run_length

Same category (core)

graph_rich_club_curve


*Provenance: graphinv.py — GRAPH operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.