SNARK05 is a programming system designed to help researchers interested in developing and evaluating reconstruction algorithms. It is a descendant of earlier releases of SNARK, the first one of which was written by Richard Gordon in 1970. The most recent previous version, SNARK93 (J.A. Browne, G.T. Herman, and D. Odhner. SNARK93 - a programming system for image reconstruction from projections. Technical Report MIPG198, Dept. of Radiol., Univ. of Pennsylvania, Philadelphia, PA, 1993.), was an implementation of SNARK for Sun workstations.

The predecessors of SNARK93 - SNARK77 (G.T. Herman and S.W. Rowland. SNARK77 - a programming system for image reconstruction from projections. Technical Report MIPG130, Dept. of Comp. Sci., SUNY at Buffalo, Amherst, NY, 1978.) and SNARK89 (G.T. Herman, R.M. Lewitt, D. Odhner, and S.W. Rowland. SNARK89 - a programming system for image reconstruction from projections. Technical Report MIPG160, Dept. of Radiol., Univ. of Pennsylvania, Philadelphia, PA, 1989.) - were specifically designed to help with the problem of reconstructing cross-sections of the X-ray absorption coefficient distribution inside the body from X-ray projections. SNARK93 extended this capability to include positron emission tomography, PET (where the problem is that of reconstructing cross-sections of isotope concentrations inside the body from gamma-ray projections). A related programming system, specifically designed for emission studies, is RECLBL produced by Huesman et al. (R.H. Huesman, G.T. Gullberg, W.L. Greenberg, and T.F. Budinger. RECLBL Library Users Manual. Donner algorithms for reconstruction tomography. Lawrence Berkeley Laboratory, University of California, Berkeley, CA, 1977.).

The SNARK93 programming system was implemented in FORTRAN77. It was designed to

1. be capable of dealing with many modes of data collection (different geometrical arrangements of X-ray source and detectors, different X-ray spectra, etc.);

2. contain many of the published reconstruction algorithms;

3. be capable of generating mathematically described phantoms that realistically represent various cross-sections of the human body, together with mathematically simulated projection data of these cross-sections reflecting the characteristics (including noise) of various possible tomography devices;

4. contain subroutines to carry out work which appears to be common to many reconstruction algorithms, so as to ease the incorporation of additional (user-defined) algorithms;

5. be capable of a variety of display modes;

6. contain routines for the statistical evaluation of reconstruction algorithms;

7. provide a methodology for testing for statistically significant differences between reconstruction algorithms.

SNARK05 is an updated version of SNARK93. The following are the major advances that are incorporated into the SNARK05 package:

1. SNARK05 is implemented in C++;

2. the file structures for holding projection data, phantoms and reconstructions have been redesigned to match the capabilities of the typical computer environment at the beginning of the third millennium (specifically, XML headers are used in data files);

3. all iterative algorithms are now capable of handling image representations that use "blobs" (R.M. Lewitt. Multidimensional digital image representations using generalized Kaiser-Bessel window functions. J. Opt. Soc. Amer. A, 7:1834-1846, 1990.), (R. Marabini, G.T. Herman, and J.M. Carazo. 3D reconstruction in electron microscopy using ART with smooth spherically symmetric volume elements (blobs). Ultramicrosc., 72:53-65, 1998.), as well as those that use "pixels";

4. the efficient data access ordering proposed in (G.T. Herman and L.B. Meyer. Algebraic reconstruction techniques can be made computationally efficient. IEEE Trans. Med. Imag., 12:600-609, 1993.) is a standard feature of SNARK05.

SNARK05 has been designed to be flexible and transportable, in places at the expense of efficiency. While it may also be used to reconstruct repeatedly from data collected by a particular device, a special purpose program for that device is likely to be more efficient.

order SNARK05 now