This page contains a list of features and modules implemented in the current CASToR version.

**CASToR v2.0.1**

Main features:

- Iterative 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.
- Projector plug-in class system, including several methods (see below)
- Optimization algorithm plug-in class system, including several methods (see below)
- Plug-in class systems for image convolution and spatial regularization, and general image processing.
- 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.

This version contains the following implemented modules.

More implementation details can be displayed when using the command-line options *-help-projm*, *-help-opti* and -*help-conv* with *castor-recon* for projectors, optimizers and image-based convolvers respectively.

#### Projectors

**Original Siddon:**

Line projector that computes the exact path length of a line through the voxels. Implemented from the following paper:*RL Siddon. "Fast calculation of the exact radiological path for a three-dimensional CT array". Med Phys. 1985 Mar-Apr;12(2):252-5.***Accelerated Siddon:**

Incremental version of the original algorithm proposed by R. L. Siddon. Implemented from the following paper:*Filip Jacobs, et al. "A Fast Algorithm to Calculate the Exact Radiological Path Through a Pixel Or Voxel Space". Journal of Computing and Information Technology 6(1) · December 1998***Joseph (not compatible with SPECT attenuation):**

Line projector that uses linear interpolation between pixels. Implemented from the following paper:*Joseph PM. "An Improved Algorithm for Reprojecting Rays through Pixel Images". 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. Implemented from the following paper:*B. De Man and S. Basu. "Distance-driven projection and backprojection in three dimensions", Phys. Med. Biol., vol. 49, pp. 2463-75, 2004.*

#### Optimizers (reconstruction algorithms)

**MLEM:**

This optimizer is the standard MLEM (Maximum Likelihood Expectation Maximization).*L. A. Shepp and Y.Vardi, "Maximum likelihood reconstruction for emission tomography" 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*J. Nuyts et al: "Iterative reconstruction for helical CT: a simulation study", Phys. Med. Biol., vol. 43, pp. 729-737, 1998.***NEGML (only compatible with histogram, PET, SPECT data):**

NEGML algorithm from*K. Van Slambrouck et al, IEEE TMI, Jan 2015, vol. 34, pp. 126-136*."

Subsets can be used. This implementation only considers the psi parameter, but not the alpha image design parameter which is supposed to be 1 for all voxels. It implements the equation 17 from the paper.**AML (AB-EMML) (only compatible with histogram, PET, SPECT data):**

This optimizer is the AML algorithm derived from the AB-EMML of*C. Byrne, "Iterative algorithms for deblurring and deconvolution with constraints" Inverse Problems, 1998, vol. 14, pp. 1455-67*

The bound B is taken to infinity, so only the bound A can be parameterized. This bound must be quantitative (same unit as the reconstructed image). It is provided as a single value and thus assuming a uniform bound. Subsets can be used.

With a negative or null bound, this algorithm implements the equation 6 of*A. Rahmim et al, Phys. Med. Biol., 2012, vol. 57, pp. 733-55*.

If a positive bound is provided, then we suppose that the bound A is taken to minus infinity. In that case, this algorithm implements the equation 22 of*K. Van Slambrouck et al, IEEE TMI, Jan 2015, vol. 34, pp. 126-136*.**Landweber (only compatible with histogram data):**

This optimizer implements the standard Landweber algorithm for least-squares optimization. With transmission data, it uses the log-converted model to derive the update. The relaxation parameter is not automatically set, so it often requires some trials and errors to find an optimal setting. This algorithm is particularly slow to converge.*L. Landweber "An Iteration Formula for Fredholm Integral Equations of the First Kind" American Journal of Mathematics, Vol. 73, No. 3 (Jul., 1951), pp. 615-624***MLTR (only compatible with histogram, CT 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: Reconstruction scheme for accelerated maximum lihelihood reconstruction: the patchwork structure, IEEE Trans. Nucl. Sci., vol. 61, pp. 173-81, 2014.*

An additional empiric relaxation factor has been added onto the additive update. Its value onto the first and last updates can be parameterized. Its value for all the intermediate updates is computed linearly from these first and last provided values. Subsets can be used.

#### 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. The following keywords can be used:

-forward (include convolver into the forward model; a convolution of the current estimate is forward-projected)

-backward (include convolver into the backward model; a convolution of the correction terms is used for the update)

-post (apply convolver 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 (apply convolver to the updated image and use it as the current estimate for the next update)

Currently, only a non-variant Gaussian convolver is implemented:

**Stationary Gaussian:**

This convolver is based on a classic stationary Gaussian kernel. It can be anisotropic so that the transaxial and axial FWHM can be different. One also has to choose the number of sigmas of the Gaussian distribution that will be included in the kernel. The following options can be used (in this particular order when provided as a list, separated by commas):

-transaxial FWHM: to set the transaxial FWHM (in mm)

-axial FWHM: to set the axial FWHM (in mm)

-number of sigmas: to set the number of sigmas included in the kernel (recommendations: at least 3. and maximum 5.)