Measuring diameter of mouse lung airway

Hi all,

I have created this segmentation of part of the airways of a mouse lung. The images were generated from lightsheet microscopy and I used various tools to segment them - thresholding, painting, etc. I eventually ended up with this (which is just a small portion of the whole lung I segmented), which shows one airway leading to a TB lesion. I am hoping to measure the diameter of multiple airways from this lung to see how they change in diameter as the airway moves from the main branch near the trachea to the periphery (or in this case as it moves from the main branches and terminates in the lesion). Does anyone have any suggestions for how to measure the diameter of an object like this? Thank you very much in advance!

ExtractCenterline and CrossSectionAnalysis modules of the SlicerVMTK extension should be helpful. You can install it in the Extensions manager.

Hi,

Thank you very much for your suggestion. I installed the VMTK extension and have started to try to make my centerline. For reference, here is the picture of my full lung segmentation. I don’t need to get a diameter for every single airway so I took a crop of the segmentation to run through the VMTK module to hopefully make it go a little faster. I wasn’t sure how to set my endpoints since it’s not like a vessel where I would want to dictate the direction of flow (at least after reading the github page I think that is what the endpoints are for?)

In my cropped sample I just put one markup point at one edge of the airway and another point at the branching junction, I did surface = my segmentation, and then network model = create new model. Is this correct to get it started?

Very good step. The more so that some distal parts do not seem completely tubular.

The centerline in Network mode is calculated from the geometry of the input surface. It will always succeed and is always fast. It does not need endpoints and will be bifurcated if the input is bifurcated.

We usually use Tree mode. It is calculated from the largest sphere that could be determined inside the surface at any point (maximum inscribed sphere in VMTK’s terminology). It can be better controlled with the endpoints.

The centerline is calculated in the order in which the endpoints were placed indeed. But you can force one point to be the starting point by unselecting it: right click, or go to the Markups module for that.

That is very helpful, thank you very much! I did both the network and tree centerline extraction, with my tree model shown in green and my network model shown in blue here. I am thinking that the network model may prove to be more beneficial for my specific case since I would like to measure how the diameter widens/narrows as the airways move from the bronchus to the more distal parts of the periphery. I am thinking that the network model would allow me to see the diameter at different points throughout the airway, while the tree model only gives you the diameter at the widest point - is that correct?

I did get a diameter for the tree model in the CrossSectionAnalysis module, but I am not seeing any diameters for my network model. Thank you again very much for all of your help with this!

No, the tree centerlines have radius information at each point. You can see the radius array in the Models module: Display/Advanced/Scalars/Active scalar.

I vaguely remember a lack of a radius array for network centerlines long ago, though I am not sure of this. But as a fact now, an extracted network centerline model does contain a Radius array.

In Tree extraction mode, you must define as many endpoints as needed; a bifurcated centerline will be generated that has many components. You may afterwards extract each component with the Centerline disassembly module. You can then examine the diameter distribution from the first endpoint to each other in separated centerlines that you may choose to create from the bifurcated centerline.

CrossSectionAnalysis does that.