Normalization

Dear Castor Developers and Users,

I have successfully reconstructed the GATE images for a Biograph Vision. The images look great and artifact-free. The interesting thing is that even though I did not apply any normalization correction, the images do not show any rings artifacts! Could someone please clarify some details about how the sensitivity image is produced and how the algorithm compensates for the expected ring artifacts?

Thanks,

Sadek

Dear Sadek,

The PET sensitivity image is computed using one of the three following method :

  • if a histogram datafile is provided, then the sensitivity is computed by backward-projecting the product of attenuation and normalization corrections of each LOR of the datafile, one-the-fly for each subset

  • if a listmode datafile is provided, without normalization datafile, a double loop is performed over all crystals of the scanner so that for each possible crystal pair, the corresponding line joining the two crystals is used to forward-project the attenuation image (if provided) and backward-project the corresponding attenuation coefficient factor in the sensitivity image. In that case, no scanner normalization is taken into account so that it is implicitly assumed that all crystal pairs have the same efficiency

  • if a listmode datafile is provided, a normalization datafile can be provided so that the sensitivity image will be computed from it. This normalization datafile contains all LORs that may detect events, with associated attenuation and normalization coefficients. A loop is done over all these LORs and the coefficients are backward projected.

Could you send an image that you reconstructed ?

If you did not proceed to the simulation of a normalization scan (using a rotating source or a “donnut” source) in order to compute normalization coefficients and build a normalization datafile, then it is very likely that you have artifacts in your image.

Did you try to sum up all slices of the reconstructed image ? Do you have sufficient statistics in your dataset ?

Best

Simon

Many thanks Simon for your detailed response. Please see below an example transaxial slice and the summed coronal image for a 2.5 min of simulation. The images are artifact-free event though no normalization correction was applied. I had to go with 30min of data to see the ring artifacts, even though very mild especially when compared to I am used to from STIR.

Regards,

Sadek

Indeed the image is good !

And if you sum all slices of the left image, do you see rings with the 2.5mn scan ?

Did you include an energy threshold in GATE ? If yes, then did you include a readout module, and a which level ? In simulations, the main effect creating rings is usually due to events scattering at boundaries of block detectors leading to a loss of efficiency in crystals at these boundaries.

As for the difference with STIR, I cannot tell that much. At least I can tell that in CASToR, the exact crystal positions are used for the reconstruction.

What projector did you use ? Also did you include an image-based PSF ? Because it can lessen the artifacts to some extent.

Simon

image002.png

Yes it is.

Summing the images did not show any artifacts. As I mentioned in my previous message, I can see mild ring artifacts with 30min of data.

I used an energy threshold of 435 to 650 keV. My signal was integrated on the detector block level. I also have, transaxially, one crystal size gap between the rsectors (each rsector included 4x2 blocks), which unless a normalization correction is applied should create ring artifacs, but those were not obvious here.

For castor, I used the Joseph projector, and the images were reconstructed without filtering or PSF; I sent those off hoping to be able to see the rings.

One major difference from STIR though is that it (I mean STIR) assumes a cylindrical detector geometry, while castor (please correct me if I am wrong) uses the correct block geometry. This can have major effect on accounting for the image artifacts. This is nicely described in Khateri et al. https://ejnmmiphys.springeropen.com/articles/10.1186/s40658-019-0248-9

Anyway, all what I can say is that castor is doing pretty good job!

Regards,

Sadek

image002.png

Oh yes indeed, figure 5 of the reference provides a very clear demonstration of the effect !

Thanks for the interesting discussion.

Best,

Simon

image002.png

And to answer your last question, yes, CASToR is intrinsically using the exact block geometry described in the GATE macro, same for real scanners.

Simon

image002.png

Dear Sadek,

I knew STIR and CASToR from GATE. I choose STIR at first, but found it is hard for me to use. I can only run example in STIR, and cannot run my root data or list-mode data from different scanner. But CASToR user guide is perfect and easy to understand! Now, I can use CASToR to recon my data, and wanner compare with those recon tool. Is there any more user guide to easy understand?

Thanks,
Hannah

Hi, is there any method details about scatter correction in CASToR?
Any help will be appreciated.

1 Like