SPM5 is a major update to the SPM software, containing substantial theoretical, algorithmic, structural and interface enhancements over previous versions.
The software is available via FTP, but we ask you to complete a brief registration form prior to downloading. Having completed the form, you will be directed to the download location, via a
keyword enabled FTP URL.
Although we have tried hard to produce high quality software, in a project of this size and complexity there are certainly some remaining bugs. Please assist us by reporting bugs to: <firstname.lastname@example.org>. Peculiarities and feedback about the software should be raised on the SPM email discussion list. We do not have time to offer extensive support of the beta version, but we hope that user feedback can iron out most of the problems before the final release.
Bugs and fixes will be posted on the list, and described in the README.txt file in the SPM5_updates anonymous FTP area, at ftp://ftp.fil.ion.ucl.ac.uk/spm/spm5_updates, from where updated programs can be downloaded.
You need the following to run SPM5:
- MATLAB 6.5 - MATLAB 7.3: MATLAB is a high level numerical mathematics environment
optimised for operations on untyped matrices. It's syntax is close to that of matrix algebra,
making the code an effective pseudo-code for the algorithms,
and leading to fast development times. SPM5 is most stable under MATLAB 6.5.1, and will not work
with earlier versions. Versions after 7.1 were written after the release of SPM5, so we can not predict how well it will run in these, but we try to fix SPM5 for compatibility with later MATLAB versions as soon as we can. MATLAB is produced by The MathWorks, Inc. Natick, MA, USA.
SPM5 requires only core MATLAB to run (The exception to this is that you need to have the 'signal processing' toolbox if you require to filter EEG/MEG data). See the System Requirements page for a list of suitable platforms to run MATLAB.
- Whilst the majority of the code is implemented as MATLAB M-files & functions
containing standard MATLAB commands, a number of features specific to the UNIX version
have been used. SPM also uses external C programs, linked to MATLAB as C-mex files, to
perform some of the more computationally intensive operations. Some of these latter C
programs use direct system calls to implement SPMs "memory mapping", mapping disk
resident image volumes into memory.
- Pre-compiled binaries are provided with the distribution for Solaris2 (
Linux (32 bit -
*.mexglx and 64 bit -
*.mexa64), Windows (32 bit -
*.dll, *.mexw32 and 64 bit -
*.mexw64) and Mac (PowerPC -
*.mexmac and Intel -
For these platforms you only need MATLAB. Note that for Solaris systems without libgcc_s.so.1, you may need to recompile.
- For other UNIX platforms, you will need a suitable C compiler to create the mex files.
Makefile is provided with the distribution, configured for various platforms.
If you have to tweak the Makefile to compile the SPM mex-files for your platform, please send us
the details so we can include them in the distributed Makefile. Additionally, if you send us the
compiled binaries, we would be happy to host archives of compiled mex-files in the user
contributions area, for other users benefit.
- SPM uses the new NIFTI-1 file format for the image data.
All images are written as NIFTI-1, but it will also read the
old Analyze format used by SPM2.
MINC and ECAT7 are no longer read directly into SPM5, although converters are provided.
If your data comes off the scanner in DICOM format, then you may be able to convert it using the tools of SPM5.
No backward compatibility with earlier versions of SPM is ensured, although SPM5 should be happy to read the image files.
Because SPM5 writes the data as NIfTI-1 (and older SPM versions - other than SPM5b - do not support NIfTI-1), images created by SPM5 can not be properly read by SPM2 or earlier.
File formats of SPM.mat etc are also different, with no compatibility among the different SPM versions.