Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
276 changes: 243 additions & 33 deletions _pages/plugins/snt/auto-tracing.md

Large diffs are not rendered by default.

31 changes: 17 additions & 14 deletions _pages/plugins/snt/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,33 @@ The [source repository](https://github.com/morphonets/SNT) contains more details
{% include gallery align="fill" content=
"
/media/plugins/snt/snt-auto-tracing-overview.png | [Fully automated tracing](/plugins/snt/auto-tracing) from both [grayscale images](./auto-tracing#grayscale-images) (no thresholding required) and [segmented images](./auto-tracing#segmented-images)
/media/plugins/snt/snt-bvv.png | [Big-data (out-of-core) support](/plugins/snt/big-data): Automatic switch to disk-backed processing for TB-scale datasets that don’t fit in RAM (experimental)
/media/plugins/snt/snt-autotracing-multiple-somata.webp | [Fully automated tracing](/plugins/snt/auto-tracing) of [multiple cells in the same image](./auto-tracing#multiple-cells)
/media/plugins/snt/snt-autotracing-groundtruth-learning.png | [Auto-tuned tracing](./auto-tracing#learning-parameters-from-selected-paths): Learned tracing parameters from manually traced paths
/media/plugins/snt/snt-soma-detection.png | Automated [soma detection](/plugins/snt/auto-tracing#soma-detection)
/media/plugins/snt/snt-4D-examples.png | [Semi-automated tracing](/plugins/snt/walkthroughs#semi-automated-tracing): Support for multi-channel and [timelapse](/plugins/snt/walkthroughs#time-lapse-analysis) images
/media/plugins/snt/snt-soma-detection.png | Automated [soma detection](/plugins/snt/auto-tracing#soma-detection) (no thresholding required)
/media/plugins/snt/snt-v3-overview.png | [Scripted routines](/plugins/snt/scripting#snt-scripts) co-exist with graphical user interface operations
/media/plugins/snt/snt-spectral-unmixing.png | Support for [Brainbow-like images](./walkthroughs#tracing-in-multichannel-brainbow-images)
/media/plugins/snt/snt-script-example.png | [Scripting](/plugins/snt/scripting) in any of Fiji's supported languages facilitated by SNT's [Script Recorder](/plugins/snt/scripting#script-recorder)
/media/plugins/snt/snt-notebook.png | Scripting in native Python using [PySNT](https://pysnt.readthedocs.io/en/latest/)
/media/plugins/snt/snt-delaunay-triangulation.png | Delaunay tessellation: Tracings can be used in [image processing routines](/plugins/snt/manual#process-)
/media/plugins/snt/snt-density-map.png | Density maps for group(s) of cells obtained from [built-in scripts](/plugins/snt/scripting#bundled-templates)
/media/plugins/snt/snt-recviewer-convexhull-and-surface.png | [Convex hulls](/plugins/snt/analysis#convex-hull-analysis) and [surface annotations](/plugins/snt/reconstruction-viewer#geometric-annotations)
/media/plugins/snt/snt-montage-light.png | Quantitative and publication quality visualizations
/media/plugins/snt/snt-montage-dark.png | Data-rich 3D visualizations
/media/plugins/snt/snt-rec-viewer-demo2-dark.gif | [Interactive 3D scenes](/plugins/snt/reconstruction-viewer)
/media/plugins/snt/snt-bvv.png | [Big data support](/plugins/snt/big-data): TB-scale datasets that exceed available RAM (experimental)
/media/plugins/snt/snt-curation-assistant.png | [Calibrated, real-time quality-control](./curation#curation-assistant) of traced morphologies
/media/plugins/snt/snt-labkit-training.png | [Semantic segmentation](/plugins/snt/machine-learning)
/media/plugins/snt/sholl-analysis-outputs.png | [Sholl](/plugins/snt/sholl) and [Strahler](/plugins/snt/analysis#strahler) directly from images (bypassing tracing)
/media/plugins/snt/snt-angular-sholl.png | Advanced [Sholl-based quantifications](/plugins/snt/sholl#angular-sholl)
/media/plugins/snt/snt-root-angle-analysis.png | [Root Angle Analysis](/plugins/snt/analysis#root-angle-analysis)
/media/plugins/snt/snt-local-angle-surface-analysis.png | Analysis of [surface angles/arbor orientation](/plugins/snt/metrics#extension-angle)
/media/plugins/snt/snt-delineation-analysis2.png | [Delineation analyses](/plugins/snt/walkthroughs#delineation-analysis)
/media/plugins/snt/snt-growth-analysis.png | [Growth Analysis](/plugins/snt/analysis#growth-analysis)
/media/plugins/snt/snt-delineation-analysis2.png | [Delineation analyses](/plugins/snt/walkthroughs#delineation-analysis)
/media/plugins/snt/snt-ferris-wheel.png | Routines to summarize [innervation patterns](/plugins/snt/analysis#graph-based-analysis)
/media/plugins/snt/graph-viewer-ferris-wheel.png | Routines to summarize data from [projectomes and connectomics](/plugins/snt/analysis#graph-based-analysis)
/media/plugins/snt/snt-2d-histogram.png | Specialized [statistics](/plugins/snt/analysis#statistics)
/media/plugins/snt/snt-labkit-training.png | [Semantic segmentation](/plugins/snt/machine-learning)
/media/plugins/snt/snt-astrocyte-example.png | Glia analysis: Bulk characterization (width and length) of astrocytic processes ([use case](https://forum.image.sc/t/determining-astrocyte-width-from-2d-images-using-fiji-snt/56426/2))
/media/plugins/snt/snt-delaunay-triangulation.png | Delaunay tessellation: Tracings can be used in [image processing routines](/plugins/snt/manual#process-)
/media/plugins/snt/snt-density-map.png | Density maps for group(s) of cells obtained from [built-in scripts](/plugins/snt/scripting#bundled-templates)
/media/plugins/snt/snt-recviewer-convexhull-and-surface.png | [Convex hulls](/plugins/snt/analysis#convex-hull-analysis) and [surface annotations](/plugins/snt/reconstruction-viewer#geometric-annotations)
/media/plugins/snt/snt-montage-light.png | Quantitative and publication-quality visualizations
/media/plugins/snt/snt-montage-dark.png | Rich 3D visualizations with dark theme
/media/plugins/snt/snt-rec-viewer-demo2-dark.gif | [Interactive 3D scenes](/plugins/snt/reconstruction-viewer)
/media/plugins/snt/snt-v3-overview.png | [Scripted routines](/plugins/snt/scripting#snt-scripts) co-exist with graphical user interface operations
/media/plugins/snt/snt-script-example.png | [Scripting](/plugins/snt/scripting) in any of Fiji's supported languages facilitated by SNT's [Script Recorder](/plugins/snt/scripting#script-recorder)
/media/plugins/snt/snt-notebook.png | Scripting in native Python using [PySNT](https://pysnt.readthedocs.io/en/latest/)
/media/plugins/snt/snt-astrocyte-example.png | Glia analysis: Quantification of [astrocyte and microglia morphologies](./auto-tracing#multiple-cells)
/media/plugins/snt/snt-non-neuronal-example.png | Not only neurons: SNT can be used to analyze many types of filamentous structures
"
%}
Expand Down
5 changes: 4 additions & 1 deletion _pages/plugins/snt/key-shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ The [Command Palette](manual#command-palette) ({% include key keys='ctlcmd|Shift
| {% include key key='1' %} | Toggles the first visibility filter: Whether all traced paths should be displayed or just selected ones |
| {% include key key='2' %} | Toggles the second visibility filter: Whether all nodes should be displayed across the Z-stack or just those in nearby Z-slices |
| {% include key key='3' %} | Toggles the third visibility filter: Whether paths from all channels/frames should be displayed or just those in the active channel/frame |
| {% include key key='G' %} | Selects the nearest path to the mouse cursor. Holding {% include key keys='Shift|G' %} adds the path nearest to the mouse cursor to the current list of selected paths. *Mnemonic: <u>G</u>rab paths around cursor.* Note that Paths can only be edited one at a time, and thus {% include key keys='Shift|G' %} is disabled in *Edit Mode* |
| {% include key key='G' %} | <u>G</u>rabs the nearest path to the mouse cursor. Holding {% include key keys='Shift|G' %} adds the nearest path to the current selection. Note that Paths can only be edited one at a time, and thus {% include key keys='Shift|G' %} is disabled in *Edit Mode* |
| {% include key key='H' %} | Temporarily <u>H</u>ides all paths/annotations while pressed |
| {% include key key='O' %} | Temporarily shows path <u>O</u>rientations (start→end direction) while pressed |

Expand Down Expand Up @@ -87,9 +87,12 @@ These shortcuts become available in *Edit Mode*, activated through the contextua
| {% include key key='I' %} | <u>I</u>nserts a new node at cursor position |
| {% include key key='L' %} | <u>L</u>ocks active node to prevent accidental editing |
| {% include key key='M' %} | <u>M</u>oves active node to cursor position |
| {% include key key='P' %} | Toggle <u>P</u>aint Mode for brush editing |
| {% include key key='R' %} | Changes the <u>R</u>adius of active node |
| {% include key key='X' %} | Splits tree at active node, re-rooting the selected structure at the active node |
| {% include key key='Z' %} | Undo last operation |
| {% include key keys='Ctrl|Mouse Wheel' %} | Adjust node radius / brush size (Paint Mode) |
| {% include key keys='Alt|Drag' %} | Move node / blend radii (Paint Mode) |

### Reconstruction Viewer

Expand Down
45 changes: 36 additions & 9 deletions _pages/plugins/snt/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,23 +152,34 @@ Exits the program.

### Auto-trace ›

#### Grayscale Image (GWDT)...
Runs fully automated tracing directly from a **grayscale (intensity) image** already open in SNT (no binarization required). The approach uses **Gray-Weighted Distance Transform (GWDT)** with Fast Marching and expects bright-on-dark imagery. See [Autotracing › Grayscale Images](/plugins/snt/auto-tracing#grayscale-images) for details.
#### Grayscale Image...
Runs fully automated tracing of a single cell directly from a **grayscale (intensity) image** already open in SNT (no binarization required). See [Autotracing › Grayscale Images](/plugins/snt/auto-tracing#grayscale-images) for details.

#### Grayscale Image (GWDT) File...
#### Grayscale Image (Multiple Cells)...
Runs automated tracing of **multiple cells** in a single grayscale image. Automatically detects all soma locations, then traces each cell independently using exclusion masks to prevent territory overlap. See [Auto-tracing › Multiple Cells](/plugins/snt/auto-tracing#multiple-cells) for details.

Same as {% include bc path='Grayscale Image (GWDT)...' %}, but loads the grayscale image from a **file path** (including [big-data/out-of-core](/plugins/snt/big-data) datasets). See [Auto-tracing › Grayscale Images](/plugins/snt/auto-tracing#grayscale-images) for details.
#### Detect Soma(s)...
Standalone tool for automatic soma/root detection in neuronal images, and can export results as a path node or ROI (point, contour, circle) for annotation or seeding autotracing. Options include:

#### Detect Soma...
Standalone tool for automatic soma/root detection in neuronal images. Detects the thickest and brightest structures using an EDT×intensity score, and can export results as a path node or ROI (point, countour, circle) for annotation or seeding autotracing. See [Auto-tracing › Soma Detection](/plugins/snt/auto-tracing#soma-detection) for details.
- **Scope** Whether to detect only the single brightest/largest soma or all somata in the image. When detecting all somata, additional filtering parameters become available

- **Output type** How results are exported: as a _Single-node path_ (for seeding autotracing), _Point ROI_, _Area ROI_ (contour from thresholding), or _Circular ROI_ (circle with EDT-derived radius)

Remaining options are described in [Auto-tracing › Soma Detection](/plugins/snt/auto-tracing#soma-detection).

#### Autotrace Segmented Image...

Runs fully automated tracing on a segmented image that is already open. A segmented image can be a binary mask or a thresholded image, where background pixels have been set to zero. See [Auto-tracing › Segmented Images](/plugins/snt/auto-tracing#segmented-images) for details.

#### Grayscale Image File(s)...
Batch-capable variant that loads grayscale images from a **file** or **directory**, traces a single cell per image using GWDT autotracing, and exports reconstructions as SWC files. See [Auto-tracing › Grayscale Images](/plugins/snt/auto-tracing#grayscale-images) and [Batch Processing](/plugins/snt/auto-tracing#batch-processing) for details.

#### Grayscale Image File(s) (Multiple Cells)...
Batch-capable variant that loads grayscale images from a **file too large to be loaded into memory** (e.g., an OME-ZARR, or .IMS file) or **directory**, detects all soma locations, and traces each cell independently using GWDT autotracing with exclusion masks. Results are exported as SWC files (one per detected cell). See [Auto-tracing › Multiple Cells](/plugins/snt/auto-tracing#multiple-cells) and [Batch Processing](/plugins/snt/auto-tracing#batch-processing) for details.

#### Autotrace Segmented Image File...

Same as {% include bc path='Autotrace Segmented Image...' %}, but loads the segmented image from a file path instead of using an image already open. See [Fully automated tracing](/plugins/snt/auto-tracing#segmented-images) for details.
Batch-capable variant that loads segmented images from a **directory**, traces each image, and exports the resulting reconstructions as SWC files. See [Auto-tracing › Segmented Images](/plugins/snt/auto-tracing#segmented-images) and [Batch Processing](/plugins/snt/auto-tracing#batch-processing) for details.


### Analysis ›
Expand Down Expand Up @@ -617,7 +628,7 @@ The status bar at the bottom of the Main Dialog displays brief messages about on
Right-clicking on any of the tracing views will bring up a menu with various editing tools. The corresponding [keyboard shortcuts](/plugins/snt/key-shortcuts) are shown to the right of each option. The list includes:


### Select Nearest Path {% include key key='G' %}
### Grab Nearest Path {% include key key='G' %}
Selects ("<u>G</u>roups") the path closest to the mouse cursor.

### Add Nearest Path to Selection {% include key key='Shift|G' %}
Expand Down Expand Up @@ -661,7 +672,7 @@ Removes the last segment from the temporary path.
Finishes the temporary path. Note that a path can always be finished by {% include key key='double click' %}

## Edit Mode {% include key keys='Shift|E' %}
Pressing *Edit Mode*, selects the nearest path for editing, unlocking the edit options. When *Edit Mode* is active, moving the mouse cursor along the path will highlight the nearest node with a crosshair icon and synchronize the current Z-slice to the location of that node. Note that the ability to create new paths is temporarily disabled when in *Edit Mode*.
Pressing *Edit Mode*, selects the nearest path for editing, unlocking the edit options. When *Edit Mode* is active, moving the mouse cursor along the path will highlight the nearest node with a crosshair icon and synchronize the current Z-slice to the location of that node. Note that the ability to create new paths is temporarily disabled when in *Edit Mode*. For brush-based editing of multiple nodes at once, see [Paint Mode](#paint-mode-p) below.

### Bring Active Node to Current Z-plane {% include key key='B' %}
Moves the active node to the active Z-plane. Note that the translation is only done in Z. XY positions are unchanged.
Expand Down Expand Up @@ -714,6 +725,22 @@ Reorganizes the existing tree so that the active node becomes its root.
### Split Tree at Active Node {% include key key='X' %}
Splits the current tree into two subtrees by disconnecting the active node from its parent structure

### Paint Mode {% include key key='P' %}
Toggles Paint Mode, a brush-based sub-mode of Edit Mode for adjusting paths. In Paint Mode, operations fade smoothly from full effect at the cursor to no effect at the brush edge, like a soft brush in image editors. The brush radius (number of flanking nodes affected) is displayed in the status label.

**{% include key keys='Drag' %}** Moves nodes within the brush radius toward the cursor, weighted by proximity to the center node (Gaussian-like displacement)

**{% include key keys='Alt|Drag' %}** Blends radii from the center node outward. Each flanking node's radius is pulled toward the center node's radius with fading falloff. Dashed arcs show the brush extent during the operation.

**{% include key keys='Ctrl|Mouse Wheel' %}** Adjusts the brush radius (number of flanking nodes). Transient dashed arcs preview the brush extent.

Press {% include key key='P' %} again or exit Edit Mode to leave Paint Mode. Undo ({% include key key='Z' %}) reverts the last paint stroke.

{% capture tip-paint%}
Use {% include key key='R' %} to set the center node's radius first, then {% include key keys='Alt|Drag' %} to propagate it smoothly along the path.
{% endcapture %}
{% include notice icon="tip" content=tip-paint %}


## Pause Tracing {% include key keys='Shift|P' %}
Disables tracing functions until this option is deselected. Tracing views are annotated with the *Tracing Paused* [label](#misc) to indicate this state.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading