Difference between revisions of "SNT: Manual"

(Path Manager)
m (Tiago moved page SNT: Overview to SNT: Manual: Improve naming consistency)
 
(61 intermediate revisions by 2 users not shown)
Line 1: Line 1:
(Return to the main [[SNT]] page)
+
{{SNTNavBar}}
<div class="toclimit-3">
+
[[Category:SNT]][[Category:Neuroanatomy]]
 +
<div class="toclimit-2">
 +
=Startup Prompt=
 +
[[Image:SNT-Startup-Prompt.png|right|thumb]]
 +
SNT is initialized by running {{bc|Plugins|NeuroAnatomy|SNT...}}. All the options in the startup prompt can be set once SNT is opened, but the startup prompt provides the convenience of setting the most important parameters at once.
 +
* '''Image'''/'''Image File''' The image to be traced/analyzed. The drop-down menu will list all images currently open in ImageJ. Alternatively, an image path may be specified by clicking ''Browse'' and choosing an image file. If no image is chosen, SNT will create an empty display canvas from the computed bounding box of the reconstruction file (if provided).
 +
* '''Reconstruction file''' The path of the reconstruction file to be imported. SNT will automatically try to guess if there is a reconstruction file associated with the chosen image by looking at all the reconstruction files (<tt>.traces</tt>, <tt>.(e)swc</tt>, or <tt>.json</tt>) in the image directory, and choosing one that more [https://en.wikipedia.org/wiki/Levenshtein_distance closely matches] the image filename.
 +
* '''User interface''' Specifies which views to display for 3D images. The default setting provides the XY, ZY, and XZ views and allows for more [[SNT:_Step-By-Step_Instructions#Accurate_Point_Placement|accurate node placement]] but requires more RAM.
 +
* '''Tracing Channel''' Specifies the image channel to trace on (this option is ignored with single-channel images).
 +
 
 
=Main Dialog=
 
=Main Dialog=
 +
==Menu Commands==
 +
===File===
 +
Lists commands for I/O operations. Most are self-explanatory. Noteworthy:
 +
[[Image:SNT-From-Open-Image-Prompt.png|right|thumb|200px|]]
 +
* {{bc|Choose Tracing Image|&nbsp;}} Specifies the image to trace on without having to restart SNT. To trace on an image currently open in ImageJ, use ''From Open Image...''. A prompt with the currently open images will appear, allowing selection of one.  To browse for an image file, use ''From File...''. You should toggle the ''validate spatial calibration'' checkbox to ensure the image to be imported is compatible with the existing one.
 +
 +
* {{bc|Import| Labels (AmiraMesh)...}} This option assumes you are tracing on the same spatial coordinates of an annotated neuropil, for which compartments have been segmented (''labeled'') and stored in an [https://amira.zib.de/ Amira] labels file. Once loaded, SNT will report the name of the compartments in the ImageJ status bar when hovering over the image.
 +
 +
[[Image:SNT-MouseLight-Remote-Loader-Prompt.png|right|thumb|200px|]]
 +
* {{bc|Import| Remote Databases|&nbsp;}} Allows import of neuronal reconstructions from the [http://www.flycircuit.tw/ FlyCircuit], [https://ml-neuronbrowser.janelia.org/ MouseLight] and [http://neuromorpho.org/ NeuroMorpho] remote databases.
 +
 +
* {{bc|Export (All Paths)|&nbsp;}} Allows export of all traced paths in the [[SNT:_FAQ#swc|SWC]] file format, the most common format for representing neuronal reconstructions. Note that you can also export subsets of paths using the [[#Path Manager|Path Manager]]. Additionally, useful numeric properties of paths can be stored in a CSV file by choosing the ''CSV Properties...'' export option.
 +
<div align="left">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:SNT-Path-CSV-Properties-Example-Spreadsheet.png|none|thumb|600px|OP_1 CSV Properties snapshot in LibreOffice]] </li>
 +
</ul>
 +
</div>
 +
{{clear}}
 +
 +
===Utilities===
 +
* {{bc|Quick Measurements|}} Shows a table with summary statistics for all existing paths. To measure only selected paths, use {{bc|Analyze|Measure}} in the Path Manager.
 +
* {{bc|Sholl Analysis...}} Shows a help menu which describes how to conduct [[Simple_Neurite_Tracer:_Sholl_analysis|Sholl Analysis]] from within SNT on existing paths.
 +
<div align="left">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:SNT-Sholl-Analysis-How-to-Menu.png|none|thumb|200px]] </li>
 +
</ul>
 +
</div>
 +
* {{bc|Strahler Analysis}} Conducts Strahler Analysis on existing paths, producing a table of analysis results and a Strahler plot.
 +
<div align="left">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:SNT-Strahler-Analysis-Table.png|none|thumb|200px|Strahler Analysis table for OP_1]] </li>
 +
<li style="display:inline-block;"> [[Image:SNT-Strahler-Analysis-Plot.png|none|thumb|200px|Strahler Analysis plot for OP_1]] </li>
 +
</ul>
 +
</div>
 +
* {{bc|Reconstruction Plotter...}} Plots a dynamic 2D projection of all existing paths. A control panel is included which allows adjustment of the spatial orientation of the tracing. If paths are assigned color tags, use {{bc|Actions|Render final (colorized) plot}} from the control panel to render the (static) plot with color-mapped paths, with the final orientation matching that of the dynamic plot.
 +
<div align="left">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:SNT-Reconstruction-Plotter-Example.png|none|thumb|200px]] </li>
 +
<li style="display:inline-block;"> [[Image:SNT-Reconstruction-Plotter-Controls.png|none|thumb|200px]] </li>
 +
<li style="display:inline-block;"> [[Image:SNT-Reconstruction-Plotter-Colored.png|none|thumb|200px]] </li>
 +
</ul>
 +
</div>
 +
* {{bc|Compare Reconstructions...}} Given two input reconstruction files, runs ''Quick Measurements'' on both and generates a plot with summary statistics, allowing for quick morphometric comparisons.
 +
<div align="left">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:SNT-Compare-Reconstructions-Table.png|none|thumb|600px|Comparison of OP_1 and OP_2]] </li>
 +
</ul>
 +
</div>
 +
{{clear}}
 +
 +
===Scripts===
 +
TBD
 +
===View===
 +
Contains commands for organizing tracing views on screen, plus commands for displaying cached data used for auto-tracing.
 +
 +
* '''Arrange Views''' Resets the view pane on-screen positions to their default.
 +
* '''Hide Tracing Canvas''' Allows toggling of the visibility of the three view panes as well as the Legacy 3D View window.
 +
* '''Show Cached ''Filtered Image''''' Displays the cached filtered image in a separate window. Note a filtered image must be loaded in order to use this feature. The process of loading a filtered image is detailed in [[SNT:_Step-By-Step_Instructions#Generating_Filtered_Images|Generating Filtered Images]].
 +
* '''Show Cached ''Hessian Tubeness Image''''' Displays the cached ''Hessian (Tubeness) image'' in a separate window. Note there are two ways to enable this feature. Either 1) enable ''Hessian-based analysis'' then run the ''Cache All Hessian Computations'' command from the "Auto-tracing" gear drop-down menu or 2) use the ''Load Precomputed "Tubeness" Image'' option in the same gear menu. These features are detailed in the "Auto-tracing" section of the [[SNT:_Overview#Main_Dialog|Main Dialog]] overview guide.
 +
 
==Main Tab==
 
==Main Tab==
 
This home tab aggregated widgets for tracing and frequent operations.
 
This home tab aggregated widgets for tracing and frequent operations.
Line 15: Line 84:
 
===Auto-tracing===
 
===Auto-tracing===
 
[[File:SNT-auto-tracing.png|right|thumb]]
 
[[File:SNT-auto-tracing.png|right|thumb]]
'''Enable A* search algorithm''' By default, SNT uses the [https://en.wikipedia.org/wiki/A*_search_algorithm A* search] to automatically trace paths between two manually selected points. To manually place nodes in a path, toggle this feature off. Note that it is also possible to enable other algorithms through the installation of SNT addons. See [[SNT: Tubular Geodesics|Tubular Geodesics]] for details.
+
'''Enable A* search algorithm''' By default, SNT uses the [https://en.wikipedia.org/wiki/A*_search_algorithm A* search] to automatically trace paths between two manually selected points. To manually place nodes in a path, toggle this feature off. Note that it is also possible to enable other algorithms through the installation of SNT add-ons. See [[SNT: Tubular Geodesics|Tubular Geodesics]] for details.
  
 
'''Hessian-based analysis''' (Toggling shortcut: {{Key|H}}) A quick way to improve the quality and efficiency of the pathfinding is to enable this feature, in which paths are computed after filtering the image for tube-like structures. Upon such filtering, SNT will use a measure of [[Tubeness]] at each point of the image to define the best path through it, based on eigenvalues and eigenvectors of the [https://en.wikipedia.org/wiki/Hessian_matrix Hessian matrix]. The later can be used to infer the likelihood that a point in the image belongs to a tube-like structure. This concept is also known as ''vesselness'' or ''neuriteness''.
 
'''Hessian-based analysis''' (Toggling shortcut: {{Key|H}}) A quick way to improve the quality and efficiency of the pathfinding is to enable this feature, in which paths are computed after filtering the image for tube-like structures. Upon such filtering, SNT will use a measure of [[Tubeness]] at each point of the image to define the best path through it, based on eigenvalues and eigenvectors of the [https://en.wikipedia.org/wiki/Hessian_matrix Hessian matrix]. The later can be used to infer the likelihood that a point in the image belongs to a tube-like structure. This concept is also known as ''vesselness'' or ''neuriteness''.
Line 47: Line 116:
  
 
Other options are also available in the ''gear'' drop-down menu:
 
Other options are also available in the ''gear'' drop-down menu:
* '''Cache All Hessian Computations''' By default SNT computes the Hessian matrix on a "compute-as-you-go" basis, which saves memory but increases the pathfinding time. If you have enough RAM, you can use this option to compute once the matrix and for the full image and cache the result, which in certain cases, can lead to almost-instantaneous searches. Note that this computation adopts the current values of sigma and max. reported in the widget, so you should adjust those before running this command.
+
* '''Cached Computations (Main/Secondary Image)''' By default SNT computes the Hessian matrix on a "compute-as-you-go" basis, which saves memory but increases the pathfinding time. If you have enough RAM, you can use this set of options to compute the matrix once for the full image and cache the result, which in certain cases, can lead to almost-instantaneous searches. Note that this computation adopts the current values of sigma and max. reported in the widget, so you should adjust those before running this command.
 
 
 
* '''Flush Cached Data''' Removes cached data from memory
 
* '''Flush Cached Data''' Removes cached data from memory
* '''Load Precomputed "Tubeness Image"''' This (advanced) option prompts you to load a file of a ''Tubeness image'' generated elsewhere. This is useful if e.g., you want to experiment algorithms from other software packages, or your own. Note that loaded image is assumed to have compatible dimensions with the image currently being traced.
 
 
* '''Show Cached "Tubeness Image"''' Displays the ''Tubeness'' data currently cached. Useful for debugging purposes. Also mirrored in {{bc | View | Show Cached/Loaded Hessian (Tubeness) Image}}.
 
* '''Show Cached "Tubeness Image"''' Displays the ''Tubeness'' data currently cached. Useful for debugging purposes. Also mirrored in {{bc | View | Show Cached/Loaded Hessian (Tubeness) Image}}.
[[File:original-hessian-side-by-side.png|center|thumb|600px|Original (left) and Hessian (right)]]
+
[[File:original-hessian-side-by-side.png|center|thumb|400px|OP_1 "Tubeness" image overlay at 80% opacity]]
 
 
===Tracing on Filtered Image===
 
SNT's "Hessian-based analysis" option provides a convenient and easy way to preprocess your data. However, if your data require tailored preprocessing, you may also trace on a user-specified filtered image. For example, one might use the [https://link.springer.com/content/pdf/10.1007%252FBFb0056195.pdf Frangi et al. 1998] method to enhance vessel-like structures in the image.
 
====A Single Image====
 
To process a single image with the Frangi Vesselness filter, load it ("test.tif", say) into Fiji and select {{bc | Process | Filters | Frangi Vesselness}}.  (There is more information about this plugin [[Frangi|on its page]].)  By way of example, let's say you select two scales, twice the x voxel separation and five times that value. We apply a Gaussian convolution at each scale. Assuming your image has isotropic resolution with pixel width = pixel height = pixel depth = 1, the parameters would be:
 
[[File:frangi-parameters.png|center|thumb|Frangi parameters]]
 
Save the result by doing {{bc | File | Save As}} with the same extension as the original image ("test-filtered.tif", for example). Then, with SNT open, go to the main dialog tab and look for the "Tracing on Filtered Image" widget. Click "Browse" to load the filtered image, select "SNT" for the parser and press "Load". Finally, toggle the "Trace on filtered Image" checkbox. Now the pathfinding will occur on the filtered image.
 
<div align="center">
 
<ul>
 
<li style="display:inline-block;"> [[Image:filtered-image-load.png|none|thumb|300px|Step 1]] </li>
 
<li style="display:inline-block;"> [[Image:filtered-image-toggle.png|none|thumb|300px|Step 2]] </li>
 
</ul>
 
</div>
 
To display the image in a separate window, from the SNT dialog go to {{bc | View | Show Filtered Image}}
 
[[File:display-filtered-image.png|center|thumb|500px|Side-by-side original and filtered images]]
 
  
====Preprocess Multiple Images====
+
===Tracing on Secondary Image===
 +
This is one of SNT's most advanced features. [[#Auto-tracing|Hessian-based analysis]] provides a convenient and easy way to perform auto-tracing on pre-processed data in which voxels defining the traced structure are scored by their likelihood of ''belonging'' to a tube-like structure. However, it is just one approach for "tubeness" classification. What if your data requires different filtering?, or you want to experiment with other approaches?, or the perfect pre-processing algorithm for your images is not yet available in ImageJ? ''Tracing on Secondary Image'' is the answer to these questions: It allows you to feed SNT with pre-processed data on which the A*star search will operate. Here are two specific usages for this option:
 +
*'''Frangi ''Vesselness'' filtering''' For certain datasets Frangi filtering ([https://link.springer.com/content/pdf/10.1007%252FBFb0056195.pdf Frangi et al. 1998]) is more effective than [[Tubeness]] at enhancing tube-like structures in the image. However, it is more computation intensive, and thus, less suitable to be adopted by the "compute-as-needed" approach used in Hessian-based analysis. Thus, one can import a pre-computed Frangi-filtered image using this option.
 +
*'''Hessian-analysis at multiple scales''' Let's consider a structure formed simultaneously by very thick and very thin processes (e.g. axons and dendrites). To trace it one would need to adjust continuously the sigma parameter while tracing. Instead, to trace structures of variable diameters more effectively, one could load a copy of the current image as ''secondary image'', and assign different hessian parameters to both images.
 +
*'''Adopting probability maps''' Pre-classified images (using e.g., machine learning) could also be loaded here.
  
The easiest way to preprocess multiple images is to record a macro for processing a single image, then wrap it in a loop to iterate over all files in a directory. For example:
+
Importantly, this option can be toggled at will, during tracing. Indeed, one can ping-pong between ''secondary image'' and main image simply, by pressing {{key|I}}, the shortcut for the ''Trace on Secondary '''I'''mage'' checkbox.
  
<source lang="java">
+
'''Secondary Image options''' can be specified in the ''gear'' drop-down menu, including commands for Loading/displaying the image file and the powerful ''Generate Secondary Image'' command:
d = getDirectory("Select a directory");
 
files = getFileList(d);
 
  
extension = ".tif";
+
[[Image:SNT-Tracing-On-Filtered-Image-Gear-Options.png|right|thumb|200px]]
 +
[[Image:SNT-Generate-Filtered-Image-Prompt.png|right|thumb|200px]]
 +
* '''Load Specified File''' Loads the filtered image specified in the ''File'' textbox.
 +
* '''Generate Secondary Image''' Enables processing of the currently open image directly from SNT. Three routines are currently supported: ''Frangi'', ''Frangi (without Gaussian)'' and ''Tubeness''. Supports saving and display of the resulting image. To use the currently open image as the secondary image, choose ''None. Duplicate Primary Image''. Noteworthy: It is assumed that the current sigma value in the Auto-tracing widget reflects the size of structures to be filtered. If that is not the case, the sigma should be adjusted before running this command.
 +
* '''Adjust Min-Max''' Sets the range of pixel intensities used by A* search.
 +
* '''Show Cached image''' Displays the currently loaded filtered image in a separate window.
 +
* '''Show Path in File Explorer''' Opens the directory containing the filtered image specified in the ''File'' textbox in the File Explorer GUI.
  
for( i = 0; i < files.length; ++i ) {
+
See the [[SNT:_Step-By-Step_Instructions#Generating_Filtered_Images|Generating Filtered Images]] walk-through for more details.
    filename = files[i];
+
{{clear}}
    if( endsWith(filename,extension) ) {
 
        l = lengthOf(filename);
 
        el = lengthOf(extension);
 
        basename = substring(filename,0,l-el);
 
        expected_window_name = "vesselness of "+filename;
 
        output_filename = d + File.separator + basename + ".tubes.tif";
 
        open(filename);
 
        run("Frangi Vesselness (imglib, experimental)", "number=1 minimum=0.288387 maximum=0.288387");
 
        selectWindow(expected_window_name);
 
        saveAs("Tiff", output_filename);
 
    }
 
}
 
</source>
 
  
 
===Filters for Visibility of Paths===
 
===Filters for Visibility of Paths===
 
+
By default, all the nodes of a path are projected onto the current Z-slice. This is useful to see how much has been completed and gives a sense of the overall structure of the reconstruction. However, SNT provides three additional visibility options for paths:
By default, the entire path is projected onto the current Z-slice. This is useful to see how much has been completed and gives a sense of the overall structure of the reconstruction. However, SNT provides 3 additional visibility options for paths:
 
 
[[File:Path-visibility-filters.png|right|thumb|"Filters for visibility of paths" widget]]
 
[[File:Path-visibility-filters.png|right|thumb|"Filters for visibility of paths" widget]]
 
# '''Only selected paths (hide deselected)''' Only show paths that have been manually selected in the Path Manager or with the {{Key|G}} key ({{Key|Shift}}+{{Key|G}} to select multiple paths).
 
# '''Only selected paths (hide deselected)''' Only show paths that have been manually selected in the Path Manager or with the {{Key|G}} key ({{Key|Shift}}+{{Key|G}} to select multiple paths).
 
# '''Only nodes within X nearby Z-slices''' Only highlight nodes within X number of Z-slices on either side of the current slice. The projected skeletons of all paths remain visible.
 
# '''Only nodes within X nearby Z-slices''' Only highlight nodes within X number of Z-slices on either side of the current slice. The projected skeletons of all paths remain visible.
 
# '''Only paths from active channel/frame''' If tracing on a multichannel image or an image with a time axis, only show paths from the active channel or frame.
 
# '''Only paths from active channel/frame''' If tracing on a multichannel image or an image with a time axis, only show paths from the active channel or frame.
Any combination of these options may be toggled simultaneously.
+
Any combination of these options may be toggled simultaneously. Note that these options do not apply to [[SNT:_Reconstruction_Viewer|Rec. Viewer]] and [[SciView]].
  
 
===Default Path Colors===
 
===Default Path Colors===
Line 109: Line 155:
 
By default, finished paths are colored by their selection status (only selected paths can be edited, or extended). The default colors are <font color="#00FF00">Green</font>  (selected paths) and <font color="#FF00FF">Magenta</font>  (deselected). Default colors can be customized by pressing the respective button in the widget and using the [https://en.wikipedia.org/wiki/CMYK_color_model CMYK color chooser]. For customizing unconfirmed and temporary paths, see the ''Colors'' option in the [[#UI_Interaction|UI Interaction]] widget.
 
By default, finished paths are colored by their selection status (only selected paths can be edited, or extended). The default colors are <font color="#00FF00">Green</font>  (selected paths) and <font color="#FF00FF">Magenta</font>  (deselected). Default colors can be customized by pressing the respective button in the widget and using the [https://en.wikipedia.org/wiki/CMYK_color_model CMYK color chooser]. For customizing unconfirmed and temporary paths, see the ''Colors'' option in the [[#UI_Interaction|UI Interaction]] widget.
  
'''Enforce default colors (ignore color tags)''' If active, SNT will force all paths to conform to the default "Selected" and "Deselected" color buttons. Any custom color tags will be ignored until the option is toggled off.
+
'''Enforce default colors (ignore color tags)''' If active, SNT will force all paths to conform to the default "Selected" and "Deselected" color buttons. Any custom color tags will be ignored until the option is toggled off. Note that this options does not apply to [[SNT:_Reconstruction_Viewer|Rec. Viewer]] and [[SciView]].
  
 
{{Tip| id = coloring-paths|tip = The [[#Path Manager|Path Manager]] offers several ways to colorize Paths: 1) Using {{bc | Tag | Color}} swatches (custom colors can be temporarily assigned to empty swatches, by right-clinking on them) or 2) Using {{bc|Analyze|Color Coding}}, providing morphometric-based [[SNT:_Overview#Analyze|color mapping]]. Note that Path Manager commands are applied to all paths if no no path(s) are selected.
 
{{Tip| id = coloring-paths|tip = The [[#Path Manager|Path Manager]] offers several ways to colorize Paths: 1) Using {{bc | Tag | Color}} swatches (custom colors can be temporarily assigned to empty swatches, by right-clinking on them) or 2) Using {{bc|Analyze|Color Coding}}, providing morphometric-based [[SNT:_Overview#Analyze|color mapping]]. Note that Path Manager commands are applied to all paths if no no path(s) are selected.
Line 156: Line 202:
  
 
===UI Interaction===
 
===UI Interaction===
[[File:SNT-UI-interaction-widget.png|right|thumb|"UI Interaction" widget]]
+
[[File:SNT-UI-interaction-widget.png|right|thumb|]]
* '''Colors''' The default color for the following items (can be changed to any color in the CMYK color model):
+
* '''Colors''' Specifies how components should be rendered, including:
** <pre style="color: #FF0000;font-size:20px">Red</pre> Canvas annotations: these indicate the various possible states of the UI, and are shown in the top-left corner of the views ("Tracing Paused", "Choosing Sigma", etc...)
+
**'''Canvas annotations''' The label shown on the top-left corner of the views indicating the state of the UI ("Tracing Paused", "Choosing Sigma", etc.)
** <pre style="color: #008200;font-size:20px">Dark Green</pre> Fills: the pixels that have been reached by the Fill search.
+
**'''Fills''' The pixels that have been reached by the Fill search
** <pre style="color: #00FFFF;font-size:20px">Cyan</pre> Unconfirmed paths
+
**'''Unconfirmed''' and '''Temporary''' paths.
** <pre style="color: #FF0000;font-size:20px">Red</pre> Temporary paths
+
* '''Path nodes rendering scale''' (default scale is inferred from current zoom level) Adjusts the radius of the circles representing path nodes. A path node is rendered as a circle centered at the XYZ coordinate of the point annotation.
* '''Path nodes rendering scale''' (default is 2 pixels at default zoom level) Adjusts the radius of the circles representing path nodes. A path node is rendered as a circle centered at the XYZ coordinate of the point annotation.
 
 
* '''Activate canvas on mouse hovering''' If active, moving the mouse cursor over the any of the views automatically brings the view window into focus, allowing it to receive input.
 
* '''Activate canvas on mouse hovering''' If active, moving the mouse cursor over the any of the views automatically brings the view window into focus, allowing it to receive input.
  
 
===Misc===
 
===Misc===
[[File:SNT-misc-options.png|right|thumb|"Misc" widget]]
+
* '''Skip confirmation dialogs''' If active, forgoes the ''Are you sure?'' prompt preceding major actions. Note that this option does not apply to irreversible actions such as deleting paths.
* '''Remember window locations''' If active, preserves the position of dialogs across restarts.
 
* '''Use compression when saving traces''' If active, uses [https://en.wikipedia.org/wiki/Gzip Gzip] compression (lossless) to reduce the storage footprint of the ".traces" file.
 
* '''Skip confirmation dialogs''' If active, forgoes the "Are you sure?" prompt preceding major actions.
 
 
* '''Debug mode''' If active, logs detailed information about actions in the console.
 
* '''Debug mode''' If active, logs detailed information about actions in the console.
The "Reset Preferences..." button, when pressed, will reset all options to their defaults. A restart of SNT may be required for changes to take effect.
+
* '''Preferences...''' Allows setting other options, namely:
 +
** Whether the position of dialogs should be remembered across restarts
 +
** Whether [https://en.wikipedia.org/wiki/Gzip Gzip] compression (lossless) should be used to reduce the storage footprint of ".traces" files.
 +
** "Reset Preferences..." Allows the reset of all options to their defaults. A restart of SNT may be required for changes to take effect.
  
 
== 3D Tab ==
 
== 3D Tab ==
Line 179: Line 224:
 
The Reconstruction Viewer is an advanced OpenGL visualization tool. For performance reasons, some Path Manager changes may need to be synchronized manually from RV controls. To open Reconstruction Viewer with the currently loaded tracings, press ''Open Reconstruction Viewer''. For more information, see the Reconstruction Viewer wiki page.
 
The Reconstruction Viewer is an advanced OpenGL visualization tool. For performance reasons, some Path Manager changes may need to be synchronized manually from RV controls. To open Reconstruction Viewer with the currently loaded tracings, press ''Open Reconstruction Viewer''. For more information, see the Reconstruction Viewer wiki page.
 
===Legacy 3D Viewer===
 
===Legacy 3D Viewer===
The Legacy 3D Viewer is a functional tracing canvas but it depends on outdated services that are now deprecated. It may not function reliably on recent operating systems. For usage instructions, see [[SNT:_Step-By-Step_Instructions#Legacy_3D_Viewer|Legacy 3D Viewer]]
+
The Legacy 3D Viewer is a functional tracing canvas but it depends on outdated services that are now deprecated. It may not function reliably on recent operating systems. For usage instructions, see [[SNT:_Step-By-Step_Instructions#Tracing_in_the_Legacy_3D_Viewer|Tracing using the Legacy 3D Viewer]].
 
===SciView===  
 
===SciView===  
 
[[SciView|SciView]] is IJ2's modern replacement for the Legacy 3D Viewer providing 3D visualization and virtual reality capabilities for both images and meshes. It is not yet available in SNT.
 
[[SciView|SciView]] is IJ2's modern replacement for the Legacy 3D Viewer providing 3D visualization and virtual reality capabilities for both images and meshes. It is not yet available in SNT.
Line 189: Line 234:
 
[[Image:SNT-Path-Edit-Right-Click-Menu.png|right|thumb|250px|Contextual menu]]
 
[[Image:SNT-Path-Edit-Right-Click-Menu.png|right|thumb|250px|Contextual menu]]
 
* '''Select Nearest Path''' {{key|G}} or {{key|Shift}}+{{key|G}} Will select the path closest to the mouse cursor.  
 
* '''Select Nearest Path''' {{key|G}} or {{key|Shift}}+{{key|G}} Will select the path closest to the mouse cursor.  
* '''Fork at Nearest Node''' {{key|Shift}}+{{key|Alt}}+{{key|Left Click}} Creates a fork point at the node closest to the mouse cursor. Once a fork point is made, the branch may be extended as described in [[SNT:_Step-By-Step_Instructions#Branching:_Start_A_Path_On_An_Existing_Path|III. Extend The Path]].
+
* '''Fork at Nearest Node''' {{key|Shift}}+{{key|Alt}}+{{key|Left Click}} Creates a fork point at the node closest to the mouse cursor. Once a fork point is made, the branch may be extended as described in [[SNT:_Step-By-Step_Instructions#Branching:_Start_A_Path_On_An_Existing_Path|Step-By-Step Instructions]].
* '''Continue Extending Path''' Allows continued tracing of previously finished paths. Note only one path may be extended at a time. To extend a path: first select it, choose this option, then place additional nodes as shown in [[SNT:_Step-By-Step_Instructions#II._Pick_A_Subsequent_Point| II. Pick A Subsequent Point]].
+
* '''Continue Extending Path''' Allows continued tracing of previously finished paths. Note only one path may be extended at a time. To extend a path: first select it, choose this option, then place additional nodes as shown in [[SNT:_Step-By-Step_Instructions#II._Pick_A_Subsequent_Point|Step-By-Step Instructions]].
* '''Pause SNT''' Disables core functionality until this option is inactivated. "SNT Paused" [[SNT:_Overview#UI_Interaction|canvas annotations]] in the views indicate this state.
+
* '''Pause SNT''' Waives all keyboard and mouse inputs to ImageJ, allowing you to interleave image processing routines with tracing operations. Note that if the image contents change while SNT is paused, the image should be reloaded so that SNT is aware of the changes. Tracing views are annotated with the ''SNT Paused'' [[SNT:_Overview#UI_Interaction|label]] to indicate this state.  
* '''Pause Tracing''' Disables tracing functions until this option is inactivated. "Tracing Paused" [[SNT:_Overview#UI_Interaction|canvas annotations]] in the views indicate this state.
+
* '''Pause Tracing''' Disables tracing functions until this option is deselected. Tracing views are annotated with the ''Tracing Paused'' [[SNT:_Overview#UI_Interaction|label]] to indicate this state.
 
* '''Sholl Analysis at Nearest Node''' {{key|Shift}}+{{key|Alt}}+{{Key|A}} Runs the [[Sholl_Analysis|Sholl Analysis]] plugin found in {{bc|Analyze|Sholl|Sholl Analysis (From Tracings)}}. Note the ''Center'' parameter, which sets the center point of the analysis, is left out as this value is given by the selected node.
 
* '''Sholl Analysis at Nearest Node''' {{key|Shift}}+{{key|Alt}}+{{Key|A}} Runs the [[Sholl_Analysis|Sholl Analysis]] plugin found in {{bc|Analyze|Sholl|Sholl Analysis (From Tracings)}}. Note the ''Center'' parameter, which sets the center point of the analysis, is left out as this value is given by the selected node.
 
===Editing Paths===
 
===Editing Paths===
Line 208: Line 253:
 
The Path Manager dialog displays all existing paths in a hierarchical structure (tree), where one path is "primary" (path 0) and all other paths (paths 1...N) are children of the primary path. The dialog also contains several menus with various editing, tagging, refinement/fitting, filling and analysis options. Paths can be searched by name and/or tags in the text filter, with more sophisticated search capabilities in the Advanced Filtering Menu.  
 
The Path Manager dialog displays all existing paths in a hierarchical structure (tree), where one path is "primary" (path 0) and all other paths (paths 1...N) are children of the primary path. The dialog also contains several menus with various editing, tagging, refinement/fitting, filling and analysis options. Paths can be searched by name and/or tags in the text filter, with more sophisticated search capabilities in the Advanced Filtering Menu.  
  
 +
==Menu Commands==
 
===Edit===
 
===Edit===
 
* '''Delete''' Removes selected path(s) from the Path Manager.
 
* '''Delete''' Removes selected path(s) from the Path Manager.
Line 230: Line 276:
  
 
===Refine/Fit===
 
===Refine/Fit===
[[File:Fit-manager.png|right|thumb|"Refine/Fit" menu]]
+
[[File:Fit-manager.png|right|thumb]]
See [[SNT:_Step-By-Step_Instructions#Fitting|Fitting]] in the Step-By-Step Instructions wiki page.
+
SNT can use the fluorescent signal around traced paths to optimize curvatures and estimate the thickness of traced structures to sub-voxel accuracy. The optimization algorithm uses pixel intensities to fit circular cross-sections around each node. Once computed, fitted cross-sections can be used to: 1) Infer the radius of nodes, and/or 2) refine node positioning, by snapping their coordinates to the cross-section centroid. The {{bc|Refine/Fit|&nbsp;}} menu contains three entries:
{{clear}}
+
[[File:Explore-fit-preview.png|right|thumb|250px|Slice in "Explore/Preview Fit" image stack]]
 +
* '''Fit Paths/Un-fit paths/Apply Existing Fit'''  This option will change depending on which paths are currently selected. You can use it to 1) Fit selected paths, 2) un-fit paths that have already been fitted, or 3) apply a generated preview of the fit.
 +
* '''Explore/Preview Fit''' Carves out a region of the image along and around each path node, generating an animated cross-view "fly-through" with the result of the fitting operation. The generated image is annotated with details of the fit: i) Fitted radius; ii) normalized score quantifying the circularity of a node's cross section, and iii) the angle between a node and its parent.
 +
 
 +
* '''Discard Fit''' Deletes the existing fit(s) for the selected path(s), or all fits if no paths are selected.
 +
 
 +
Before computing the fit, SNT will prompt you to specify two parameters:
 +
* '''Type of Refinement''': Either 1) ''Assign radii of fitted cross-sections to nodes'', 2) ''Snap node coordinates to cross-section centroids'', or 1) & 2) ''Assign fitted radii and snap node coordinates''
 +
* '''Max. Radius''' Defines (in pixels) the largest radius allowed in the fit. It constrains the optimization to minimize fitting artifacts caused by neighboring structures. A good rule of thumb is to use 1.5-2x the largest radius in the traced structure. Default is 40 pixels on each side of the path
 +
 
 +
Assuming you chose to fit both centroids and radii, a fitted path might look like the rightmost image below. Notice how the nodes follow the center line of the structure more closely, and how each node now has a non-zero radius approximating that of the traced axon.
 +
<div align="center">
 +
<ul>
 +
<li style="display:inline-block;"> [[Image:Fit-parameter-prompt.png|none|thumb|334px|Fitting parameters]] </li>
 +
<li style="display:inline-block;"> [[Image:Before-fitting.png|none|thumb|350px|Before fitting]] </li>
 +
<li style="display:inline-block;"> [[Image:After-fitting.png|none|thumb|350px|Fitted path]] </li>
 +
</ul>
 +
</div>
  
 
===Fill===  
 
===Fill===  
 
[[File:SNT-Path-Manager-Fill.png|right|thumb|"Fill" menu]]
 
[[File:SNT-Path-Manager-Fill.png|right|thumb|"Fill" menu]]
* '''Fill Out''' Begins the filling process for selected paths. For detailed instructions see [[SNT:_Step-By-Step_Instructions#Filling|Filling]] in the Step-By-Step Instructions page.
+
* '''Fill Out''' Begins the filling process for selected paths. For detailed instructions see [[SNT:_Step-By-Step_Instructions#Filling|Filling: Step-By-Step Instructions]].
{{clear}}
+
 
 
===Analyze===
 
===Analyze===
 
This menu contains several options which provide quick ways to analyze and visualize numerical properties of paths.  
 
This menu contains several options which provide quick ways to analyze and visualize numerical properties of paths.  
Line 322: Line 385:
 
{{clear}}
 
{{clear}}
  
===Text Filter===
+
==Filter Toolbar==
[[File:SNT-Path-Manager-Text-Filter.png|right|thumb|Text Filter]]
+
[[File:SNT-Path-Manager-Text-Filter.png|right|thumb|]]
The text filter allows paths to be searched by any characters in the path name string and by color. The name string includes all tags.
+
The filter toolbar allows paths to be searched and filtered quickly using tags (colors, annotations, SWC-type, etc.) or morphometric properties. The text field is used for text-based searches (recent searches can be recovered through its drop-down menu). The [[File:SNT-Text-Filter-Up-Arrow-Button.png]] and [[File:SNT-Text-Filter-Down-Arrow-Button.png]] buttons find the next/previous occurrence of the entered phrase (shortcuts: {{key|up}} {{key|down}}), while the [[File:SNT-Text-Filter-Balloon-Button.png]] button highlights all occurrences of the entered phrase. Settings for advance text-based filtering can be accessed through the [[File:SNT-Text-Filter-Advanced-Button.png]], including wildcard support, case sensitive matching, and replace-by-pattern. In addition, the ''Advanced Filtering Menu'' [[File:SNT-Text-Filter-Advanced-Button.png]] provides other sophisticated means of filtering paths:
* '''Up Arrow Button''' [[File:SNT-Text-Filter-Up-Arrow-Button.png]] Finds next occurrence of the entered phrase.
 
* '''Down Arrow Button''' [[File:SNT-Text-Filter-Down-Arrow-Button.png]] Finds previous occurrence of the entered phrase.
 
* '''Balloon Button''' [[File:SNT-Text-Filter-Balloon-Button.png]] Highlights all occurrences of the entered phrase.
 
{{clear}}
 
===Advanced Text Filtering===
 
[[File:SNT-Path-Manager-Filtering-Menu.png|right|thumb|"Advanced Filtering Menu"]]
 
The Advanced Filtering Menu [[File:SNT-Text-Filter-Advanced-Button.png]] provides more sophisticated means of filtering paths, including support for wildcards (?*), color and morphology tag matching.
 
[[File:SNT-Advanced-Text-Filtering-Text-Filtering-Menu.png|right|thumb|"Text Filtering" menu]]
 
[[File:SNT-Path-Manager-Text-Filter-Replace-Prompt.png|right|thumb|"Replace" prompt]]
 
* '''Text Filtering''' Contains options for advanced text filtering
 
** ''Case Sensitive Matching'' treats uppercase and lowercase characters as distinct.
 
** ''Enable Wildcards'' Allows the use of the question mark (?) and asterisk (*) wildcards.
 
*** ''"?"''  Matches exactly one character. For example, the pattern 123? will match 123 and 1234, but not 12345.
 
*** ''"*"''  Matches zero or more characters. For example, doc* matches doc and document but not dodo.
 
** ''Loop After First/Last Hit'' Cycles back to the first/last matched phrase upon pressing the Up/Down Arrow Button at the end of the list of matches.
 
** ''Display No. of Matches'' Displays the number of phrase matches in the bottom left corner of the Path Manager dialog.
 
** ''Replace'' Replaces all occurrences of the matched phrase in the path name string for currently selected paths.
 
** ''Clear History'' Erases the previously searched phrases in the text filter drop-down menu.
 
** ''Tips & Shortcuts''
 
*** Case-insensitive by default. Wildcards ? (any character), and * (any string) can also be used.
 
*** Press the ''Highlight All'' button or Ctrl+A to select all the paths filtered by the search string.
 
*** Press and hold Ctrl while pressing the up/down keys to select multiple filtered paths.
 
*** Press the up/down keys to find the next/previous occurrence of the filtering string.
 
*** Uncheck ''Display No. of Matches'' to improve search performance.
 
 
 
 
[[File:SNT-Path-Manager-Text-Filter-Color-Filters.png|right|thumb|"Color Filters" menu]]
 
[[File:SNT-Path-Manager-Text-Filter-Color-Filters.png|right|thumb|"Color Filters" menu]]
* '''Color Filters''' Allows filtering of paths by color code. Custom colors may be selected by right-clicking an empty swatch, which will bring up the CMYK palette. The chosen color is temporarily saved in that swatch.
+
* '''Color Filters''' Allows filtering of paths by color tags. Custom colors may be selected by right-clicking an empty swatch, which will bring up the CMYK palette. The chosen color is temporarily saved in that swatch.
{{clear}}
+
* '''Morphology Filters''' Allows filtering of paths by selected morphological properties. Note that these filters do not require paths to be labeled using {{bc|Tag|Morphology|&nbsp;}}.
[[File:SNT-Path-Manager-Morphology-Filters.png|right|thumb|"Morphology Filters" menu]]
+
** ''Branch Order'' Filters for paths of [[Strahler Analysis|branch order]] in the inputted range. Example queries: <tt>1-2</tt>: selects all primary and secondary branches; <tt>max-max</tt>: selects all terminal branches.  
* '''Morphology Filters''' Allows filtering of paths by select morphological properties.
+
** ''Length'' Filters for paths of length within the inputted range. Example queries: <tt>10-20</tt>: selects all paths with lengths between 10 and 20μm; <tt>max-max</tt>: selects the longest path(s).
** ''Branch Order'' Filters for paths of branch order in the inputted range. Note that the paths of interest must have ''Branch Order'' tags. To tag paths with their centrifugal branch orders, use {{bc|Tag|Morphology|Branch Order}}. See [[SNT:_Overview#Tag|Tag]] for more information.  
+
** ''Mean Radius'' Filters for paths of mean radius within the inputted range.
** ''Length'' Filters for paths of length within the inputted range. Note that the paths of interest must have ''Length'' tags. To tag paths with their length, use {{bc|Tag|Morphology|Length}}. See [[SNT:_Overview#Tag|Tag]] for more information.  
 
** ''Mean Radius'' Filters for paths of mean radius within the inputted range. Note that the paths of interest must have ''Mean Radius'' tags. To tag paths with their mean radius, use {{bc|Tag|Morphology|Mean Radius}}. See [[SNT:_Overview#Tag|Tag]] for more information.
 
 
** ''No. of Nodes'' Filters for paths with node count within the inputted range.
 
** ''No. of Nodes'' Filters for paths with node count within the inputted range.
** ''SWC Type'' Filters for paths with the selected SWC type tags. Note that the paths of interest must have ''Type'' tags. To tag paths with SWC types, use {{bc|Tag|Type}}. See [[SNT:_Overview#Tag|Tag]] for more information.
+
** ''SWC Type'' Filters for paths with the selected SWC type tags. Note that the paths of interest must have been [[SNT:_Overview#Tag|tagged]] using  the{{bc|Tag|Type|&nbsp;}} menu.
  
 
<div align="center">
 
<div align="center">
Line 372: Line 408:
  
 
=Fill Manager=
 
=Fill Manager=
Provides controls for all filling operations. It is described in more detail in the [[SNT:_Step-By-Step_Instructions#Filling|Filling Walkthrough]]
+
Provides controls for all filling operations. It is described in more detail in the [[SNT:_Step-By-Step_Instructions#Filling|Filling: Step-By-Step Instructions]].
 +
{{SNTNavBar}}

Latest revision as of 07:49, 15 August 2019

Home Manual Walk-throughs Screencasts Shortcuts Analysis Rec. Viewer SciView Cx3D Scripting FAQ


Startup Prompt

SNT-Startup-Prompt.png

SNT is initialized by running Plugins › NeuroAnatomy › SNT.... All the options in the startup prompt can be set once SNT is opened, but the startup prompt provides the convenience of setting the most important parameters at once.

  • Image/Image File The image to be traced/analyzed. The drop-down menu will list all images currently open in ImageJ. Alternatively, an image path may be specified by clicking Browse and choosing an image file. If no image is chosen, SNT will create an empty display canvas from the computed bounding box of the reconstruction file (if provided).
  • Reconstruction file The path of the reconstruction file to be imported. SNT will automatically try to guess if there is a reconstruction file associated with the chosen image by looking at all the reconstruction files (.traces, .(e)swc, or .json) in the image directory, and choosing one that more closely matches the image filename.
  • User interface Specifies which views to display for 3D images. The default setting provides the XY, ZY, and XZ views and allows for more accurate node placement but requires more RAM.
  • Tracing Channel Specifies the image channel to trace on (this option is ignored with single-channel images).

Main Dialog

Menu Commands

File

Lists commands for I/O operations. Most are self-explanatory. Noteworthy:

SNT-From-Open-Image-Prompt.png
  • Choose Tracing Image ›   Specifies the image to trace on without having to restart SNT. To trace on an image currently open in ImageJ, use From Open Image.... A prompt with the currently open images will appear, allowing selection of one. To browse for an image file, use From File.... You should toggle the validate spatial calibration checkbox to ensure the image to be imported is compatible with the existing one.
  • Import › Labels (AmiraMesh)... This option assumes you are tracing on the same spatial coordinates of an annotated neuropil, for which compartments have been segmented (labeled) and stored in an Amira labels file. Once loaded, SNT will report the name of the compartments in the ImageJ status bar when hovering over the image.
SNT-MouseLight-Remote-Loader-Prompt.png
  • Export (All Paths) ›   Allows export of all traced paths in the SWC file format, the most common format for representing neuronal reconstructions. Note that you can also export subsets of paths using the Path Manager. Additionally, useful numeric properties of paths can be stored in a CSV file by choosing the CSV Properties... export option.
  • OP_1 CSV Properties snapshot in LibreOffice


Utilities

  • Quick Measurements Shows a table with summary statistics for all existing paths. To measure only selected paths, use Analyze › Measure in the Path Manager.
  • Sholl Analysis... Shows a help menu which describes how to conduct Sholl Analysis from within SNT on existing paths.
  • SNT-Sholl-Analysis-How-to-Menu.png
  • Strahler Analysis Conducts Strahler Analysis on existing paths, producing a table of analysis results and a Strahler plot.
  • Strahler Analysis table for OP_1
  • Strahler Analysis plot for OP_1
  • Reconstruction Plotter... Plots a dynamic 2D projection of all existing paths. A control panel is included which allows adjustment of the spatial orientation of the tracing. If paths are assigned color tags, use Actions › Render final (colorized) plot from the control panel to render the (static) plot with color-mapped paths, with the final orientation matching that of the dynamic plot.
  • SNT-Reconstruction-Plotter-Example.png
  • SNT-Reconstruction-Plotter-Controls.png
  • SNT-Reconstruction-Plotter-Colored.png
  • Compare Reconstructions... Given two input reconstruction files, runs Quick Measurements on both and generates a plot with summary statistics, allowing for quick morphometric comparisons.
  • Comparison of OP_1 and OP_2


Scripts

TBD

View

Contains commands for organizing tracing views on screen, plus commands for displaying cached data used for auto-tracing.

  • Arrange Views Resets the view pane on-screen positions to their default.
  • Hide Tracing Canvas Allows toggling of the visibility of the three view panes as well as the Legacy 3D View window.
  • Show Cached Filtered Image Displays the cached filtered image in a separate window. Note a filtered image must be loaded in order to use this feature. The process of loading a filtered image is detailed in Generating Filtered Images.
  • Show Cached Hessian Tubeness Image Displays the cached Hessian (Tubeness) image in a separate window. Note there are two ways to enable this feature. Either 1) enable Hessian-based analysis then run the Cache All Hessian Computations command from the "Auto-tracing" gear drop-down menu or 2) use the Load Precomputed "Tubeness" Image option in the same gear menu. These features are detailed in the "Auto-tracing" section of the Main Dialog overview guide.

Main Tab

This home tab aggregated widgets for tracing and frequent operations.

Cursor Auto-snapping

Enable Snapping checkbox If active (the default) the cursor snaps to the brightest voxel in its vicinity (Toggling shortcut: S). To accomplish this, SNT takes the cuboid of the specified dimensions (in pixels) centered on the current cursor position and searches quickly for local maxima in that neighborhood, moving the cursor to that position. The Z-plane in which the maximum was found is automatically selected if the "Z" parameter is greater than 0. Noteworthy:

  • This feature assumes the signal is brighter than the background as typically found in fluorescent images.
    Cursor-snap.png
  • If multiple maxima exist (e.g., when the signal is saturated), it snaps to their centroid.
  • To streamline the computation: XYZ dimensions are constrained to even numbers and limited range.
  • Snapping occurs in 2D (i.e., in the active plane) if Z=0.
  • The XZ, ZY views are synchronized when 3D snapping is active (i.e., Z>0).

Auto-tracing

SNT-auto-tracing.png

Enable A* search algorithm By default, SNT uses the A* search to automatically trace paths between two manually selected points. To manually place nodes in a path, toggle this feature off. Note that it is also possible to enable other algorithms through the installation of SNT add-ons. See Tubular Geodesics for details.

Hessian-based analysis (Toggling shortcut: H) A quick way to improve the quality and efficiency of the pathfinding is to enable this feature, in which paths are computed after filtering the image for tube-like structures. Upon such filtering, SNT will use a measure of Tubeness at each point of the image to define the best path through it, based on eigenvalues and eigenvectors of the Hessian matrix. The later can be used to infer the likelihood that a point in the image belongs to a tube-like structure. This concept is also known as vesselness or neuriteness.

Hessian options (Specified in the gear drop-down menu) may be chosen Manually (if you already have a quantitative understanding of the image) or Visually (generally more intuitive). Hessian analysis requires two parameters to be specified:

  • Sigma Controls the spatial scale of the filter. A lower sigma (σ) will capture small scale structure but is more sensitive to noise. A larger σ will consider larger scale structures but is less sensitive to local shape characteristics. It is generally advised to pick a value which reflects the average radius of the structures to be traced. It corresponds to the standard deviation of the 3D Gaussian kernel used to smooth the image prior to Tubeness filtering
  • Maximum The maximum pixel intensity on the Tubeness image beyond which the cost function for A* search is minimized.

If you choose Visually, the dialog will prompt you to click on a representative region of the image which has meaningful structure. Once you click there, a 9-square palette is generated showing increasing values of sigma (from top-left to bottom-right) applied to that region of the image. The palette is an image stack which can be scrolled through with the mouse wheel.

Adusting max
Sigma-palette-location.png
Sigma-palette-max.png
Sigma-palette-mid.png
Sigma-palette-min.png
Oversaturated Default Undersaturated
Choosing sigma and max. parameters visually for hessian analysis from a representative region in the image (orange box). With saturated max, the cost function for A* search is equivalent across the signal. Also, note how lower sigma values cause the axon to be dimmer on the center and brighter on the edges, while higher sigma values eliminate detail from the structure.

Experiment with different Adjusted max. values to find a setting which captures the structures you are interested in while taking care to avoid over or under-saturation. In the former case, the search might consider pixels outside of the tubular structures, giving a less accurate result. In the latter case, the search might take significantly longer, since each pixel will carry greater cost than is reasonable. It is usually safe to choose a value somewhere near the default. Once you have chosen this value, click on the square in the palette with the sigma that best fits your application (its border will turn green) then press "Apply". The parameters will be transferred to the interface and a Gaussian convolution will be run over the image, which may take some time depending on its size. Once it's done, pathfinding will occur on the Hessian (a.k.a. Tubeness) image.

Other options are also available in the gear drop-down menu:

  • Cached Computations (Main/Secondary Image) By default SNT computes the Hessian matrix on a "compute-as-you-go" basis, which saves memory but increases the pathfinding time. If you have enough RAM, you can use this set of options to compute the matrix once for the full image and cache the result, which in certain cases, can lead to almost-instantaneous searches. Note that this computation adopts the current values of sigma and max. reported in the widget, so you should adjust those before running this command.
  • Flush Cached Data Removes cached data from memory
  • Show Cached "Tubeness Image" Displays the Tubeness data currently cached. Useful for debugging purposes. Also mirrored in View  › Show Cached/Loaded Hessian (Tubeness) Image.
OP_1 "Tubeness" image overlay at 80% opacity

Tracing on Secondary Image

This is one of SNT's most advanced features. Hessian-based analysis provides a convenient and easy way to perform auto-tracing on pre-processed data in which voxels defining the traced structure are scored by their likelihood of belonging to a tube-like structure. However, it is just one approach for "tubeness" classification. What if your data requires different filtering?, or you want to experiment with other approaches?, or the perfect pre-processing algorithm for your images is not yet available in ImageJ? Tracing on Secondary Image is the answer to these questions: It allows you to feed SNT with pre-processed data on which the A*star search will operate. Here are two specific usages for this option:

  • Frangi Vesselness filtering For certain datasets Frangi filtering (Frangi et al. 1998) is more effective than Tubeness at enhancing tube-like structures in the image. However, it is more computation intensive, and thus, less suitable to be adopted by the "compute-as-needed" approach used in Hessian-based analysis. Thus, one can import a pre-computed Frangi-filtered image using this option.
  • Hessian-analysis at multiple scales Let's consider a structure formed simultaneously by very thick and very thin processes (e.g. axons and dendrites). To trace it one would need to adjust continuously the sigma parameter while tracing. Instead, to trace structures of variable diameters more effectively, one could load a copy of the current image as secondary image, and assign different hessian parameters to both images.
  • Adopting probability maps Pre-classified images (using e.g., machine learning) could also be loaded here.

Importantly, this option can be toggled at will, during tracing. Indeed, one can ping-pong between secondary image and main image simply, by pressing I, the shortcut for the Trace on Secondary Image checkbox.

Secondary Image options can be specified in the gear drop-down menu, including commands for Loading/displaying the image file and the powerful Generate Secondary Image command:

SNT-Tracing-On-Filtered-Image-Gear-Options.png
SNT-Generate-Filtered-Image-Prompt.png
  • Load Specified File Loads the filtered image specified in the File textbox.
  • Generate Secondary Image Enables processing of the currently open image directly from SNT. Three routines are currently supported: Frangi, Frangi (without Gaussian) and Tubeness. Supports saving and display of the resulting image. To use the currently open image as the secondary image, choose None. Duplicate Primary Image. Noteworthy: It is assumed that the current sigma value in the Auto-tracing widget reflects the size of structures to be filtered. If that is not the case, the sigma should be adjusted before running this command.
  • Adjust Min-Max Sets the range of pixel intensities used by A* search.
  • Show Cached image Displays the currently loaded filtered image in a separate window.
  • Show Path in File Explorer Opens the directory containing the filtered image specified in the File textbox in the File Explorer GUI.

See the Generating Filtered Images walk-through for more details.


Filters for Visibility of Paths

By default, all the nodes of a path are projected onto the current Z-slice. This is useful to see how much has been completed and gives a sense of the overall structure of the reconstruction. However, SNT provides three additional visibility options for paths:

"Filters for visibility of paths" widget
  1. Only selected paths (hide deselected) Only show paths that have been manually selected in the Path Manager or with the G key ( Shift+G to select multiple paths).
  2. Only nodes within X nearby Z-slices Only highlight nodes within X number of Z-slices on either side of the current slice. The projected skeletons of all paths remain visible.
  3. Only paths from active channel/frame If tracing on a multichannel image or an image with a time axis, only show paths from the active channel or frame.

Any combination of these options may be toggled simultaneously. Note that these options do not apply to Rec. Viewer and SciView.

Default Path Colors

Default-path-colors.png
CMYK color selection UI

By default, finished paths are colored by their selection status (only selected paths can be edited, or extended). The default colors are Green (selected paths) and Magenta (deselected). Default colors can be customized by pressing the respective button in the widget and using the CMYK color chooser. For customizing unconfirmed and temporary paths, see the Colors option in the UI Interaction widget.

Enforce default colors (ignore color tags) If active, SNT will force all paths to conform to the default "Selected" and "Deselected" color buttons. Any custom color tags will be ignored until the option is toggled off. Note that this options does not apply to Rec. Viewer and SciView.


Tip: The Path Manager offers several ways to colorize Paths: 1) Using Tag  › Color swatches (custom colors can be temporarily assigned to empty swatches, by right-clinking on them) or 2) Using Analyze › Color Coding, providing morphometric-based color mapping. Note that Path Manager commands are applied to all paths if no no path(s) are selected.

  • Color tagging
  • Arbitrary path coloring
  • Result


Options Tab

This tab aggregated widgets for advanced settings.

Data Source

"Data Source" widget

If tracing on a multi-dimensional image (i.e., one with multiple data channels and/or a time axis), a particular channel/frame can be loaded into the views by selecting each and pressing the "Reload" button.

Views

SNT-views-widget.png
  • Overlay MIP(s) at X% opacity Overlays the Maximum Intensity Projection of the image "over" the image canvas at the specified opacity. Overlaid projection is only used as a visualization aid and is ignored by the auto-tracing algorithms. It is rendered using the LUT of the channel currently being traced. To reload the overlay (e.g., in case the image being traced changes during a tracing session) toggle the checkbox twice.


  • Image without MIP overlay
  • Image with MIP overlay at 30%
  • Draw diameters in XY view Displays the stored diameter (if any) in the XY view for all existing nodes. Each diameter is drawn as a line segment with length = diameter, which is bisected by the orthogonal tangent vector to the path at that node.
  • Draw diameters - disabled
  • Draw diameters - enabled
  • Apply zoom changes to all views If a zoom change is applied to any one of the XY, ZY or XZ views, apply the same change to the two other views if they are open. Since in ImageJ zooming may resize the image window, you can use Views › Arrange Views to reset their positions
  • Resize Canvas If using a display canvas to view reconstructions, reset its dimensions to the default. (Currently, this command is only available for display canvases, to resize an image go to IJ's command Image  › Adjust  › Canvas Size...
  • Display ZY/XZ views If currently using the XY only view, display the ZY and XZ views as well.

Temporary Paths

"Temporary Paths" widget
  • Confirm temporary segments If active, prompts for either confirmation or denial of whether or not to keep an unconfirmed path segment. If inactive, automatically confirms the path segment created on each left-click after starting a path (first click). Applies to both auto-traced and manually traced path segments. The following two settings are only toggle-able when this setting is active.
    • Pressing 'Y' twice finishes path Finish a temporary path on two successive Y key presses.
    • Pressing 'N' twice cancels path Discard a temporary or unconfirmed path, including the start node, on two successive N key presses.

UI Interaction

SNT-UI-interaction-widget.png
  • Colors Specifies how components should be rendered, including:
    • Canvas annotations The label shown on the top-left corner of the views indicating the state of the UI ("Tracing Paused", "Choosing Sigma", etc.)
    • Fills The pixels that have been reached by the Fill search
    • Unconfirmed and Temporary paths.
  • Path nodes rendering scale (default scale is inferred from current zoom level) Adjusts the radius of the circles representing path nodes. A path node is rendered as a circle centered at the XYZ coordinate of the point annotation.
  • Activate canvas on mouse hovering If active, moving the mouse cursor over the any of the views automatically brings the view window into focus, allowing it to receive input.

Misc

  • Skip confirmation dialogs If active, forgoes the Are you sure? prompt preceding major actions. Note that this option does not apply to irreversible actions such as deleting paths.
  • Debug mode If active, logs detailed information about actions in the console.
  • Preferences... Allows setting other options, namely:
    • Whether the position of dialogs should be remembered across restarts
    • Whether Gzip compression (lossless) should be used to reduce the storage footprint of ".traces" files.
    • "Reset Preferences..." Allows the reset of all options to their defaults. A restart of SNT may be required for changes to take effect.

3D Tab

"3D" menu tab

This tab aggregates widgets related to 3D interaction.

Reconstruction Viewer

The Reconstruction Viewer is an advanced OpenGL visualization tool. For performance reasons, some Path Manager changes may need to be synchronized manually from RV controls. To open Reconstruction Viewer with the currently loaded tracings, press Open Reconstruction Viewer. For more information, see the Reconstruction Viewer wiki page.

Legacy 3D Viewer

The Legacy 3D Viewer is a functional tracing canvas but it depends on outdated services that are now deprecated. It may not function reliably on recent operating systems. For usage instructions, see Tracing using the Legacy 3D Viewer.

SciView

SciView is IJ2's modern replacement for the Legacy 3D Viewer providing 3D visualization and virtual reality capabilities for both images and meshes. It is not yet available in SNT.



Contextual Menu

Right-clicking on any of the image views will bring up a menu with various editing tools. The corresponding keyboard shortcuts are shown to the right of each option.

Contextual menu
  • Select Nearest Path G or Shift+G Will select the path closest to the mouse cursor.
  • Fork at Nearest Node Shift+ Alt+Left Click Creates a fork point at the node closest to the mouse cursor. Once a fork point is made, the branch may be extended as described in Step-By-Step Instructions.
  • Continue Extending Path Allows continued tracing of previously finished paths. Note only one path may be extended at a time. To extend a path: first select it, choose this option, then place additional nodes as shown in Step-By-Step Instructions.
  • Pause SNT Waives all keyboard and mouse inputs to ImageJ, allowing you to interleave image processing routines with tracing operations. Note that if the image contents change while SNT is paused, the image should be reloaded so that SNT is aware of the changes. Tracing views are annotated with the SNT Paused label to indicate this state.
  • Pause Tracing Disables tracing functions until this option is deselected. Tracing views are annotated with the Tracing Paused label to indicate this state.
  • Sholl Analysis at Nearest Node Shift+ Alt+A Runs the Sholl Analysis plugin found in Analyze › Sholl › Sholl Analysis (From Tracings). Note the Center parameter, which sets the center point of the analysis, is left out as this value is given by the selected node.

Editing Paths

SNT-Path-Edit-Right-Click-Menu-Active.png

Pressing Edit Path with a single path selected will activate Edit Mode, allowing use of the menu options under the Edit Path option. When Edit Mode is active, moving the mouse cursor along the path will activate the nearest node 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.

  • Reset Active Node Clears the active node from the cursor.
  • Delete Active Node D or Backspace Permanently removes the active node from the path.
  • Insert New Node At Cursor Position I Inserts a new node at the cursor position. The inserted node is placed between the active node and its parent.
  • Move Active Node to Cursor Position M Moves the active node to the cursor position.
  • Bring Active Node to Current Z-plane B Moves the active node to the active Z-plane. Note that the translation is only done in Z. XY positions are unchanged.
  • Connect To (Start Join) Allows two existing paths to be merged or joined.

Path Manager

Path Manager

The Path Manager dialog displays all existing paths in a hierarchical structure (tree), where one path is "primary" (path 0) and all other paths (paths 1...N) are children of the primary path. The dialog also contains several menus with various editing, tagging, refinement/fitting, filling and analysis options. Paths can be searched by name and/or tags in the text filter, with more sophisticated search capabilities in the Advanced Filtering Menu.

Menu Commands

Edit

  • Delete Removes selected path(s) from the Path Manager.
  • Rename Renames the selected path.
  • Make Primary Makes the selected path the primary path, moving it to the top of the tree. Note that this will alter the reconstruction topology.
  • Disconnect Disconnects the selected path from all of its connections (Undoable operation)
  • Merge Merges the selected paths (at least two) into one. Note the starting node of path i is merged to the endpoint of path i+1
  • Specify Radius Assigns a constant radius to all the nodes of selected path(s). This setting only applies to unfitted paths and overrides any existing values.
"Edit" menu
  • Ramer-Douglas-Peuker Downsampling Given an inputted maximum permitted distance between adjacent nodes, performs Ramer-Douglas-Peucker downsampling on the selected path(s).

Tag

SNT-Path-Manager-Tag.png

Assigns tags to Paths. Tags are organized in the following categories:

  • Type Type of neurite compartment (Axon, (Basal) Dendrite, etc.), as used by the SWC format. It is also possible to pair each type with a color tag by enabling the respective option in Tag › Options..
    These tags are considered to be essential annotations and all paths are assigned the Undefined-type tag when created. For this reason they are not eliminated by the Remove All Tags command.
  • Color A preset swatch color, a custom one chosen from the color chooser. Note that is also possible to assign mapping LUTs using the Analyze › Color Coding command.
  • Image Metadata Information on hyperstack position details (e.g., channel or frame on which a path was traced).
  • Morphology Morphometric properties, such as Path length, Path mean radius or branch order.
  • Custom Ad-hoc comments.

Note that only SWC-type tags are preserved across restarts when saving traces in the SWC format. All others require data to be saved in SNT's own .Traces format.


Refine/Fit

Fit-manager.png

SNT can use the fluorescent signal around traced paths to optimize curvatures and estimate the thickness of traced structures to sub-voxel accuracy. The optimization algorithm uses pixel intensities to fit circular cross-sections around each node. Once computed, fitted cross-sections can be used to: 1) Infer the radius of nodes, and/or 2) refine node positioning, by snapping their coordinates to the cross-section centroid. The Refine/Fit ›   menu contains three entries:

Slice in "Explore/Preview Fit" image stack
  • Fit Paths/Un-fit paths/Apply Existing Fit This option will change depending on which paths are currently selected. You can use it to 1) Fit selected paths, 2) un-fit paths that have already been fitted, or 3) apply a generated preview of the fit.
  • Explore/Preview Fit Carves out a region of the image along and around each path node, generating an animated cross-view "fly-through" with the result of the fitting operation. The generated image is annotated with details of the fit: i) Fitted radius; ii) normalized score quantifying the circularity of a node's cross section, and iii) the angle between a node and its parent.
  • Discard Fit Deletes the existing fit(s) for the selected path(s), or all fits if no paths are selected.

Before computing the fit, SNT will prompt you to specify two parameters:

  • Type of Refinement: Either 1) Assign radii of fitted cross-sections to nodes, 2) Snap node coordinates to cross-section centroids, or 1) & 2) Assign fitted radii and snap node coordinates
  • Max. Radius Defines (in pixels) the largest radius allowed in the fit. It constrains the optimization to minimize fitting artifacts caused by neighboring structures. A good rule of thumb is to use 1.5-2x the largest radius in the traced structure. Default is 40 pixels on each side of the path

Assuming you chose to fit both centroids and radii, a fitted path might look like the rightmost image below. Notice how the nodes follow the center line of the structure more closely, and how each node now has a non-zero radius approximating that of the traced axon.

  • Fitting parameters
  • Before fitting
  • Fitted path

Fill

"Fill" menu

Analyze

This menu contains several options which provide quick ways to analyze and visualize numerical properties of paths.

"Analyze" menu
  • Color Coding Assigns color codes to paths based on the chosen metric.
    • Color by Drop-down menu containing the metrics which inform the color mapping.
    • LUT Drop-down menu containing the LUTs (Look Up Tables) that define the color palettes. The LUTs are those that come packaged with ImageJ. The selected LUT is displayed in the color bar directly underneath.
    • Rec. Viewer Color Map If active, opens an instance of the Reconstruction Viewer with the selected paths color coded with the selected LUT.
    • Rec. Plotter Color Map If active, open an instance of the Reconstruction Plotter with the selected paths color coded with the selected LUT.
    • Remove Existing Color Coding Removes existing color coding from the selected paths.
After choosing metric: Branch Order, LUT: Ice, showing the Reconstruction Viewer with the color-mapped OP_1 tracing.
Color Mapper prompt
OP_1 color-mapped


  • Distribution Analysis Plots a histogram of the selected metric.
    • Measurement - Drop-down menu with the available metrics.
Choosing Branch Order for the measurement.
Distribution Analysis prompt
Branch Order histogram


  • Measure Shows a table of summary statistics for selected paths. If measuring multiple tracings, the table can be sorted by column.
Measurements table for OP_1


  • Convert to ROIs Allows conversion of paths to ROIs (Regions of Interest). Creates an instance of the ROI Manager
    • Convert Drop-down menu specifying the compartment to convert.
    • View Drop-down menu specifying which view to overlay the ROIs.
    • Impose SWC colors
    • Adopt path diameter as line thickness
    • Discard existing ROIs in ROI Manager
Converting paths to ROIs with the default parameters.
Convert to ROIs prompt
ROI Manager


  • Plot Profile Uses the pixel intensity values under point annotations to generate a pixel intensity vs. distance plot for selected paths.
Intensity profile for Path 0 of OP_1.
SNT-Path-Profile-Graph.png


  • Skeletonize Outputs a binary image that is a topographic skeleton, ie, it generates an empty (zero-filled) image of the same dimensions of the one being traced, then paints a pixel at each node coordinates following the topographic rules of bitmap skeletons in which fork points, tips and slab voxels are determined by voxel connectivity.
    • Roi filtering
      • None
      • Convert only segments contained by ROI
    • Run "Analyze Skeleton" after conversion Runs the AnalyzeSkeleton plugin on the skeletonized output image.
Converting paths to a topographic skeleton with default parameters.
Skeletonize prompt
Skeleton of OP_1, Z-projected


  • Save as SWC Exports selected paths as an SWC file. Note the paths to be exported must include a primary path (i.e., one a the top level in the Path Manager tree).


Filter Toolbar

SNT-Path-Manager-Text-Filter.png

The filter toolbar allows paths to be searched and filtered quickly using tags (colors, annotations, SWC-type, etc.) or morphometric properties. The text field is used for text-based searches (recent searches can be recovered through its drop-down menu). The SNT-Text-Filter-Up-Arrow-Button.png and SNT-Text-Filter-Down-Arrow-Button.png buttons find the next/previous occurrence of the entered phrase (shortcuts: ), while the SNT-Text-Filter-Balloon-Button.png button highlights all occurrences of the entered phrase. Settings for advance text-based filtering can be accessed through the SNT-Text-Filter-Advanced-Button.png, including wildcard support, case sensitive matching, and replace-by-pattern. In addition, the Advanced Filtering Menu SNT-Text-Filter-Advanced-Button.png provides other sophisticated means of filtering paths:

"Color Filters" menu
  • Color Filters Allows filtering of paths by color tags. Custom colors may be selected by right-clicking an empty swatch, which will bring up the CMYK palette. The chosen color is temporarily saved in that swatch.
  • Morphology Filters Allows filtering of paths by selected morphological properties. Note that these filters do not require paths to be labeled using Tag › Morphology ›  .
    • Branch Order Filters for paths of branch order in the inputted range. Example queries: 1-2: selects all primary and secondary branches; max-max: selects all terminal branches.
    • Length Filters for paths of length within the inputted range. Example queries: 10-20: selects all paths with lengths between 10 and 20μm; max-max: selects the longest path(s).
    • Mean Radius Filters for paths of mean radius within the inputted range.
    • No. of Nodes Filters for paths with node count within the inputted range.
    • SWC Type Filters for paths with the selected SWC type tags. Note that the paths of interest must have been tagged using theTag › Type ›   menu.
  • 1) Branch Order filter prompt
  • 2) Length filter prompt
  • 3) Mean Radius filter prompt
  • 4) No. of Nodes filter prompt
  • 5) SWC Type filter prompt

Fill Manager

Provides controls for all filling operations. It is described in more detail in the Filling: Step-By-Step Instructions.

Home Manual Walk-throughs Screencasts Shortcuts Analysis Rec. Viewer SciView Cx3D Scripting FAQ