This page contains a list of features and modules implemented in the current CASToR version.
CASToR v3.2
Main features:
- Iterative optimization-based reconstruction algorithms.
- PET (including Time of Flight), SPECT (parallel-hole and convergent-beam collimators) and CT geometries.
- Reconstruction of multi-frame and respiratory/cardiac gated acquisitions.
- Image-based motion management for gated acquisition and timestamp-based motion.
- Projector plug-in class system, including several methods (see below)
- Optimization algorithm plug-in class system, including several methods (see below) and a mechanism for optimization algorithms making use of sub iterations (e.g ADMM).
- Dynamic model class, dedicated to kinetic modelling / parametric image reconstruction (see below).
Including an utility tool to apply the implemented dynamic model on a set of dynamic image (post-reconstruction kinetic analysis). - An image-based deformation class, dedicated to image-based transformation for motion correction (see below).
- Plug-in class systems for image convolution and spatial regularization, and general image processing.
- A fully-bayesian reconstruction algorithm (RCP-GS)
- Two-level parallel CPU implementation using MPI (multi-computers) and openMP (multi-threads) libraries.
- Interfile I/O format for images.
- Utility tool to convert GATE Monte Carlo simulated data in ROOT format into the CASToR datafile format.
SIMIND SPECT simulation platform also includes its own conversion program for CASToR. - Easy and straightforward compilation procedure, as well as already compiled binaries for Unix and Windows 64-bits systems and Windows 32-bits systems.
- Utility tools for the exploration of datafile and geometry files.
- Toolkit for the computation of direct normalization factors using a normalization phantom.
- Event by event TOF resolution kernel for list-mode PET.
- User customizable fields in the Datafile
This version contains the following implemented modules.
More implementation details can be displayed when using the command-line options -help-projm, , -help-pnlt and -help-conv with castor-recon for projectors, optimizers, penalties and image-based convolvers respectively.
Projectors
- Original Siddon
Line projector that computes the exact path length of a line through the voxels (Med Phys. 1985 Mar-Apr;12(2):252-5). - Accelerated Siddon
Incremental version of the original algorithm (Journal of Computing and Information Technology 6(1) · December 1998) - Joseph (not compatible with SPECT attenuation)
Line projector that uses linear interpolation between pixels. (IEEE Trans Med Imaging. 1982;1(3):192-6). - Distance-driven (not compatible with SPECT attenuation):
Line projector based on computations of overlap between a pair of detection elements and voxels. (Phys. Med. Biol., vol. 49, pp. 2463-75, 2004).
More implementation details can be displayed when using the command-line options -help-projm with castor-recon.
Optimizers (reconstruction algorithms)
- MLEM (Maximum Likelihood Expectation Maximization).
IEEE Trans. Med. Imaging, vol. MI-1, pp. 113–122, 1982
If subsets are used, it naturally becomes the OSEM optimizer.
With transmission data (CT), the log-converted pre-corrected data are used as in Phys. Med. Biol., vol. 43, pp. 729-737, 1998. - NEGML (only compatible with histogram, emission data):
(IEEE TMI, Jan 2015, vol. 34, pp. 126-136) - AML (AB-EMML) (only compatible with histogram, emission data):
This optimizer is the AML algorithm derived from the AB-EMML of C. Byrne
(Inverse Problems, 1998, vol. 14, pp. 1455-67)
The bound B is taken to infinity, so only the bound A can be parameterized. - Landweber (only compatible with histogram data):
This optimizer implements the standard Landweber algorithm for least-squares optimization. (American Journal of Mathematics, Vol. 73, No. 3 (Jul., 1951), pp. 615-624) - MLTR (only compatible with histogram, transmission data):
This optimizer is a version of the MLTR algorithm implemented from the equation 16 of the paper from K. Van Slambrouck and J. Nuyts: (IEEE Trans. Nucl. Sci., vol. 61, pp. 173-81, 2014) - One-Step-Late:
This optimizer is the algorithm proposed by P. J. Green, (IEEE TMI, Mar 1990, vol. 9, pp. 84-93). - BSREM (only compatible with histogram, emission data):
This optimizer is the Block Sequential Regularized Expectation Maximization (BSREM) algorithm from S. Ahn and J. Fessler, (IEEE TMI, May 2003, vol. 22, pp. 613-626) - Penalized Preconditioned Gradient ML (only compatible with histogram, emission data):
This optimizer is the Penalized Preconditioned Gradient algorithm from J. Nuyts et al, (IEEE TNS, Feb 2002, vol. 49, pp. 56-60). - Modified EM for Penalized ML (only compatible with emission data):
This optimizer is based on the algorithm from A. De Pierro, (IEEE TMI, vol. 14, pp. 132-137, 1995). - ADMM:
This optimizer is the ADMM with non-negativity constraint on projection space. It was proposed by H. Lim, Y. K. Dewaraja, and J. A. Fessler, (Physics in Medicine & Biology, 2018). - APPGML:
This optimizer is the A-Penalized Preconditioned Gradient algorithm (A-PPGML) from M. Millardet et al, (IEEE TRPMS, 2021, vol. 6, pp. 629-640). - MLMUMAP:
This optimizer is a modified MLEM algorithm where the image voxel values are attenuation factors and the data are taken as the logarithm of ACF values associated to PET histogram data.
More implementation details can be displayed when using the command-line options -help-opti with castor-recon.
Penalties (that can be associated with some optimizers)
- MRF (Markov Random Field):
The Markov Random Field (MRF) penalty is implemented for several types of neighborhood, potential functions, similarity and proximity factors. The potential function can be quadratic, based on relative differences (Nuyts et al, IEEE Trans. Nucl. Sci., vol. 49, pp. 56-60, 2002) or based on many different published functions. - MRP (Median Root Prior):
The Median Root Prior (MRP) is implemented for several types of neighborhood as for MRF. The current implementation is the simplest one, based on the following reference: S. Alenius and U Ruotsalainen (European Journal of Nuclear Medicine, vol. 24, pp. 258-265, 1997).
More implementation details can be displayed when using the command-line options help-pnlt with castor-recon.
Dynamic Models
- LinearModel (Base class for linear models):
- Several level of application of the models (dynamic frames, respiratory/cardiac gates).
- Several optimisation methods (nested EM, NNLS, direct (within system matrix) ).
- Interpolation of arterial input curve interpolation on framing protocols. - Patlak (Patlak Model):
- Automatic Patlak basis function computation from arterial input curve.
- Several optimisation methods (nested EM, NNLS, direct (within system matrix), linear regression ). - Spectral (Spectral Model):
- Parameterization of spectral function coefficients (number, rate, etc..).
- Interpolation of arterial input function on framing protocol. - _1TCM (1 Tissue Compartment Model):
- Several optimisation methods (NNLS, LS with ridge-regression).
- Several integration methods (Weighed parabola overlapping, trapezoid).
Image-based Deformation Models
- deformationRigid (Rigid deformation model ):
Transformation performed through vectors containing 3 translation and 3 rotation parameters
Image-based convolution
An image convolver is called through the -conv option. The provided argument describes the convolver to be used, its options, and when to include it within the algorithm.
The 'when' parameter is an argument describing when to include the convolver within the algorithm. It is a list of keywords separated by commas:
- forward: included into the forward model; a convolution of the current estimate is forward-projected
- backward: included into the backward model; a convolution of the correction terms is used for the update
- post: applied before saving the image; the convolved image is not put back as the estimate for the next update)
- psf: include both 'forward' and 'backward'; the standard image-based PSF modelling
- sieve: include both 'psf' and 'post'; the standard method of sieve
- intra: applied to the updated image and use it as the current estimate for the next update
Currently only a non-variant Gaussian convolver is implemented, with transaxial /axial FWHM and number of sigmas included in the kernel as parameterizable variables.