Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNT: Fix broken links, revamp metrics, misc #340

Merged
merged 4 commits into from
Aug 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions _pages/plugins/sholl-analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ To analyze cells without having to initialize SNT's tracing interface, run {% in
- **Root nodes** These correspond to the starting nodes of primary (root) paths. If multiple primary paths exist, center becomes the centroid (mid-point) of their starting nodes
- **Soma node(s)** These correspond to nodes tagged as "soma". If _Ignore connectivity_ is chosen, the centroid of all soma-tagged nodes is used, even if such nodes are not at the root of the structure. If _Primary paths only_ is chosen only root nodes tagged as "soma" are considered

- **Metrics & Output** These are described in [Curve fitting](#descriptors-and-curve-fitting), [Choice of Methods](choice-of-methods), and [Output options](output-options).
- **Metrics & Output** These are described in [Curve fitting](#descriptors-and-curve-fitting), [Choice of Methods](#choice-of-methods), and [Output options](#output-options).

- **Advanced Options** These are included in the _Options, Preferences and Resources_ dialog, and include:

Expand Down Expand Up @@ -598,7 +598,7 @@ The authoritative reference for *SNT* is:
<dl>
<dd markdown="1">

The [original Sholl Analysis plugin](http://labs.biology.ucsd.edu/ghosh/software/) by Tom Maddock (version 1.0) was released for ImageJ 1.35 and is now deprecated, unmaintained software that behaves erratically in newer versions of ImageJ. The current implementation of *Sholl Analysis* inherits Tom's initial 2D algorithm, but has numerous [added features](#release-notes) to enhance its utility. Note that throughout 2012 the plugin was temporarily called *Advanced Sholl Analysis*. You can follow the entire history of the plugin using its [release notes](#release-notes)
The [original Sholl Analysis plugin](http://web.archive.org/web/20140216075253/http://labs.biology.ucsd.edu/ghosh/software/) by Tom Maddock (version 1.0) was released for ImageJ 1.35 and is now deprecated, unmaintained software that behaves erratically in newer versions of ImageJ. The current implementation of *Sholl Analysis* inherits Tom's initial 2D algorithm, but has numerous [added features](#release-notes) to enhance its utility. Note that throughout 2012 the plugin was temporarily called *Advanced Sholl Analysis*. You can follow the entire history of the plugin using its [release notes](#release-notes)

</dd>
</dl>
Expand Down Expand Up @@ -737,7 +737,7 @@ Use Fiji's {% include bc path="File | Export | Table..." %} command or SNT's {%
<dl>
<dd markdown="1">

The Sholl mask ([see example of CA1 cell](#ca1-cell-mask)) is simply an illustration: a maximum intensity projection of the analyzed cell in which [intersection counts](##output-options) are used as pixel intensities. As explained in [Output Options](#output-options), its LUT can be modified, and intensities calibrated using ImageJ default commands. As mentioned, it can also be used to visually inspect for [segmentation artifacts](#cf-segmentation).
The Sholl mask ([see example of CA1 cell](#ca1-cell-mask)) is simply an illustration: a maximum intensity projection of the analyzed cell in which [intersection counts](#output-options) are used as pixel intensities. As explained in [Output Options](#output-options), its LUT can be modified, and intensities calibrated using ImageJ default commands. As mentioned, it can also be used to visually inspect for [segmentation artifacts](#cf-segmentation).

</dd>
</dl>
Expand Down
10 changes: 5 additions & 5 deletions _pages/plugins/snt/analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,24 @@ tags: snt,reconstruction,tracing,arbor,neuron,morphometry,dendrite,axon,neuroana
# Measurements
{% include img align="right" name="Measurements dialog" src="/media/plugins/snt/snt-measurements-prompt.png" caption="The measurements dialog features options for searching and selecting metrics, renderer measured cells, and summarize existing measurements. An offline guide is also accessible through the <i>Gear</i> menu." %}

SNT provides a couple ways to measure reconstructions. To measure complete cells use {% include bc path='Analysis|Measure...'%} in the main SNT dialog (or {% include bc path='Analyze & Measure| '%} in Reconstruction Viewer). To get measurements only on a select group of Paths, first select or filter for the Paths you want to measure in the Path Manager, then use the commands in the Path Manager's {% include bc path='Analyze|Measurements'%} menu.
SNT provides a couple ways to measure reconstructions. To measure complete cells use {% include bc path='Analysis|Measure...'%} in the main SNT dialog (or {% include bc path='Analyze & Measure| '%} in Reconstruction Viewer). To get measurements only on a select group of Paths, first select or filter for the Paths you want to measure in the Path Manager, then use the commands in Path Manager's {% include bc path='Analyze|Measurements'%} menu.

The reason for distinguishing between branch-based (i.e., cell-based) and path-based measurements is flexibility: Path-based measurements can be performed on any structures, even those with loops, while branch-based measurements require the structure to be a [graph-theoretic tree](#graph-based-analysis). The bulk of SNT measurements is described in [Metrics](/plugins/snt/metrics). Measurements available in the GUI are typically single-value metrics. Many others measurements are available via [scripting](/plugins/snt/scripting).
The reason for distinguishing between cell-based (i.e., branch-based) and path-based measurements is flexibility: Path-based measurements can be performed on any structures, even those with loops, while cell-based measurements require the structure to be a [graph-theoretic tree](#graph-based-analysis). The bulk of SNT measurements is described in [Metrics](/plugins/snt/metrics). Measurements available in the GUI are typically single-value metrics. Many others measurements are available via [scripting](/plugins/snt/scripting).

A convenience _Quick Measurements_ command also exists ( {% include bc path='Analysis| '%} menu in the main SNT dialog or {% include bc path='Analyze & Measure| '%} in Reconstruction Viewer), in which common metrics are immediately retrieved using default settings without prompts.

Batch measurements of reconstructions can be accomplished via scripting. See, e.g., the [bundled template script](/plugins/snt/scripting#bundled-templates) *Measure\_Multiple\_Files.py*, and related batch scripts for examples.

**Note on Fitted Paths:**<br>
Some branch-based metrics may not be available when mixing fitted and un-fitted paths because paths are fitted independently of one another and may not be aware of the original connectivity. When this happens, metrics may be reported as NaN and related errors reported to the Console (when running in Debug mode).
Some cell-based metrics may not be available when mixing fitted and un-fitted paths because paths are fitted independently of one another and may not be aware of the original connectivity. When this happens, metrics may be reported as NaN and related errors reported to the Console (when running in Debug mode).
If this becomes an issue, consider fitting paths in situ using the Replace existing nodes option instead. Also, remember that you can also use the Path Manager's Edit>Rebuild... command to re-compute relationships between paths

# Statistics
SNT assembles comparison reports and simple statistical reports (two-sample t-test/one-way ANOVA) for up to six groups of cells. This is described in [Comparing Reconstructions](#comparing-reconstructions). In addition, descriptive statistics are commonly reported in histograms from *Frequency/Distribution Analysis* commands.

{% include img align="center" src="/media/plugins/snt/snt-combined-histograms.png"
caption="
**_Branch-based Distributions..._**
**Cell-based Distributions..._**
<p>
SNT charts are zoomable, scalable, and rendered using scientific plotting styles to be as publication-ready as possible.
Righ-click on a plot canvas to export it as vector graphics (PDF or SVG), acess customization controls, a light/dark theme toggle, and options to aggregate charts in multi-panel figures.
Expand Down Expand Up @@ -108,7 +108,7 @@ To conduct [Strahler Analysis](/plugins/strahler-analysis) on the current conten
Path-based analyses accept _any_ traced structure (e.g., disconnected paths, paths associated with different cells, etc.), even those with loops. While most SNT measurements require traced structures to be valid mathematical trees, path-based measurements have no topological constraints. There are two commands in this category: [Path Order Analysis](#path-order-analysis), and [Path Properties: Export CSV...](#path-properties-export-csv).

### Path Order Analysis
This command ({% include bc path='Analysis|Path-based|Path Order Analysis'%} in the main SNT dialog) is a variant of [Strahler](strahler-analysis) with the following differences:
This command ({% include bc path='Analysis|Path-based|Path Order Analysis'%} in the main SNT dialog) is a variant of [Strahler](#strahler-analysis) with the following differences:
- Classification is based on _Path Order_: Paths are the scope of classification (not branches)
- Ranking of orders is reversed relatively to Strahler analysis (reversed Strahler orders), with primary paths having _order 1_ and terminal paths having the highest order
- Any collection of paths can be analyzed without validating into a formal tree
Expand Down
4 changes: 2 additions & 2 deletions _pages/plugins/snt/machine-learning.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ SNT interacts with [Labkit](../labkit) and [Trainable Weka Segmentation (TWS)](.
- Import a pre-trained model into SNT and directly load the probability maps of the semantic segmentation as secondary tracing layer
- Train a model with SNT paths

The table below summarizes key differences between Labkit and TWS (as of SNT v4.3.0). Note that both tools classify images using the [Weka framework](https://www.cs.waikato.ac.nz/ml/weka/).
The table below summarizes key differences between Labkit and TWS (as of SNT v4.3.0). Note that both tools classify images using the [Weka framework](https://ml.cms.waikato.ac.nz/weka/).

| | **[Labkit](../labkit)** | **[TWS](../tws)** |
|------------------------------------------------------|------------------------------------------------------|------------------------------|
Expand Down Expand Up @@ -88,4 +88,4 @@ The [Weka framework](https://waikato.github.io/weka-wiki/citing_weka/) is descri

- Eibe Frank, Mark A. Hall, and Ian H. Witten (2016). The WEKA Workbench.
Online Appendix for "Data Mining: Practical Machine Learning Tools and
Techniques", Morgan Kaufmann, Fourth Edition, 2016. ([PDF](https://www.cs.waikato.ac.nz/ml/weka/Witten_et_al_2016_appendix.pdf))
Techniques", Morgan Kaufmann, Fourth Edition, 2016. ([PDF](https://ml.cms.waikato.ac.nz/weka/Witten_et_al_2016_appendix.pdf))
7 changes: 7 additions & 0 deletions _pages/plugins/snt/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ Imports of neuronal reconstructions from multiple sources, including:

- **{% include bc path='Remote Databases' %}** Import of neuronal reconstructions from [FlyCircuit](http://www.flycircuit.tw/), [InsectBrain](https://insectbraindb.org/app/), [MouseLight](https://ml-neuronbrowser.janelia.org/), and [NeuroMorpho](http://neuromorpho.org/).

{% include img align="center" src="/media/plugins/snt/snt-swc-prompts.png" caption="Prompts for importing and exporting SWC files" %}

{% capture dnd %}
All SNT dialogs (including the _Neuroanatomy Shortcut Window_ support drag-and-drop: E.g., you can import SWC files just by dragging and dropping them either into the main SNT dialog or the Path Manager.
{% endcapture %}
Expand Down Expand Up @@ -167,6 +169,11 @@ Creates multi-panel figures from chosen reconstructions, according to the follow
- **Type**: Whether the illustration should be a bitmap image (typically rendered at 1micron per pixel); a scalable graphics 2D image (see [Reconstruction Plotter](#reconstruction-plotter)), or an interactive 3D scene (see [Reconstruction Viewer](/plugins/snt/reconstruction-viewer))
- **View**: The display plane of the scene: XY (the default), XZ, or ZY. This option pertains only to static 2D scenes
- **Positioning**: Whether reconstructions should be rendered under the original coordinates, or whether every cell in the scene should be translatated to a common xyz coordinate (0,0,0)
- **Rotation**: Whether cell(s) should be rotated to a _guessed_ 'vertical' position. Options include:
- _None_: No rotation is performed
- _Longest geodesic_: Assumes the longest shortest path in the arbor reflects its overall orientation. May be best suitable for polarized architectures (e.g., dendrites of pyramidal cells)
- _Tips_: Assumes the vector defined by the soma and the centroid of all tips in the arbor reflects its overall orientation. May be best suitable for symmetrical or radial architectures (e.g., dendrites of starburst amacrine cells)

<div align="center">
<img src="/media/plugins/snt/snt-create-figure-demo.gif" title="Create figure: 3D (interactive) multi-panel montage" width="60%" alt="Create figure: 3D (interactive) multi-panel montage" />
</div>
Expand Down
Loading
Loading