tree_run_length — GRAPH tree op

• 데이터 종류: table × signal → table

• 호출: import fullseye as fs; fs.ledger.tree_run_length(tree, labels, background=0, zero_labels=None)(구현을 직접 호출하려면 import treemorph; treemorph.tree_run_length(tree, labels, background=0, zero_labels=None), 원장에서 가져오려면 opsgraph.get("tree_run_length"))

사용법

> 이 연산자의 설명은 아직 번역이 없습니다. 원문을 그대로 싣습니다.

Expected run length (ERL) of a skeleton under a candidate labelling of its nodes.

`labels` gives, for every node of the tree table, the candidate object it falls in.

A run is a maximal connected piece of the tree whose nodes all carry the same

label and that holds at least one edge; its length is the cable inside it (an edge

belongs to a run only if both ends share the label; a lone node between two cuts is

no run). Edges touching `background` belong to no run. Runs whose label is

in `zero_labels` (objects that also cover another skeleton — a merge) count as length

0, as in Januszewski et al. 2018: a merged run is not trustworthy anywhere.

`erl = sum(l_i^2) / L with L` the whole cable — the run length a point drawn

uniformly along the skeleton finds itself in (points on cut or background edges find

length 0). Also returns `run_lengths` (one per run, merged runs already zeroed),

`runs, max_run, cable_length, cut_edges` (both ends labelled, differently),

`background_edges and merged_runs`.

Identities: `erl == L` when every node carries one non-background label;

`sum(run_lengths) + cut cable + background cable == L`; for any labelling with

`k runs and no lost cable, erl >= L / k (Cauchy-Schwarz) and erl <= max_run`;

a path of length `L cut at m equally spaced points gives exactly L / (m + 1)`;

cut at `m uniformly random points, E[erl] = 2L / (m + 2)` (Dirichlet(1, .., 1)).

Raises `ValueError: not a tree table; labels` not one integer per node,

non-finite or non-integer.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_skeleton_run_length_vs_voi — py -3.11 examples/poc_skeleton_run_length_vs_voi.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

graph_edge_consensus · graph_core_persistence · tree_morphometry · tree_sholl

같은 카테고리(tree)

tree_from_swc · tree_morphometry · tree_sholl


*Provenance: treemorph.py — GRAPH 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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