tree op• Data kinds: table → table
• Call: import fullseye as fs; fs.ledger.tree_sholl(tree, radii=None, n_radii=50, plane=None, center=None) (to call the implementation directly, import treemorph; treemorph.tree_sholl(tree, radii=None, n_radii=50, plane=None, center=None); from the registry, opsgraph.get("tree_sholl"))
Sholl analysis: segments crossing spheres (3-D) or circles (a projection) around the root.
`radii are the shell radii (ascending, positive); if omitted, n_radii` shells at
the mid-points of equal steps up to the largest distance from the centre (never exactly
on a node's distance). A shell passing exactly through a node is ambiguous under
rounding — a rotation may move that node by one ulp to either side. `plane=None` measures in 3-D;
`plane="xy" | "xz" | "yz"` drops the third axis first — what a single image sees.
`center` defaults to the root position.
A segment (parent-child) crosses radius `r` when its end points lie strictly on
opposite sides of `r (the endpoint rule). Returns radii, crossings` (int array),
`max_crossings, radius_at_max and integral` — the exact area under the whole
continuous Sholl curve, computed from the segments' intervals (independent of where
the shells are placed).
Identities: in 3-D the crossings are invariant, integer for integer, under any rotation
about the centre; and `integral equals sum |d_child - d_parent|` (the tests also
check that the mid-point sum of the sampled crossings converges to it — a second
implementation).
Raises `ValueError: not a tree table; plane` not one of None/xy/xz/yz;
radii not 1-D, not finite, not positive or not strictly increasing; `n_radii < 1`.
• 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.
• poc_swc_tree_truth — py -3.11 examples/poc_swc_tree_truth.py
• poc_worm_neurites_grow — py -3.11 examples/poc_worm_neurites_grow.py
table as input)graph_edge_consensus · graph_core_persistence · tree_morphometry · tree_run_length
tree)tree_from_swc · tree_morphometry · tree_run_length
*Provenance: treemorph.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.