Segmenting individual muscle fibers

Hey folks,

I am vertebrate morphologist using Slicer to segment bones and muscles (from contrast-stained specimens). I am comfortable with segmenting bone and muscle (i.e., the whole muscle body), but the next step of my research requires segmenting out individual muscle fibers. I envision being able to manually draw a straight line in one plane, and then adjust the angle of that line in another plane. Then these lines would have a 3D vector of some sort where I can measure their lengths and angles (see first image). I am aware that I can literally segment the individual muscle fibers separately, but this would be too difficult with the scan quality I have.

Any help would be greatly appreciated!!


Operating system:Windows
Slicer version:4.10.2

This sounds like an interesting project. Would you like to analyse those separating lines on their own (their distances, angles, etc.) or create volumetric segmentation of individual bundles (subdivide the muscle segments to smaller segments)?

Thanks for such a quick reply!

I think the latter option is what I would like to do (volumetric segmentation). Attached is an example from a scientific publication by Dickinson et al. (2019).


After some thought, I think the best way to describe what I’d like to do is I’d like to have volumetric models of the individual muscle fibers (as shown in the photo above under “fascicular econstruction”) while also being able to analyze the lengths and angles of those individual fibers.

It’s not completely necessary for me to measure the lengths and angles of those individual fibers with Slicer. But it would be great if I could “segment” each individual muscle fibers as a straight line and export those fibers as a vector field which I could analyze elsewhere–unless there’s already a way to do that in Slicer!

Hope that clarification helps.

You can segment volume or you can manually segment maybe a few hundred lines, but those lines in the “fascicular reconstruction” image seem to be thousands of lines - probably streamlines generated from a vector or tensor field.

I see two options:

A. Manual tracing: Use curve tool in recent recent Slicer preview release to track fibers manually. This may be a lot of work if you want to segment many segments (and not feasible but to segment thousands of them) but very robust and does not require any custom algorithm development.

B. Automatic tracing: You could apply some processing to convert the texture of the CT images to tensor images and use Slicer’s diffusion tractography modules to generate fiber tracts. Such processing may not be easy (you probably need to get funding to get this developed if there are no readily available solutions) and the algorithm may be sensitive to image quality, but this would be very nice way to leverage tools that are originally developed for MRI diffusion tractography in a completely new domain.