Skip to content

Commit 6e3f251

Browse files
authored
Merge pull request #416 from imagej/snt-509
snt: fix typos and add rec viewer's undocumented commands
2 parents 15a23e6 + b428bc3 commit 6e3f251

6 files changed

Lines changed: 67 additions & 41 deletions

File tree

_pages/plugins/snt/auto-tracing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ For technical implementation details and references, see the [SNT technical note
100100

101101
The {% include bc path='Auto-trace|Detect Soma...' %} command provides automated detection of cell bodies in neuronal images. This is a standalone tool that can be used before autotracing to identify soma locations, or independently to annotate soma positions and sizes.
102102

103-
{% include img align="center" name="Soma Detection" src="/media/plugins/snt/snt-soma-detection.png" caption="Automated soma detection: ROI countour (Cultured hippocamapl neurons: _Neuronal receptors_/_Synaptic labeling_ demo datasets)" %}
103+
{% include img align="center" name="Soma Detection" src="/media/plugins/snt/snt-soma-detection.png" caption="Automated soma detection: ROI countour (Cultured hippocampal neurons: _Neuronal receptors_/_Synaptic labeling_ demo datasets)" %}
104104

105105
## Detection Strategy
106106

_pages/plugins/snt/comp-tools.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ update-site: Neuroanatomy
1212

1313
| Tool | Description | Comments |
1414
|------|-------------|----------|
15-
| [Spot Spine](/plugins/spot-spine) | Detection and count dendritic spines, segmentation of spine heads, and quantitative morphological measurements of spines | Under active development |
15+
| [Spot Spine](/plugins/spot-spine) | Detection and count of dendritic spines, segmentation of spine heads, and quantitative morphological measurements of spines | Under active development |
1616
| [BigTrace](/plugins/bigtrace) | Semi-automated/automated tracing of unbranched structures using BigVolumeViewer | Under active development |
1717
| [NeuronJ](/plugins/neuronj) | Semi-automated tracing in 2D only | No longer maintained. SNT reads NDF files |
1818

_pages/plugins/snt/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ This is a human-driven workflow: the reviewer examines paths one by one, applies
116116
Thresholds can be tuned manually, calibrated from reference cells, or loaded from preset files. Warnings are generated algorithmically and displayed in a sortable table with one-click navigation to each issue.
117117
The assistant does not make quality judgments; it surfaces statistical anomalies that may warrant a closer look.
118118

119-
In practice, the two tools serve different stages: the Curation Assistant catches potential errors *during* tracing (or shortly after), while the Proofreading toolbar supports structured *review* of traced strucures.
119+
In practice, the two tools serve different stages: the Curation Assistant catches potential errors *during* tracing (or shortly after), while the Proofreading toolbar supports structured *review* of traced structures.
120120

121121

122122
## Sholl Analysis

_pages/plugins/snt/manual.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ Presents a list of previously created backups and replaces the current tracings
122122
To use this feature:
123123
{% include img src="/media/plugins/snt/snt-recover-from-snapshot.png" align="right" width="300px" %}
124124

125-
1. Trace one more paths
125+
1. Trace one or more paths
126126
2. Save them to a local file using {% include key key='ctlcmd|S' %} ({% include bc path='File|Save Tracings|Save' %})
127127
3. Keep tracing paths. When pertinent, press {% include key key='ctlcmd|Shift|S' %} ({% include bc path='File|Backup Tracings' %}) to save current progress to a timestamped backup file
128128
4. Reinstate progress from backed up data using {% include bc path='File|Revert to Backup...' %}, which allows you to go 'back in time'
@@ -643,7 +643,7 @@ Creates a fork point at the node closest to the mouse cursor. Once a fork point
643643
Removes the last segment from the temporary path.
644644

645645
### Finish Path {% include key key='F' %}
646-
Finishes the temporary path. Not that a path can always be finished by {% include key key='double click' %}
646+
Finishes the temporary path. Note that a path can always be finished by {% include key key='double click' %}
647647

648648
## Edit Mode {% include key keys='Shift|E' %}
649649
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*.

_pages/plugins/snt/reconstruction-viewer.md

Lines changed: 60 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ forum-tag: snt
88
---
99

1010
{% capture version%}
11-
**This page was last revised for [version 5.0.0](https://github.com/morphonets/SNT/releases)**.<br>
11+
**This page was last revised for [version 5.0.9](https://github.com/morphonets/SNT/releases)**.<br>
1212
Please help us to keep up-to-date documentation by [editing](https://github.com/imagej/imagej.github.io/edit/main/_pages/plugins/snt/reconstruction-viewer.md) this page directly to fill in any documentation gap. Do [reach out](https://forum.image.sc/tag/snt) if you need assistance!
1313
{% endcapture %}
1414
{% include notice content=version %}
@@ -63,52 +63,58 @@ The RV Controls dialog is the Reconstruction Viewer equivalent to the [Path Mana
6363
This menu provides control over the rendered scene.
6464
<img align="right" src="/media/plugins/snt/snt-recviewer-scene-controls.png" alt="Scene Controls" title="Scene Controls" width="300" />
6565

66-
### Toggle Dark Mode
67-
Switches between dark and light theme. Shortcut: {% include key key='D' %}
68-
6966
### Fit to Visible Objects
7067
Computes a bounding box containing all objects of the scene and adjusts the zoom level to ensure all objects are within the camera view. Shortcut: {% include key key='F' %}
7168

7269
### Fit to Selection
7370
Zooms into the object(s) currently selected in the object list.
7471

75-
### Impose Isotropic Scale ›
76-
Squares the aspect ratio of the selected dimensions, leaving the others unchanged. Default is _None_.
77-
78-
### Axes ›
79-
Controls to label, toggle and change the orientation of the cartesian axes of the scene. The 'Flip axis' commands may be useful to mitigate mismatches between cartesian and anatomical orientations.
80-
81-
### Stretch-to-Fill
82-
Stretches the projection on the whole viewport. NB: This may distort proportions in the scene.
83-
8472
### Viewer Size...
8573
Allows fine-control over the viewer dimensions (useful for, e.g., resizing the viewer to known dimensions before recording an animation).
8674

8775
### Full Screen
8876
Enters full screen mode ({% include key keys='Shift|F' %}). To exit full screen press {% include key key='ESC' %}
8977

78+
### Aspect Ratio/Scaling ›
79+
Options to impose isotropic spacing by "squaring" the aspect ratio of the selected dimensions, leaving the others unchanged. Default is _None_ (No imposition).
80+
This menu also includes a _Stretch-to-Fill_ option that stretches the projection on the whole viewport. NB: This may distort proportions in the scene.
81+
82+
### Axes ›
83+
Controls for the Cartesian axes of the scene, including:
84+
85+
- {% include bc path='Anatomical Mapping...'%} Opens a dialog to assign anatomical labels and orientations to scene axes (e.g., Anterior–Posterior, Dorsal–Ventral, Left–Right), useful when working with registered data from reference atlases
86+
- {% include bc path='Axes Labels...'%} Allows manual renaming of the X, Y, and Z axis labels
87+
- {% include bc path='Display Frame'%} Toggles the full bounding frame (axis box) around the scene
88+
- {% include bc path='Toggle Axes'%} Shows or hides the axis lines. Shortcut: {% include key key='A' %}
89+
- {% include bc path='XY View: Flip Horizontal Axis / Flip Vertical Axis'%} Flips the specified axis in the XY constrained view, which can be useful to mitigate mismatches between Cartesian and anatomical orientations (e.g., when left–right or dorsal–ventral conventions differ from the default rendering)
90+
91+
### Scale Bar ›
92+
Controls for an overlay scale bar rendered on the scene canvas:
93+
94+
- {% include bc path='Display Scale Bar'%} Toggles the scale bar overlay. When first enabled, a notification reminds the user of the assumed base unit
95+
- {% include bc path='Set Base Unit...'%} Specifies the spatial unit of the scene coordinates (µm, nm, mm, or pixels). This determines how the scale bar length is computed and labeled
96+
97+
### Toggle Dark Mode
98+
Switches between dark and light theme. Shortcut: {% include key key='D' %}
99+
90100
### Reset View
91101
Resets the view point, view mode, and zoom level, fitting and centering all scene objects into the camera view. Shortcut: {% include key key='R' %}
92102

93103
### Reload Scene
94104
Resets the view and checks if all the drawables in the scene are being rendered properly. If not, allows the scene to be rebuilt completely. Shortcut: {% include key keys='CTRL|R' %}
95105

96-
### Rebuild Scene
106+
### Rebuild Scene...
97107
Clears all objects from the scene then rebuilds them from scratch. Shortcut: {% include key keys='CTRL|SHIFT|R' %}
98108

99-
### Wipe Scene
109+
### Wipe Scene...
100110
Removes all objects from the scene (this action is undoable).
101111

102-
### Scene Shortcuts...
103-
Displays the viewer's hotkeys. Shortcut: {% include key keys='F1' %}
104-
105112
### Duplicate Scene
106113
Stores the current scene into a new non-interactive instance of the viewer to allow side-by-side rendering of detailed scenes.
107114

108115
### Sync Path Manager Changes
109116
This option is only available when the viewer was initialized from SNT. It ensures any pending changes performed in the Path Manager percolate into the 3D scene. Shortcut: {% include key keys='CTRL|SHIFT|S' %}
110117

111-
112118
## Neuronal Arbors
113119
This menu relates to the import, customization and management of reconstructions and is organized into three sections.
114120
<img align="right" src="/media/plugins/snt/snt-recviewer-arbor-controls.png" alt="Neuronal Arbors" title="Neuronal Arbors" width="300" />
@@ -163,7 +169,7 @@ This section of the menu includes commands for deleting reconstructions from the
163169
This menu includes commands for loading, managing, and customizing 3D meshes commonly used to represent surface meshes of anatomical structures, neuropil labels, or brain compartments. Currently only Wavefront OBJ files are supported. It is also organized in three sections:
164170
<img align="right" src="/media/plugins/snt/snt-recviewer-mesh-controls.png" alt="3D Meshes" title="3D Meshes" width="300" />
165171

166-
### Add Meshes
172+
### Load OBJ File(s)...
167173
Includes commands for import and rendering of Wavefront OBJ files, or folders containing multiple files.
168174

169175
### Customize Meshes
@@ -172,33 +178,31 @@ Includes commands for adjustment of the color and transparency of the selected m
172178
### Remove 3D Meshes
173179
This section of the menu includes commands for deleting meshes from the scene. Note that you can also remove objects using the [contextual menu](#contextual-menu).
174180

175-
176181
## Geometric Annotations
177182
This menu includes commands for handling geometric annotations such as points, vectors, surface, and cross-section planes.
178183

179184
<img align="right" src="/media/plugins/snt/snt-recviewer-annot-controls.png" alt="Geometric Annotations" title="Geometric Annotations" width="350" />
180185

181186
### Add Annotations
182-
Commands for adding cross-section planes, surfaces, as well as simpler primitives (spheres, vectors, and planes). Annotations can be split in two categories:
187+
Commands for adding cross-section planes, surfaces, as well as simpler primitives (spheres, vectors, and planes). Annotations can be split in three categories:
183188

184189
#### Cross-section planes
185190
Cross-section planes can be cell-based or mesh-based:
186191

187-
- Cell-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of either dendrites, or axons, or at the center of cell soma
192+
- Tree-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of either dendrites, or axons, or at the center of cell soma
188193
- Mesh-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of the mesh
189194

190195
#### Surfaces
191196
Similarly to [convex hulls](#convex-hull), surfaces reflect enclosing polyhedrons. Surfaces can also be of two types:
192197

193-
- Cell-based: Cell-based surfaces can be assembled from the point cloud defined by branch-points or tips of a neuronal arbor
198+
- Tree-based: Cell-based surfaces can be assembled from the point cloud defined by branch-points or tips of a neuronal arbor
194199
- Mesh-based: Mesh-based surfaces can be assembled from the point cloud of the mesh's vertices associated with either the left or the right hemisphere (bilaterians model organisms)
195200

196201
{% include img align="right" name="Geometric annotations" src="/media/plugins/snt/snt-recviewer-geometric-annot.png" caption="Geometric annotations: Surfaces and planes" %}
197202

198203

199-
200-
#### Misc ›
201-
This menu includes controls for adding 3D primitives to the scene including, parallelograms, spheres, or vectors at specified coordinates.
204+
#### Shapes
205+
These are 3D primitives including, parallelograms, spheres, or vectors at specified coordinates.
202206

203207

204208
### Customize Annotations
@@ -280,7 +284,7 @@ Conducts [Strahler Analysis](/plugins/snt/analysis#strahler-analysis) on single
280284
"
281285
%}
282286

283-
### Atlas-based Analysis
287+
### Atlas-based Analyses
284288

285289
#### Annotation Graph
286290

@@ -305,17 +309,16 @@ Adds a text label with options to customize font size, style, color, rotation an
305309
#### Color Mapping Legends ›
306310
Contains options to add, edit, or remove [Color Mapping](#color-mapping-) legends.
307311

308-
#### Create Figure...
309-
Only available in standalone viewers. See [Manual › Create Figure...](/plugins/snt/manual#create-figure).
310-
311312
#### Light Controls...
312313
Adjustments of light and shadows. Note these are currently experimental features.
313314

314-
#### Record Rotation
315-
Animates a rotation of the current scene and saves each frame to disk. The save directory, rotation degree, duration and frames per second may be adjusted in [Preferences](#other).
315+
#### Create Figure...
316+
Only available in standalone viewers. See [Manual › Create Figure...](/plugins/snt/manual#create-figure).
316317

318+
#### Record Animation...
319+
Animates a rotation of the current scene and saves each frame to disk. The save directory, rotation degree, duration and frames per second may be adjusted in [Preferences](#other).
317320

318-
### Screenshots
321+
### Snapshots
319322
Commands for handling scene snapshots, including:
320323

321324
- {% include bc path='Take Snapshot & Display'%} Takes a snapshot of the current scene and displays it in ImageJ
@@ -345,8 +348,31 @@ This section contains options for sensitivity of mouse and keyboard scene intera
345348
- {% include bc path='Pan Accuracy| '%} Sets the responsiveness of panning. A lower step size is more responsive
346349
- {% include bc path='Zoom Steps (+/- Keys)| '%} Sets the percentage of a single zoom step via {% include key key='+' %} {% include key key='-' %} keys
347350
- {% include bc path='Rotation Steps (Arrow Keys)| '%} Sets the number of degrees of a single rotation step via {% include key key='left' %} {% include key key='right' %} keys
351+
- {% include bc path='Animation Type | '%} Sets how the scene animates when a rotation is triggered (double-click or recorded animation). _Full Rotation_ performs a continuous 360° sweep, while _Ping-pong_ oscillates back and forth over a fixed arc (~60°). The preference persists across sessions
352+
353+
### Neurite Rendering
354+
This section contains options that control how neuronal arbors are drawn:
355+
356+
- {% include bc path='Neurite Style'%} Selects the rendering mode for neurite paths (mutually exclusive):
357+
- _Simple Lines_ Basic line rendering (default, fastest)
358+
- _Pseudo-Lighting_ Modulates neurite brightness based on orientation relative to the camera, giving a sense of depth without full 3D geometry
359+
- _Shaded Tubes_ Renders neurites as illuminated 3D tubes using per-fragment Phong lighting (requires OpenGL 3.2+)
360+
- _Shaded Tubes (Wireframe)_ Same as Shaded Tubes but with a wireframe overlay showing mesh edges
361+
362+
An additional _Tube Sides..._ option sets the number of sides for tube cross-sections (higher values produce smoother tubes at the cost of performance)
363+
364+
- {% include bc path='Path Smoothing'%} Applies Catmull-Rom spline interpolation to reduce angular kinks at thick line joints. Options: _None_, _Low_, _Medium_, _High_ (corresponding to upsampling factors of 1, 2, 4, and 8, respectively)
365+
366+
- {% include bc path='Depth Perception'%} Fades distant neurites toward the background color to enhance depth cues. Intensity presets include _Subtle_, _Moderate_, _Strong_, and _Full_, or depth fog can be disabled entirely with _None_
367+
368+
### Mesh Rendering
369+
Options controlling how surface meshes (OBJ files) are rendered:
348370

371+
- {% include bc path='Mesh Style'%} Selects the shading mode for meshes (mutually exclusive):
372+
- _Default_ Fixed-function rendering (jzy3d default pipeline)
373+
- _Smooth Shading_ Per-fragment Phong lighting with hemispherical ambient, producing smoother surfaces
349374

375+
- {% include bc path='Backface Culling'%} Skips back-facing triangles during rendering. This improves performance for closed (watertight) meshes but may cause visual artifacts on open surfaces
350376
### Advanced Settings
351377
Includes advanced controls such as:
352378

_pages/plugins/snt/scripting.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def run():
155155

156156
# Fiji Scripting
157157

158-
Scripting in Fiji's script editor is perhaps best done using Groovy and python. The latter as quite good autocompletion for objects that are not script parameters. The best way to start a new script is by choosing a boilerplate {% include bc path='Scripts|New|From Template...'%} in SNT or {% include bc path='Neuroanatomy|Boilerplate|'%} in the script Editor. These templates hold boilerplate code in several programming languages (namely [BeanShell](/scripting/beanshell), [Groovy](/scripting/groovy) and [Jython](/scripting/jython)), and include the most essential imports and [script parameters](/scripting/parameters) to facilitate rapid development.
158+
Scripting in Fiji's script editor is perhaps best done using Groovy and Python. The latter as quite good autocompletion for objects that are not script parameters. The best way to start a new script is by choosing a boilerplate {% include bc path='Scripts|New|From Template...'%} in SNT or {% include bc path='Neuroanatomy|Boilerplate|'%} in the script Editor. These templates hold boilerplate code in several programming languages (namely [BeanShell](/scripting/beanshell), [Groovy](/scripting/groovy) and [Jython](/scripting/jython)), and include the most essential imports and [script parameters](/scripting/parameters) to facilitate rapid development.
159159

160160

161161
# Further Resources
@@ -245,7 +245,7 @@ def do_stuff(viewer):
245245
# Enforce side perspective.
246246
viewer.setViewMode('side')
247247

248-
# Next, we will applying a color mapping to the axon
248+
# Next, we will apply a color mapping to the axon
249249
# using branch order as the metric and the Ice Lut.
250250
# Make an instance of TreeColorMapper using SciJava context.
251251
mapper = TreeColorMapper(context)

0 commit comments

Comments
 (0)