Does Slicer support this kind of PET-CT registration?

Operating system: Windows 10
Slicer version: 4.8.0
Expected behavior: PET-CT registration
Actual behavior: Not sure

Hi all, I have a this kind of data. For each case/patient, there are the following images:

1. CT 
2. PET

3. CT for segmentation
4. DICOM-RT segmentation based on 3

The DICOM-RT 4 has the same voxel spacing as that of 3. And it seems 1,2,3 have different voxel spacing (thus they have different number of slices). 1 and 2 have different spatial size, 1 is 512x512 and 2 is 128x128.
1 and 3 have different number of slices.

Does Slicer support this kind of registration? After registration, it is expected all the images have the same spacing. Thanks a lot! Any comments are greatly appreciated!

Generally speaking, yes. CT-CT should work very well; PET-CT can be a bit harder because PET is typically low resolution and has poorly defined skull. Please see the Registration Case Library, especially 8, 14, and 20.

I think most of the examples in the case library use other tools, but Elastix is now available as an extension and may be a good option to try first:

1 Like

Also, note that PET/CT scanners are often combined. So your 1-2 may be from the same scanner, in which case the images may already be implicitly aligned. Then you would only need to register 1 to 3.

1 Like

Hi @ihnorton , greatly appreciated for your kind answer and suggestions!
Thanks a lot! I’ll try that.

I don’t know why the doctors contour on 3, not 1. Then we don’t need the registration. And for each CT, the patient will be injected the tracer once, which would harm the patient again.

Hi @ihnorton, I have another problem.

I have registered 1 to 3 and generated a transform. Then I used the transform to register 2 to 3. But the spatial size of 1 and 2 are not the same, e.g., 512x512 versus 128x128. I’m not sure how to do next. Could you please help give some hints? Thanks a lot!

The SlicerElastix will generate a transform. I think we cannot use this transform directly, right? We should first resample 2 to the same spatial size as 1, right?

If you put the Moving volume under the transform (“Transforms” module), then the images will be comparable within Slicer; for example in the 2d and 3d views. I’m not sure if SlicerElastix will automatically put the volume under the new transform.

Otherwise, I believe if you select “Create New Volume” for the “Output Volume” field then Elastix will resample into the space of the Fixed image. See comments in the README here:

(I haven’t used the module very much yet – probably @lassoan will comment with any corrections/suggestions when he sees this, within a few days)

1 Like

Yeah, got it! Thanks a lot!

Hi @ihnorton, I think I do the right thing.

I first resample the PET(128x128) to CT(512x512), the using the obtained transform (from SlicerElastix) to get the registered PET. Then it seems the PET and CT are both co-registered with the segmentation.

Thanks a lot for your kind advice!


How to resample the PET volume?

You can use “Resample scalar/vector/dwi volume” module.

Could you give more details or tutorial about PET-CT co-registration?

When you have 3 data sets, e.g ct, pet and MRI for registration, do you do this before you do any volume rendering or segmentation, how does it work, what order registration if sets 1st or segmentations/ rendering?