help > Workflow to prepare Vaa3d tracings for morphometrics using NeuroM
Showing 1-4 of 4 posts
Display:
Results per page:
Apr 10, 2020  02:04 PM | tyl95
Workflow to prepare Vaa3d tracings for morphometrics using NeuroM
Hi,

I would like to use Vaa3d for automated tracing of neurons to generate .swc files, and then analyse them quantitatively in NeuroM (as per recommendations in https://link.springer.com/article/10.100...). I would like to ask: after obtaining a good .swc from one of the neuron_tracing plugins (most likely will be using APP2), what are the steps required to prepare the .swc for NeuroM, and which are the plugins most suitable for those steps? 

For example, in my (very shallow) understanding, I guess that I need to:

1) Clean away detected segments that do not belong to the main neuron (eg if some background/noise near the neuron is detected)
-  I know I can manually remove these by using 'delete multiple neuron-segments by a stroke', but is it possible to select multiple segments (eg by drawing a selection box) and delete all of them at one go, as the segments detected from the background tend to be quite numerous? 
- Is there a plug-in that does this automatically? I tried the 'join all neuron segments (and remove all duplicated nodes)' function but this didn't seem to do anything obvious. I also tried NeuronToolbox/pruning_swc_simple but get 'no branch has been pruned' every time, even if I set the segment length to say 10000

2) Add/ extend segments that were not automatically detected
- I am doing this by: additionally trace a dendrite manually using the '1 right-stroke to define 3D curve' functions, save this together with the auto tracing (as an .eswc), and then convert this to .swc
- How do I ensure that the manually traced segments have the correct parent? 
- Will I have to run sort_neuron_swc whenever I add segments to the automatic tracing?

3) Will I need to annotate the segments as soma/ dendrite ('node type') for NeuroM to work on the .swc properly, and how can I do this?
- Is this what NeuronToolbox/subtree_labelling and /hierarchical_labelling are for?

4) If I do the tracing manually/ the traced segments belong to the same neuron but are not connected to each other, do I need to first connect them back up, or is it correct that NeuroM can handle this?
- I tried the NeuronToolbox/neuron_connector, but this did not seem to connect any floating branches (even under configuration to connect all, shortest distance) - is this not the right plugin for this?

More generally, is there a page with more description about what each of the plugins in NeuronToolbox are meant to be used for and how to use them? The toolbox looks like it would be super useful, but the description in the 'about' within vaa3d is very brief, so it is hard to know which plugin to use. I think it would be really helpful if there was a sort of flowchart describing when to use each plugin! 

Thank you very much for the great software, and support on the forum!
May 5, 2020  04:05 PM | Shane Simo - Mcmaster
RE: Workflow to prepare Vaa3d tracings for morphometrics using NeuroM
A few great questions and points to this post that I'd also like the answer to. I am trying to trace neurons in relatively low signal to noise.
May 5, 2020  05:05 PM | Hanchuan Peng
RE: Workflow to prepare Vaa3d tracings for morphometrics using NeuroM
I do not use NeuroM, thus can only answer the parts related to Vaa3D. See below please.


Originally posted by tyl95:
Hi,

I would like to use Vaa3d for automated tracing of neurons to generate .swc files, and then analyse them quantitatively in NeuroM (as per recommendations in https://link.springer.com/article/10.100...). I would like to ask: after obtaining a good .swc from one of the neuron_tracing plugins (most likely will be using APP2), what are the steps required to prepare the .swc for NeuroM, and which are the plugins most suitable for those steps? 

For example, in my (very shallow) understanding, I guess that I need to:

1) Clean away detected segments that do not belong to the main neuron (eg if some background/noise near the neuron is detected)
-  I know I can manually remove these by using 'delete multiple neuron-segments by a stroke', but is it possible to select multiple segments (eg by drawing a selection box) and delete all of them at one go, as the segments detected from the background tend to be quite numerous? 
- Is there a plug-in that does this automatically? I tried the 'join all neuron segments (and remove all duplicated nodes)' function but this didn't seem to do anything obvious. I also tried NeuronToolbox/pruning_swc_simple but get 'no branch has been pruned' every time, even if I set the segment length to say 10000
-------------- yes you can delete a large portion of displayed neuron structure in the 3D viewer. Right click on the neuron shown and select from the pop-up menu a tool to circle a neuron and delete a large piece all at once.

2) Add/ extend segments that were not automatically detected
- I am doing this by: additionally trace a dendrite manually using the '1 right-stroke to define 3D curve' functions, save this together with the auto tracing (as an .eswc), and then convert this to .swc
- How do I ensure that the manually traced segments have the correct parent? 
- Will I have to run sort_neuron_swc whenever I add segments to the automatic tracing?
---------------If you find somewhere not traced yet, you can either manually draw the curves using the virtual finger functions  (for curve drawing) or you can define some markers and select one of them as the starting point to trace. Remember to save the result!

3) Will I need to annotate the segments as soma/ dendrite ('node type') for NeuroM to work on the .swc properly, and how can I do this?
- Is this what NeuronToolbox/subtree_labelling and /hierarchical_labelling are for?

---------------- These are add-ons, the best way for your purpose is to write a plugin yourself. The swc file format allows the 2nd column to be edited to reflect any 'type' you want to assign to it.

4) If I do the tracing manually/ the traced segments belong to the same neuron but are not connected to each other, do I need to first connect them back up, or is it correct that NeuroM can handle this?
- I tried the NeuronToolbox/neuron_connector, but this did not seem to connect any floating branches (even under configuration to connect all, shortest distance) - is this not the right plugin for this?

--------------- when you 'sort' the neuron structures, the sorting function will connect neuron fragments.

More generally, is there a page with more description about what each of the plugins in NeuronToolbox are meant to be used for and how to use them? The toolbox looks like it would be super useful, but the description in the 'about' within vaa3d is very brief, so it is hard to know which plugin to use. I think it would be really helpful if there was a sort of flowchart describing when to use each plugin! 

------------- Go to the wiki page. Sorry as an Open Src project the src code is all there but that is pretty much what we have given a limited bandwidth. BTW we intentionally design the plugins in an independent way, so they can be combined in any order. You have the flexibility to call many of them in different ways/orders for various purposes.


Thank you very much for the great software, and support on the forum!
May 6, 2020  08:05 AM | tyl95
RE: Workflow to prepare Vaa3d tracings for morphometrics using NeuroM
Thanks for the reply!

There is just one thing I would like to clarify: which is the tool to circle parts of the tracing for deletion? Attached is what I see in the pop-up menu when I right click the tracing; I tried the various options but couldn't find the one that does this. 

I also stumbled upon your 2020 synapses Neuron resource paper, which was very useful in describing the functions of use to me - thank you very much for putting this on your website in advance!
(This is the link, in case this is useful for others as well: http://home.penglab.com/papersall/docpdf...)
Attachment: pop-up menu.PNG