Monthly Archives: December 2018

Using landmarks to manually superimpose volumes

While microCT can provide excellent detail from mineralized tissue, usually some sort of a diffusable  radio-contrast is necessary to obtain detail from soft-tissue. Here, I will use landmarks to approximately superimpose three scans of a mouse kidney after it has been stained with phosphotungstic acid (PTA) for 48, 72 and 96h in 3D Slicer using Fiducial Registration. We need the superimposition to evaluate when the whole kidney is fully stained. All data for this tutorial as available at Datasets are courtesy of Dr. David Beier (Seattle Children’s). In addition to the Fiducial Registration, you will also become familiar with Volume Rendering, Markups, Volumes and Transforms modules of the Slicer. You should be generally familiar with the Slicer UI and how to navigate modules. If not, you can review my introductory 3D Slicer tutorial Getting and Visualizing data from DigiMorph

Drag and drop all three scans into Slicer. From the Volumes module, set the lookup Table (under Display Properties) such that 96h volume is set red, 72h volume is set green and 48h is set to yellow. Also, adjust the slice viewers to display 96h, 72h, and 48h in red, green and yellow viewers respectively (Figure 1). Quickly review datasets by looking at the cross-sections to see that while they are from the same specimen, scan orientations and diffusion of contrast is variable. Such datasets are very challenging to align automatically using image registration tools, because image contents are very different. Instead, we will find 6 features that are common in all scans, and use them to align them manual into a common orientation so that we can more readily compare stain differences.

Figure 1.

Now switch to Volume Rendering, and enable the rendering for 72h volume by clicking the eye button next to it. You need to adjust the Scalar Opacity Mapping to a ramp that will get rid of the noise surrounding the kidney (having a ramp from 55 to 70 seems to do the trick). Review the 3D rendering, and note that there are many bumps and holes on the surface that can be used as a references. The concern is whether they are visible in the other scans as well. But first determine your 5-6 references and annotate them in 72h volume.

Figure 2.

To do that, switch to Markups (blue circle in Figure 1) volume, and create a next Markups Node called F_72h (Figure 3). Then using the fiducial tool (red circle in Figure 1), record your reference points (you can find my landmarks in the same folder as the volumes). You can adjust the size of the spherical glyph using the Scale slider bar in the Markups module. If you are choosing your own landmarks, make sure the points are scattered around the sample uniformly.

Figure 3

Once you finish annotating 72h volume, you need to switch two Triple 3D view so that you can visualize the other two scans. This is a bit tricky, you need to enable rendering for all three volumes (don’t forget to adjust the ramps as well) in the Volume Rendering module. The for each of the volumes, expand the Inputs tab, and adjust them such that 72h is in view1, 96h is in view2, and 48h is in view3 (See the highlighted sections in Figure 2). Spin each volume independently and align them roughly in the similar orientation to the 72h one in 3D rendering window.

At this point, fiducials from 72h volume is visible in all three render windows. That’s very confusing. So we need to adjust Display property of F_72h such that it is only visible in view1, where the 72h volume is rendered (Figure 3).

Now you are ready to annotate the remaining volumes. But first create a new Markup node as F_96h to store the coordinates of those six fiducials on the 96h volume. Make sure to adjust their Display property as well (so that they are only visible in view2). Using 72h as your visual guide, annotate the same set of 6 landmarks. Order is important. Make sure you follow the same sequences as your reference set.  Create a new fiducial node for 48h as F_48h, and repeat the procedure. In the end you should have three sets of fiducials (F_48h, F_72h, F_96h) that goes with their respective volumes (48h, 72h, 96h), and the sequence of landmarks in each list is identical.

Now we are ready to align them. For that, we will use the Fiducial Registration module (Figure 4). I chose 72h to be my fixed landmarks, F_96h to be the moving one. I created a new linear transformation that was called 96h_to_72h that I will use to align my volume (keep in mind this procedure is only aligning points, it is the result of this transformation we will use to align the volumes). I do not expect my specimen to change in size, so I use the rigid transform type, which has six degrees of freedom (three axis of translation + three axis of rotation). Similarity transform will have one more degree of freedom, which is uniform size (all axes scaled the same way). Repeat the same procedure for 48h landmarks as well.

Figure 4

To superimpose 48h and 96h volumes onto 72h, we need to apply these transforms to their volumes. Go to the Transforms module, select active transform (e.g., 96h_to_72h), and scroll down to find the 96h volume under the Transformable tab and move it under the Transformed. Now switch to 48h_to_72h transform and repeat the same step for 48h volume (Figure 5).

Now both volumes should be in the same orientation as 72h. You can switch to 4up view and set each volume as a background/foreground pair, and set the alpha channel (opacity) at 0.5 to see them superimposed. Your final view should look something like this:

Figure 5