Source code for phenotypic.schema._radial_expansion
"""Radial expansion measurements for filamentous fungal colonies."""
from ._measurement_info import Entry, MeasurementInfo
[docs]
class RADIAL_EXPANSION(MeasurementInfo):
"""Radial expansion measurements for filamentous fungal colonies.
Quantifies branching morphology by decomposing colony structure into a
dense core and peripheral branches via PELT changepoint detection on
radial density profiles, followed by skeleton-based branch tracing.
Includes runner detection for identifying anomalously long branches.
"""
[docs]
@classmethod
def category(cls) -> str:
return "RadialExpansion"
ROBUST_MEAN_RADIUS = Entry(
"RobustMeanRadius",
"Trimmed mean of branch path lengths, excluding detected runner. "
"Represents the typical radial expansion distance of hyphae from the "
"core boundary, robust to single-runner outliers.",
)
MEAN_RADIUS = Entry(
"MeanRadius",
"Arithmetic mean of all branch path lengths from core boundary to "
"branch tips. Includes runner if present. Reflects overall average "
"colony reach.",
)
MEDIAN_RADIUS = Entry(
"MedianRadius",
"Median branch path length. Robust to outliers and provides a "
"typical expansion distance.",
)
NUM_BRANCHES = Entry(
"NumBranches",
"Number of skeleton branches extending from the core boundary to "
"peripheral tips. Higher counts indicate denser branching morphology.",
)
MAX_BRANCH_LENGTH = Entry(
"MaxBranchLength",
"Length of the longest branch path in pixels. When a runner is "
"detected, this equals RunnerLength.",
)
RUNNER_LENGTH = Entry(
"RunnerLength",
"Path length of the detected runner branch (the single longest "
"outlier). NaN if no runner detected.",
)
RUNNER_DETECTED = Entry(
"RunnerDetected",
"Boolean flag (0 or 1) indicating whether an outlier runner branch "
"was detected for this colony.",
)
CORE_RADIUS = Entry(
"CoreRadius",
"Radius of the dense colony core as determined by PELT changepoint "
"detection on the radial density profile. Pixels within this radius "
"of the intensity-weighted centroid are excluded from skeleton analysis.",
)