Bruker-MicroCT method note: Analysis of the lung from an in vivo scan

How to analyze the lung from an invivo scan.
Method note
Page 1 of 19
2
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Goal
Quantify the volume of mouse lung during inhalation and exhalation.
Part 1: scanning settings
Typical for mouse the settings are: 50kV, max
power (10W in the 1076, 25W in the 1176),
0.5mm filter, exposure time adjusted so that the
average intensity without flatfield correction is
around 60% (depends on the age of the source,
but this is around 120ms in the 1076, and
around 60ms in the 1176). Rotation step 0.7°,
180° rotation.
For live animals, often the animal is placed on
its back, allowing monitoring of the chest
movement through the physiological monitoring.
Two synchronization options are possible: prospective and retro-spective synchronization.
Anesthesia (gas anesthesia or i.p. injection)
should aim at lowering the breathing frequency
to approximately 0.7 breaths/sec. This can be
monitored by drawing a small rectangle over the
moving chest in the live camera window. In this
example we will consider a live scan using the
retro-spective synchronization method; also
known as a ‘list-mode’ scan. Select the ‘listmode’ option and set the ‘frames’ to 8. Note that
the ‘averaging’ is no longer available; this is of
course normal, as the computer will save each
individual projection image. For more detailed
information on how the ‘list mode’ works, please
refer to the method note.
Page 2 of 19
3
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Part 2: reconstruction settings
When loading a list-mode dataset into NRecon, you will be asked to sort it first.
This sorting is done using the program TSort which will be launched automatically.
Select the number of bins in which you want to divide the breathing cycle. For lungsynchronized datasets a good starting point is 4 bins.
Increasing the number of bins (e.g. to 6) will decrease the chance of an image
belonging to that bin. This can be noted in the last column ‘mean frames per view’.
Averaging of 2 images per bin will increase the signal to noise ratio, so in this case 4
bins will result in a better image quality compared to 6 bins.
Page 3 of 19
4
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
When increasing the bin size the number of ‘empty views’ also increases: these are
the number of projection angles for which no projection image is available.
To sort the projection images, click on ‘sort’. A new copy of the dataset will be
generated, allowing the user to go back and re-evaluate the number of bins.
Nomenclature on list-mode files before and after sorting:
Before sorting the projection images have the following nomenclature:
prefix_~xxxx~xxxx
indicates the number of projections (depends on the
rotation step)
indicates the number of frames (from 0000 to 0007 when 8
frames have been selected)
After sorting the projection images have the following nomenclature:
prefix_~#xxxx~xxxx
indicates the number of projections (depends on the
rotation step)
last 2 digits indicate the total number of bins (xx04
when 4 bins have been selected)
first 2 digits indicate the bin number (from 0004 to 0304
when 4 bins have been selected)
‘#’ symbol indicates that the dataset has been sorted
and can be reconstructed using NRecon
Now you can upload any of the sorted datasets (in other words: any of the 4 bins) in
NRecon and fine tune the settings: post-alignment, smoothing, ring-artifact
correction, beam hardening, thresholding values (for ease of Hounsfield Unit
calibration, keep the lower value at 0) and ROI.
Once these settings have been made, you can add the dataset to the batch for
reconstruction. NRecon will automatically find the other bins and can add them (using
the same reconstruction settings) to the batch.
Page 4 of 19
5
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
The reconstructed data will have the following nomenclature:
prefix_~#xxxx~_recxxxx
indicates the cross section number
last 2 digits indicate the total number of bins (xx04 when 4
bins have been selected)
first 2 digits indicate the bin number (from 0004 to 0304
when 4 bins have been selected)
‘#’ symbol indicates that the dataset has been sorted
Page 5 of 19
6
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Part 3: viewing the data using DataViewer
Using DataViewer, open any of the 4 reconstructed bins. Press the ‘load for
3D viewing’ button
to generate cross-sectional, sagittal and coronal views. A message asking ‘load all
available bins for 3D viewing?’ is displayed. Select ‘yes’.
Note on the left that you now have 4 sliding bars: T, X, Y and Z. Scrolling through the
‘T’ will allow you to view the different bins.
Page 6 of 19
7
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Page 7 of 19
8
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
In ‘Options/Preference at viewing’, select the
‘Time’ in the Animation and set the ‘frames
per second’ to 4.
Now press the ‘play’
button to
animate
through
the
different
bins. This allows you to define the bin that
corresponds to maximum inhalation and to
maximum exhalation.
Due to the breathing pattern of the anesthetized mouse, the bin at exhalation will
show less movement artifacts (especially near the diaphragm) compared to the bin at
inhalation.
Bin 1: maximum inhalation
Bin 3: maximum exhalation
In which bin max inhalation and max exhalation is found depends on how the chest
movement in the physiological monitoring was performed; but in most cases the max
inhalation is bin 0 or bin 1; while max exhalation is bin 2 or bin 3.
Page 8 of 19
9
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Part 4: analyzing the data using CTAn
The goal of this analysis is to calculate the volume of the lungs during the different
phases (bins) of the breathing cycle. When we would threshold the air in the lung we
find that the biggest volume is actually the air outside the animal, so we cannot
perform the analysis at this stage. In the example described below we will NOT draw
an ROI, but use plug-ins in the custom processing page to separate the lung from the
outside air.
Open the bin corresponding with maximum inhalation in CTAn.
The first step is to go to the binary page (you can skip the ROI page as we will let the
computer define the ROI in the custom processing page). To get a good overview of
the histogram profile of the entire dataset, select the ‘from dataset’ tap in the binary
page. On the right side of the histogram you can change the scale of the Y-axis.
Our first goal will be to generate a ROI of the body.
Set the threshold is such a way that you segment out the body (from 40 to 255). This
will leave the air in the lung unselected.
Page 9 of 19
10
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
The second step is to go to the custom processing page. A copy of the dataset will
be loaded. Three very important buttons are on the right side of the plug-ins bar:
: image view
: image inside ROI view
: ROI view
As you have just loaded a copy of the dataset into the custom processing page the
initial settings are:
: image view
:image inside ROI view
: ROI view
Run the thresholding plug-in (global) using the default values (40-255). Note that
when you select the ‘default’ CTAn will upload the values that you have selected in
the binary page.
Page 10 of 19
11
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
: image view
:image inside ROI view
: ROI view
Now we will remove the pores inside the body to generate a solid body.
Run the despeckle plug-in: remove pores in 2D (in 3D the lung is still connected to
the outside so it is not considered as a pore), detected by image borders and apply to
the image:
: image view
:image inside ROI view
: ROI view
At certain cross sections some noise speckles will still be present. Also, the bed
should be removed from the image as we do not want it to be part of the ROI later
on. Both the noise and the bed can be removed in one step using a despeckle plugin: Sweep in 2D or 3D, removing ‘all except the largest object’ and apply it to the
image.
Page 11 of 19
12
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
On each cross section the mouse body is the largest object, so in this case applying
it in 2D or 3D will have the same outcome. However, a 2D calculation is always faster
compared to a 3D.
Make sure to test on all cross sections that the bed is not in contact with the animal,
otherwise it will not be removed.
: image view
: image inside ROI view
Now we will copy this image to the ROI using the Bitwise operation:
Page 12 of 19
: ROI view
13
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
This operation has no effect on the image, but will change the ROI:
: image view
:image inside ROI view
: ROI view
Now reload the image:
This operation resets the image to the original raw image dataset, but the image
inside the ROI view is limited to the part belonging to the ROI:
: image view
:
image
inside
ROI
: ROI view
view
Because the bed is no longer part of the ROI, the image inside the ROI view also
does not contain the bed.
Page 13 of 19
14
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
We will now go back to the binary page and select the threshold levels that we want
to apply for segmenting out the lung: select threshold values from 0-45.
Return to the custom processing page and apply the thresholding plug-in: global
threshold. By selecting the default levels, CTAn will load the values that you have set
in the binary page.
Page 14 of 19
15
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
: image view
:image inside ROI view
: ROI view
Because the ROI is limited to the body of the animal, all the outside air is no longer
part of the image inside the ROI view.
The next step is to generate an image that is the same as the image inside the ROI
view: therefore we apply the bitwise operation:
This bitwise operation results in an image that only contains white pixels that belong
both to the image AND to the ROI.
: image view
:image inside ROI view
Page 15 of 19
: ROI view
16
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
The next step in cleaning up the image is removing the fat and the outside boundary.
Fat has a lower density compared to tissue because of the long C-chains and the low
H20 content. It’s density partially overlaps with that of the lungs.
To end up with an image only containing the lungs, we will apply the same despeckle
function: Sweep in 3D, removing ‘all except the largest object’ applying it to the
image. Important here is that it is applied in 3D! In 2D, you will find that when on a
single cross-section both the right and left lung are not connected, the 2D Sweep will
remove the smallest lung. For this procedure to result in the correct outcome, we also
assume that the total volume of the lung is larger than that of the fat.
: image view
:image inside ROI view
: ROI view
The last step in cleaning up the image can be removing some black pixels inside the
lung. Because these black pixels can be part of the blood vessels, it is recommended
to despeckle in 3D, removing a certain amount of voxels (e.g. 7, 15 or 33).
Page 16 of 19
17
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
: image view
:image inside ROI view
: ROI view
Now we can continue with the 3D analysis and calculate the exact amount of air in
the lung. For this, we will run the plug-in ‘3D analysis’ where we will limit the analysis
to the ‘basic values’. The txt file will be saved in the same folder where the crosssections are.
Page 17 of 19
18
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
The results show that the object volume (= volume of the air in the lung) = 373mm³.
The protocol of the different steps (thresholding, despeckle, bitwise operation, ….)
can be saved in a task list. Therefore each plug-in needs to be added to the task list
by clicking the ‘+’ button.
You can now apply the task list to several datasets (our 4 bins) using the batchmanager. In the batch-manager you need to add the datasets you want to analyze.
Page 18 of 19
19
Bruker-MicroCT method note: Analysis of the lung from an in vivo scan
Plotting the results in excel shows the breathing pattern of the animal.
Volume air in the lung
(mm³)
Bin 0
322
Bin 1
373
Bin 2
309
Bin 3
304
From this the tidal volume and the functional residual capacity can be calculated.
One should take care when interpreting these values: because the density measured
in the lung is the combined density of air and of the parenchyma, these values are
not absolute. Another important consideration is the applied anesthesia: this will have
a big impact on the breathing pattern.
Nevertheless, these results are very useful when you want to perform longitudinal
comparisons, and when comparing different groups of animals receiving different
treatments.
Optional, 3D models of the different bins can be generated by adding the ‘3D model’
to the task list:
Opening these models in CTVol (e.g. bin 1, inhalation and bin 3, exhalation), and
making bin 1 transparent allows 3D visualization of the inhale and exhale part of the
breathing cycle.
Page 19 of 19