How to calculate the cross-sectional area of each neuron slice?

24 views
Skip to first unread message

Chris Liu

unread,
Jul 10, 2022, 7:58:30 AM7/10/22
to neuPrint
Hi all,
    I need the cross-sectional area or the surface area of each neuron slice.   Can the radius of the skeleton be calculated directly?

 Thanks
Chris

Berg, Stuart

unread,
Jul 11, 2022, 5:34:30 PM7/11/22
to Chris Liu, neuPrint
Hi Chris,

    I need the cross-sectional area or the surface area of each neuron slice.   Can the radius of the skeleton be calculated directly?

Each skeleton node has a radius.  Will that suffice for your needs?  May may also be interested in a little helper function to compute the length and average radius along a skeleton segment (from child node to parent node):


Best,
Stuart


Chris Liu

unread,
Jul 11, 2022, 11:34:48 PM7/11/22
to neuPrint
Hi Stuart,
    Thanks for your help. Maybe it won't solve my problem. For example, by looking at the EM photo below, different colors represent different neurons in one slice, now I want to know the surface area of one yellow neuron(only the one not two in the photo). I think if the radius information of skeleton point is used to calculate directly, it will be inaccurate.  Is there any information about the neuron cross-sectional area of this marked area in the data?


Best,
Chris
EM-photo.png

Berg, Stuart

unread,
Jul 12, 2022, 9:28:20 AM7/12/22
to Chris Liu, neuPrint
Hi Chris,

Is there any information about the neuron cross-sectional area of this marked area in the data?

It sounds like you're after something that can only be computed directly from the original voxels of the segmentation volume.  That will be a non-trivial task.

If you're up for it, I recommend downloading portions of the data (preferably at low resolution if that's acceptable) from the version of the segmentation available in the following location in "neuroglancer precomputed" format:


To do so you, you'll have to use the TensorStore Python library.  The tutorial for that package demonstrates how to use it to fetch data from the hemibrain segmentation:

(To fetch data at a lower resolution, you may wish to add "scale_index" to the JSON configuration.  Otherwise, the default is scale 0 (full resolution -- each "scale" is successively downsampled by a factor of 2x in every dimension).  Something like this:

dataset_future = ts.open({
    'driver':
        'neuroglancer_precomputed',
    'kvstore':
        'gs://neuroglancer-janelia-flyem-hemibrain/v1.1/segmentation/',
    # Use 100MB in-memory cache.
    'scale_index': 2,
    'context': {
        'cache_pool': {
            'total_bytes_limit': 100_000_000
        }
    },
    'recheck_cached_data':
        'open',
})


To determine which blocks of data to fetch, you can refer to the skeleton for each neuron you're interested in.

Hope that helps,
Stuart

Chris Liu

unread,
Jul 12, 2022, 9:07:56 PM7/12/22
to neuPrint
Hi Stuart,
    I think it will be very helpful, and I will have a try. 
    Thank you again for your generous help!

Best,
Chris
Reply all
Reply to author
Forward
0 new messages