By members and collaborators of the Functional Imaging Laboratory



SPM12SPM12, first released 1st October 2014 and last updated 13th January 2020, is a major update to the SPM software, containing substantial theoretical, algorithmic, structural and interface enhancements over previous versions.

A description of the new features is available in the Release Notes.

The software is available after completing a brief Download Form.

A PDF Manual is also available and some extra information can be obtained on the SPM online documentation (such as installation and getting started).


You need the following to run SPM12:

MATLAB MATLAB: MATLAB (MathWorks) is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation.

SPM12 is designed to work with MATLAB versions R2007a (7.4) to R2023b (9.15), and will not work with earlier versions. It only requires core MATLAB to run (i.e. no toolboxes).
See the System Requirements page for a list of suitable platforms to run MATLAB and the Platform Roadmap for the correspondance between MATLAB versions and supported platforms.

Alternatively, a Standalone SPM (built using the MATLAB Compiler) is also available and does not require the availability of a MATLAB licence (see limitations).

MEX files: Whilst the majority of the code is implemented as standard MATLAB M-files, SPM also uses external MEX files, written in C, to perform some of the more computationally intensive operations. Pre-compiled binaries of these external C-MEX routines are provided for:

Windows (32 and 64 bit)
Linux (64 bit)
macOS (64 bit)

For these platforms, SPM should work straight out of the box.
For other platforms, you will need to build the MEX files using a suitable C compiler and the Makefile provided with the SPM distribution.

NIfTI File Format: SPM12 uses the 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. Tools are provided to import data from DICOM, PAR/REC, MINC and ECAT7.
SPM12 also uses the GIfTI file format for surface-based data.


No backward compatibility with earlier versions of SPM is ensured, although SPM12 should be happy to read the image files.

Because SPM12 writes the data as NIfTI-1, images created by SPM12 can not be properly read by SPM2 or earlier, but they should be fine with SPM5 or SPM8.

File formats of SPM.mat, etc, are also different, with no compatibility among the different SPM versions.


SPM12 greatly benefits from other open source projects:

FieldTrip FieldTrip: A MATLAB toolbox for MEG and EEG data analysis that is being developed at the Donders Institute for Brain, Cognition and Behaviour at Radboud University Nijmegen.
matlabbatch matlabbatch: A framework to run MATLAB programs as batch jobs. Developed at the Freiburg Brain Imaging (FBI) laboratory.

SPM12 Updates

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 the SPM manager <fil.spm@ucl.ac.uk>.

SPM12 updates will be advertised on the mailing list and made available at the following address:

A MATLAB script (spm_update.m) is available to detect when a new SPM12 update is available, and possibly install it automatically.

>> spm_update
         A new version of SPM is available.
>> spm_update update
         Download and install in progress...
         Success: xx files have been updated.

Alternatively the command line syntax to install the updates on Unix systems (Linux, Mac) is:

unzip spm12.zip
unzip -o spm12_updates_rxxxx.zip -d spm12

On other platforms, just unpack the update archive over your SPM installation so that newer files overwrite existing files.

If you have problems downloading or installing the updates, see this.

DateUpdate Revision Number