The name stands for "Spect, Pet, And Mri analysis" and was selected because it is the goofiest-sounding acronym that can be created using the titular words. To my knowledge the program has never been used to analyze Spect data, but the marketing department felt that "Pamalize" needed more zing. Or possibly had too much zing... Before the onslaught of junk email that made "spam" a household word, a fellow at a scientific conference pointed out that, coincidentally, there is a tinned meat product available in England that has a very similar name. Go figure.
SPAMALIZE has two main types of programs: (i) end-use applications (detailed below) that have specialized features unavailable in similar commercial or academic software, and (ii) "filtering" programs that serve mainly to pre-process data in preparation for subsequent analysis by other programs. These "filtering" programs let us easily (?!) convert data from the formats spewed out by our various imaging machines to the formats needed by the many different end-use image analysis programs we use.
Bear in mind that this is an image analysis program, so this web-site has the innate philosophy that a picture is worth at least 300 words! The most mature and sought-after applications include:
BrainMaker: 3D Region-of-Interest (ROI) drawing and analysis. ROIs can be drawn on axial, coronal, and sagittal views to create a 3D Volume-of-Interest (VOI). Editing in one view automatically updates the ROI in all other views. There are many tools for drawing, erasing, editing, and automated contour finding. There is also a suite of tools for segmentation, smoothing, edge-finding, and easily applying histogram information to aid in drawing ROIs. The VOIs can be saved and applied to other image volumes (such as PET) to extract the corresponding pixel information.
BrainSpinner: 3D interactive volume display. Several volumes can be displayed simultaneuosly in different ways and the entire mess can be rotated in real time using the mouse as a virtual trackball. Mesmerizing. For instance, a PET scan of a brain can be displayed in planar view, a MRI volume can be used to show the outline of the brain, and activated areas (e.g. from SPM analysis) can be displayed as colored clouds.
BrainSqueezer: Display and Coregistration for multiple image volumes simultaneously. Multiple image volumes can be loaded and displayed, limited only by the size of the images and your available computer memory. Best of all, the images do not have to be the same size! Contours based on the current Reference image are applied to the other images to aid in judging the alignment. The object image may be coregistered (shifted, rotated, and magnified in 3 cardinal dimensions) to match the spatial location of the reference image. Once the image alignment is close, a mutual information algorithm can be used to optimize the fit. There is also an ImageMath module to add, subtract, and multiply (or mask) one image volume by another, and the result can be displayed immediately. Other tools, such as thresholding, masking, and smoothing, are also included.
Once you use this you'll wonder how you ever did without it!
FDG Quantitation Tool: Converts a PET FDG scan from a "raw" concentration image (microCi/ml) to a "quantitated" local Cerebral Metabolic Rate of glucose (lCMRglu, mg/min/100g) image using a measured blood Time-Activity Curve. GUI-based, displays TAC and images. This program allows the user to investigate various "what if" scenarios, like "what if the radioactivity counter had reported a more realistic value for blood sample #3?".
There is copious input and output checking of the data and the file system, and a log-file is produced detailing everything that happened. If the blood curve and image file are OK, the program can also just run unattended and write out the lCMRglu image files.
Patlak/Logan Plot Tool: Performs multiple-time graphical analysis (MTGA) on dynamic PET or SPECT data. This is an integrated tool that reads and displays image data, reads and plots blood time-activity curves, allows you to define a reference region for an input function, and lets you draw ROIs on one or more planes. You can easily switch between Patlak plots (for irreversibly bound tracers) and Logan plots (for reversibly bound tracers). You may either draw a ROI over a particular region using this tool, or read in a mask created with another tool such as BrainMaker. You can also create a parametric image volume showing the Patlak slope calculated through all of the voxels in your data set!
Similarly to the FDG program, there is copious input and output checking of the data and ROIs, and a log-file is produced detailing everything that happened.
A recent (2005) addition permits seamless integration of Volumes-of-Interest (VOIs) drawn using BrainMaker. This is a computation-intensive, non-graphical VOI-based program that takes a PET dynamic file and a VOI file, then computes either a Patlak- or Logan-plot slope and offset for every VOI. This program is designed for rapid analysis of multiple regions, and can be integrated into batch-processing scripts.
Showslices: Displays multiple slices from a 3D image volume. It can display a "Base" image (e.g. high-resolution MRI) as well as an overlaid "activation" image (e.g. SPM map, PET data, etc.) with varying opacity, thresholds, and color scales. You may display all slices, or every Nth slice. It can read any of the file formats supported by EZ_WRITER. It is compatible with results from AFNI, fmristat, FSL, SPM, and VoxBo.
EZ Writer: A toolbox for reading and writing Medical Image files. The core programs are used by all of the Spamalize programs. Supported file formats are listed below. The group of files form a cohesive set of programs with a uniform way of presenting image data and associated parameters (pixel size, etc.) to the various programs. Using the EZ-Writer toolbox means that the individual analysis programs are freed from input/output duties, and can easily read data from any of the supported file formats without having to rewrite the analysis code every time a new format is desired.
SPAMALIZE knows how to read the following file types:
SPAMALIZE can write the following file types:
Other file types are added as needed.
SPAMALIZE runs on the following platforms:
The full source-code version of SPAMALIZE requires a current version of IDL (available from Research Systems, Inc.). The University of Wisconsin has a campus-wide license agreement for IDL which makes it extremely reasonable for on-campus users. Students can acquire a fully-functional IDL license from RSI for $79 (a real bargain!).
Spamalize for Free!
RSI (the maker of IDL) provides a RunTime-only version of IDL that is FREE! This allows you to run applications like Spamalize that have been precompiled. You don't have access to the source code, but FREE is always a good deal! Spamalize is now available as a precompiled RunTime version, compatible with the VM system. To use it, you will need to download the Spamalize package and also install the free IDL Virtual Machine (www.rsinc.com).
Spamalize and Python:
A number of Python programs have been written to allow Spamalize/IDL programs to be nested within a Python script. This lets you use powerful and flexible IDL programs fairly seamlessly within a non-IDL pipeline, as long as you have an IDL license. Scroll down to "idl_command" on this page for more information.
SPAMALIZE is available free of charge to any academic user. It is currently used by over 100 groups in North and South America, Europe, Australia and Asia. And by one fellow who has been to Antarctica. The large user base demonstrates the powerful attraction of "free". For download information, contact the author, Terry Oakes: troakes - at - wisc.edu. Spamalize is officially unsupported unless you have made prior arrangements with Terry. A mildly helpful installation manual is available.
This might be a good spot to mention that over the years a few other folks have contributed pieces of code toward my programming efforts, for which I am very grateful. However, the Spamalize author (me, Terry) takes full responsibility for any bugs that might crop up in the implementation of Spamalize tools. If you find any bugs or have suggestions for improvements, please let me know!