Skip to content

Commit 4fbabe1

Browse files
committed
fix links and minor corrections
1 parent c10623b commit 4fbabe1

File tree

2 files changed

+40
-14
lines changed

2 files changed

+40
-14
lines changed

_pages/plugins/snt/big-data.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ SNTv5 implemented _preliminary_ support for big data. The support remains basic
2222
|--------------------|-----------------------|---------|
2323
| Tracing operations | Headless support only | A* tracing performed using pre-existing coordinates is fully supported via scripting in headless operations. [Example implementation](https://github.com/AllenNeuralDynamics/neuron-tracing-utils). For interactive tracing, please use [HortaCloud](https://hortacloud.org/): This is SNT's development team recommended tool for tracing Terabyte-size datasets |
2424
| Path optimization | Headless support only | [Optimization of curvatures](./manual#refinefit-), including extraction of radii |
25-
| 3D Visualization | Supported via [sciview](./manual#sciview) and [BigVolumeViewer](./manual#bigvolumeviewer) | Visualization of 3D reconstructions, including [color mappings](./manual#color-mapping-), etc. |
25+
| 3D Visualization | Supported via [sciview](./manual#sciview) and [BigVolumeViewer](./manual##big-volume-viewer) | Visualization of 3D reconstructions, including [color mappings](./manual#color-mapping-), etc. |

_pages/plugins/snt/sholl.md

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ After [installing SNT](/plugins/snt/#installation), Sholl commands can be access
5050
/media/plugins/snt/animatedpolyfit.gif | Sampled data can be fitted to polynomials of varying degree (animation created using [BAR](/plugins/bar))
5151
/media/plugins/snt/sholl-convex-hull.png | Scripting allows for arbitrary focal points, in this case the centroid of the neuron's convex hull (*Convex Hull as Center* template script)
5252
/media/plugins/snt/snt-angular-sholl-ddac.png | [Angular Sholl](#angular-sholl) and [Angle-based metrics](##metrics-based-on-angular-sholl)
53-
/media/plugins/snt/shollresultasrois.png | Intersection points and sampling shells can be retrieved as ROIs. Intersection points are placed at edges of detected clusters of foreground pixels, not their center.
53+
/media/plugins/snt/shollresultasrois.png | Intersection points and sampling shells can be retrieved as [annotation ROIs](#output-options)
5454
/media/plugins/snt/sholl-rasterized-shells.png | Using Sholl to measure the distribution of image objects (_Sholl Rasterize Shells_ template script) [[use case](https://forum.image.sc/t/measuring-distribution-of-object-diameters-in-different-stripes-using-sholl-plugin/51087)]
55-
/media/plugins/snt/snt-sholl-integrate-density-profiles.png | Not only neurons: Integrated-density profiles can be used to obtain radial maps of fluorescent markers.
55+
/media/plugins/snt/snt-sholl-integrate-density-profiles.png | Not only neurons: [Integrated-density profiles](#intensity-based-profiles) can be used to obtain radial maps of fluorescent markers.
5656
"
5757
%}
5858

@@ -275,7 +275,12 @@ Detailed control over polynomial fitting is controlled by the options in the *Op
275275

276276
- **LUT** The Lookup Table (LUT) used for annotations.
277277

278-
- **ROIs** Allows for two sets of ROIS to be added to the image overlay: 1) concentric shells matching sampled distances (circular ROIs or composite ROIs when using hemicircles); and 2) Multipoint ROIs at intersection sites between shells and clusters of foreground pixels. Note that WYSIWYG versions (RGB images) of these masks can be obtained using by pressing {% include key keys='Shift|F' %} ({% include bc path='Image|Overlay|Flatten'%}) or by running {% include bc path='Analyze|Tools|Calibration Bar...'%}. Note that ROIs are not created when outputting [integrated density](#intensity-based-profiles).
278+
- **ROIs** Allows for two sets of ROIS to be added to the image overlay: 1) concentric shells matching sampled distances (circular ROIs or composite ROIs when using hemicircles); and 2) Multipoint ROIs at intersection sites between shells and clusters of foreground pixels. Note that WYSIWYG versions (RGB images) of these masks can be obtained using by pressing {% include key keys='Shift|F' %} ({% include bc path='Image|Overlay|Flatten'%}) or by running {% include bc path='Analyze|Tools|Calibration Bar...'%}.
279+
280+
NB:
281+
- ROIs are not created when outputting [integrated density](#intensity-based-profiles)
282+
- Versions prior to SNTv5 placed intersection points at edges of detected clusters of foreground pixels, not their centroid
283+
279284

280285
- **Mask** A 16/32–bit maximum intensity projection of the analyzed image is generated in which the measured arbor is painted according to its Sholl profile. The type of data (*Raw*, i.e., sampled or *Fitted*) is displayed in the image subtitle
281286

@@ -385,7 +390,7 @@ Detailed control over polynomial fitting is controlled by the options in the *Op
385390
</tbody>
386391
</table>
387392

388-
<span style="display: inline-block; width: 25px">***N***</span> For 2D images, the <u>N</u>umber of clusters of pixels (8–connected) intersecting the circumference of radius *r*
393+
<span style="display: inline-block; width: 25px">***N***</span> For 2D images, the <u>N</u>umber of clusters of pixels (8–connected) intersecting the circumference of radius *r*<br>
389394
<span style="display: inline-block; width: 25px"> </span> For 3D images, the <u>N</u>umber of clusters of voxels (26-connected) intersecting the surface of the sphere of radius *r*
390395

391396
<span style="display: inline-block; width: 25px">***r***</span> Distance from center of analysis (<u>r</u>adius of Sholl circle/sphere)
@@ -563,7 +568,7 @@ run("Sholl Analysis (From Image)...", "datamodechoice=Intersections startradius=
563568

564569
For more comprehensive functionality, the Script Editor's {% include bc path='Templates|Neuroanatomy|'%} menu lists demo scripts that perform batch operations. For sake of completeness, here is a small tutorial on how to write a macro from the ground up:
565570

566-
## Tutorial: Batch Analysis of Images using IJM Languages
571+
## Tutorial: Batch Analysis of Images using IJ Macro Language
567572

568573
Any macro must set a center, or allow the Sholl Analysis plugin to access a ROI marking it. One could instruct ImageJ to read the coordinates of pre-existing ROIs from a text file, store a list of line selections in the ROI Manager, or write a morphology-based routine that detects the center of the arbor. However, marking the center of analysis is probably something that you will want to do manually. Here is a workflow:
569574

@@ -583,7 +588,7 @@ Now that all the images are marked, we could use the Macro Recorder ({% include
583588

584589
{% highlight javascript %}
585590
// Recording Sholl Analysis version 3.4.3
586-
run("Sholl Analysis...", "starting=10 ending=400 radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
591+
run("Sholl Analysis (From Image)...", "datamodechoice=Intersections starting=10 ending=400 radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
587592
{% endhighlight %}
588593

589594
As you may have noticed, ImageJ plugins are controlled by a single lowercase sentence in which arguments are separated by a space. Input fields and choice lists appear as *keyword=value* pairs, active checkboxes by a single keyword. Options that are not needed can be omitted. This makes it easier to edit code blocks:
@@ -594,11 +599,12 @@ end = 200; // variable that controls ending radius
594599
step = 2; // variable that controls step size
595600

596601
// Run the plugin
597-
run("Sholl Analysis...", "starting="+ start +" ending="+ end +" radius_step="+ step +" infer linear save do");
602+
run("Sholl Analysis (From Image)...", "starting="+ start +" ending="+ end +" radius_step="+ step +" infer linear save do");
598603
{% endhighlight %}
599604

600605
Now we just need to assemble a working macro to be pasted in the {% include bc path="Process | Batch | Macro..." %} prompt:
601606

607+
<details>
602608
{% highlight javascript %}
603609
// Get the number of ROIs of the image overlay
604610
nROIs = Overlay.size;
@@ -610,11 +616,13 @@ if (nROIs==0)
610616
Overlay.activateSelection(nROIs-1);
611617
// We now call the plugin as detailed by the Macro Recorder. We'll set 'Ending radius' to a non-numeric
612618
// value (NaN, "Not a Value") to make sure the maximum length for each individual image is used
613-
run("Sholl Analysis...", "starting=10 ending=NaN radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
619+
run("Sholl Analysis (From Image)...", "datamodechoice=Intersections starting=10 ending=NaN radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
614620
{% endhighlight %}
621+
</details>
615622

616-
Of course you can also automate any preceding steps. However, do not forget to ensure that the center of analysis will be available when the plugin is called:
617623

624+
Of course you can also automate any preceding steps. However, do not forget to ensure that the center of analysis will be available when the plugin is called:
625+
<details>
618626
{% highlight javascript %}
619627
// Impose spatial calibration
620628
run("Properties...", "unit=um pixel_width=1.5 pixel_height=1.5 voxel_depth=3.0");
@@ -625,19 +633,37 @@ setAutoThreshold("Huang dark stack");
625633
// >>>> Make sure the initial point selection remains available <<<<
626634
Overlay.activateSelection( Overlay.size - 1 );
627635
// Run the plugin
628-
run("Sholl Analysis...", "starting=10 ending=NaN radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
636+
run("Sholl Analysis (From Image)...", "datamodechoice=Intersections starting=10 ending=NaN radius_step=0 infer fit linear polynomial=[8th degree] semi-log normalizer=Volume create save do");
629637
{% endhighlight %}
638+
</details>
630639

631640
That's it. Use the Macro Recorder to generate the customizations you will need before parsing the entire folder of images with {% include bc path="Process | Batch | Macro..." %}
632641

633642

634-
## Examples:
643+
## Complex Scripts
635644

636-
More complex scripts will take advantage of [SNT's API](/plugins/snt/scripting). Here are some examples:
645+
More complex scripts will take advantage of [SNT's API](/plugins/snt/scripting). Here are some of scripts from SNT's [Bundled Templates](./scripting#bundled-templates):
637646

647+
<details>
648+
<summary>Bitmap vs Tracing Comparison (Groovy)</summary>
649+
{% include code org='morphonets' repo='SNT' branch='master' path='src/main/resources/script_templates/Neuroanatomy/Analysis/Sholl_Bitmap_vs_Tracing_Comparison.groovy' label='Bitmap vs Tracing Comparison (Groovy)' %}
650+
</details>
651+
652+
<details>
653+
<summary>Extensive Stats Demo (Groovy)</summary>
638654
{% include code org='morphonets' repo='SNT' branch='master' path='src/main/resources/script_templates/Neuroanatomy/Analysis/Sholl_Extensive_Stats_Demo.groovy' label='Extensive Stats Demo (Groovy)' %}
655+
</details>
639656

657+
<details>
658+
<summary>Extract Profile from Image (Python)</summary>
640659
{% include code org='morphonets' repo='SNT' branch='master' path='src/main/resources/script_templates/Neuroanatomy/Analysis/Sholl_Extract_Profile_From_Image_Demo.py' label='Extract Profile from Image (Python)' %}
660+
</details>
661+
662+
<details>
663+
<summary>Rasterize Shells (Python)</summary>
664+
{% include code org='morphonets' repo='SNT' branch='master' path='src/main/resources/script_templates/Neuroanatomy/Analysis/Sholl_Rasterize_Shells.py' label='Rasterize Shells (Python)' %}
665+
</details>
666+
641667

642668
# FAQ
643669

@@ -906,7 +932,7 @@ Release notes are available on the {% include github org='morphonets' repo='SNT'
906932

907933
{% include citation %}
908934

909-
Citing manuscripts can be retrieved using [Scholar](https://scholar.google.com/scholar?cites=15441574333602897335&as_sdt=2005&sciodt=1,5&hl=en) or [PubMed](http://www.ncbi.nlm.nih.gov/pmc/articles/pmid/25264773/citedby/?tool=pubmed), although many [more publications seem to be using it](https://scholar.google.com/scholar?hl=en&as_sdt=1%2C5&as_vis=1&q=fiji+AND+%22Sholl+Analysis%22&btnG=). See [Global FAQs](/plugins/snt/faq#how-do-i-cite-snt) for details on how to cite SNT.
935+
Citing manuscripts can be retrieved using [Scholar](https://scholar.google.com/scholar?cites=15441574333602897335&as_sdt=2005&sciodt=1,5&hl=en) or [PubMed](https://pubmed.ncbi.nlm.nih.gov/?linkname=pubmed_pubmed_citedin&from_uid=25264773), although many [more publications seem to be using it](https://scholar.google.com/scholar?hl=en&as_sdt=1%2C5&as_vis=1&q=fiji+AND+%22Sholl+Analysis%22&btnG=). See [Global FAQs](/plugins/snt/faq#how-do-i-cite-snt) for details on how to cite SNT.
910936

911937

912938
# References

0 commit comments

Comments
 (0)