How to output the neurite coordinates from SNT?

Hi everyone,

Recently I need to measure inter-distance between two filaments in 3D, and use SNT to trace the filaments, but it does not give the outcome directly, so I prepare to calculate the inter-distance manually. However, SNT seems not to give the neurite coordinates… Does anybody have some precious suggestions to read out the neurite coordinate?



Besides, is it eligible to trace two parallel filaments? seems not, but not sure.

Welcome to the forum @lchu01,

Could you please provide more details (maybe an illustration would help) on what is that you are trying to achieve? inter-node distance within a path? distance between two parallel paths? As per how to access the nodes of paths directly, have a look at this snippet.

Hi Tiago, thanks so much for your new code, and I can get the 3D coordinates now.
My arm is to measure the inter-sister distance in the mitotic cell, so I use SNT to trace two parallel sisters in 3D and then calculate the inter-sister distance manually. When cropping one sister, the trace goes well and can give a nice centroid after several times “fit paths”, but when trying SNT on the raw picture (two parallel sisters), after several “fit paths”, the centroid trace shift away from the axis. So, should I change some parameters? or…? Thanks!

can you upload an example image with traces, or a snapshot?

Image 14.tif (329.6 KB) Image 14_sister1.tif (329.6 KB) Image 14_sister2.tif (329.7 KB)

I have uploaded one pair of sisters and its each sister. FYI.


No need to crop images. The reason why fitting ‘overflows’ to the sister chromatid is because (i suspect) you are specifying an exaggerated ‘Max. radius’ (Path Manager’s Refine/Fit>Parameters… command). Before performing any sort of fitting operation you should have an idea of the size of the structures being traced. A convenient way to do so is to use the ‘Estimate Radii’ command (gear menu in the Auto-Tracing widget). This will give you something like this:

I.e., at the image resolution the max. expected radius is ~7 pixels which is way below the default 40 pixels.

There should not be a need for repeating fits. I would expect that if you trace using Hessian-based analysis under appropriate settings , a single fit operation would suffice.

As per calculating the distances between the two sister chromatids: If it helps, you could programmatically generate paths between paired nodes. The advantage here is that you would be able to measure and analyze theirs distances directly SNT. There is a template script (Script Editor: Templates>Neuroanatomy>Tracing> (…)) that exemplifies how to generate straight line paths.

Thanks. I have used the Max.radius = 7 pixels, traced one sister as below, and only did fits once. still seem imperfect…

What are your settings for Hessian analysis?

As you suggested, for Hessian-based analysis, I use Estimate Radii (Local Thickness) and its default setting and got the picture as you did. For “Type of refinement”, I use “1) & 2): Assign fitted radii and snap node coordinates”; the Max.radius was chosen with 7 and Multithreading was 8. Besides, I chose XY=2, Z=0 for Enable Scapping within setting.

just realized this remained unanswered. For future reference, let me clarify the usage of the “Estimate Radii (Local Thickness)” command:

Hessian-based analysis requires you to specify two parameters: sigma and “max” (do read the documentation to understand what they are). There are two ways of doing so (from the gear menu in the ‘Auto-tracing’ widget:

  1. ‘Adjust Settings Visually…’: This uses a wizard that previews in real-time the effects of the parameters. It was designed for fast input, and images that require frequent updates of sigma. It is useful for 3D tracing of neuronal processes since neurites display a wide range of calibers.

  2. ‘Adjust Settings Manually…’: Gives all the freedom to the tweak the parameters, but provides no real-time preview. So how do you know what ranges of sigma to expect? The answer is the “Estimate Radii (Local Thickness)”: by looking at its histogram you will have an idea on the expected size of the cross sections of the tubular structures you are tracing.

So after realizing that the values proposed by the wizard in 1) were sub-par, I ran “Estimate Radii (Local Thickness)”. After looking at the histogram I thought the largest detected radius would perhaps be more suitable. So I typed its value in 2). This is what I get with a couple of intermediate clicks (I disabled the “Confirm temporary segments” checkbox in the Options tab, so that I would not be slowed down by confirmation prompts):

By reading the documentation, you should be able to gauge which other options (such as tracing on a secondary image) could help further.

Hi Tiago, thanks for your suggestions.

It has been fixed in other way.