Package sc.fiji.snt.tracing.auto
Class RootDetector
java.lang.Object
sc.fiji.snt.tracing.auto.RootDetector
Detects candidate locations where several unconnected primary paths - e.g. tracings whose own soma wasn't imaged, or
simply not yet joined to one - may converge on a shared, unimaged origin, and reports them as ranked
SeedPoints.
Mirrors TuftDetector, but at the opposite topological end: instead of clustering a tree's own terminal
structure (tips converging on a tuft), it clusters the root node of every unconnected, non-soma primary
Path pooled across the scanned Trees.
Unlike tuft candidates - which already belong to the same tree, so proximity only corroborates something already
topologically true - root candidates come from independent fragments with no prior relationship: proximity is
the only evidence tying them together. So, unlike TuftDetector, a root with no other root
nearby is not reported: on its own it's most likely just an ordinary, complete reconstruction, not a genuine
unimaged-soma candidate.
- Author:
- Tiago Ferreira
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionRootDetector(double radius) Creates a detector with the given convergence radius. -
Method Summary
Modifier and TypeMethodDescriptiondetect(Collection<Tree> trees) Detects root-convergence candidates pooled across everyTreeintrees- deliberately not per-tree, since the whole point is catching fragments that live in structurally unrelatedTrees (or unconnected primary paths within one).voidsetPercentileClip(double percentileClip) Sets the robustness margin (0-45) for confidence normalization; seeSeedConfidence.percentileClipNormalize(double[], double).voidsetRadius(double radius) Sets the convergence radius (physical units).voidsetWeightByThickness(boolean weightByThickness) Sets whether each root's recorded thickness (PointInImage.radius) is added to its neighbor count when scoring: a thicker root stub is more plausibly soma-adjacent than a thin one.
-
Constructor Details
-
RootDetector
public RootDetector(double radius) Creates a detector with the given convergence radius.- Parameters:
radius- neighborhood radius (physical units) within which two unconnected roots are considered candidates for the same unimaged origin
-
-
Method Details
-
setRadius
public void setRadius(double radius) Sets the convergence radius (physical units). -
setWeightByThickness
public void setWeightByThickness(boolean weightByThickness) Sets whether each root's recorded thickness (PointInImage.radius) is added to its neighbor count when scoring: a thicker root stub is more plausibly soma-adjacent than a thin one. Default: true -
setPercentileClip
public void setPercentileClip(double percentileClip) Sets the robustness margin (0-45) for confidence normalization; seeSeedConfidence.percentileClipNormalize(double[], double). Default: 10 -
detect
Detects root-convergence candidates pooled across everyTreeintrees- deliberately not per-tree, since the whole point is catching fragments that live in structurally unrelatedTrees (or unconnected primary paths within one).- Parameters:
trees- the trees to scan- Returns:
- one
SeedPointper detected convergence, sorted by descending confidence. Empty if fewer than two unconnected, non-soma primary paths converge anywhere acrosstrees
-