Artifact Detection

PLEASE NOTE: This web page has been taken verbatim from the original Stanford Gabrieli Lab wiki, and contains outdated information about the Artifact Detection tool by Sue Gabrieli. For current information about the tool, please see the documentation contained in the current version of ART. We regret any confusion this may cause.

Artifact Detection

Artifacts are anything that disturb a nice clean view of activation regions. They can be due to subject movement, drift, scanner fluctuations, hemodynamics, breathing, and other physiological noises. Normally, the effects of subject movement are removed during preprocessing, and drift and other slow scan variations are removed as regressors. Whatever is left after this data cleaning is a potential artifact. Given that these effects are normally in the data, the real issue is whether the size of the artifacts will cause data fluctuations too severe to be able to make sensitive statistical detections from the data.

Artifacts can be detected automatically, or by having a user look at good displays of the data. In addition, the artdetect program has provisions for repairing bad data. The list below describes some of the artifact detection programs.

artdetect Program

Artdetect5 is the latest version of a script intended to allow visual inspection of global properties of fMRI data and automated or by-hand removal of 'outlier' scans, whose intensities are radically different from the mean of the timeseries.

"Radically different" is a user-set threshold of standard deviations from the mean which is set interactively in the graphical viewing window. A default minimum threshold for outliers is set at 1.8% of the mean value. This limit corresponds to the 3.5-sigma limit for expected physiological noise with an RMS value of 0.5% on a 3T scanner.

The script offers several choices of removal methods - insertion of the global mean, interpolation from surrounding scans or simple removal from the timeseries. The repair function currently works only in SPM99 (to be fixed in the future).

New features of this version include an option to automatically generate a custom mask for the image, and an option to run cases without a movement parameter file, i.e. before realignment is done. Note for some cases that the automatically generated mask or a user defined mask are necessary for accurate results. The automatic mask worked well in all our test cases. It writes an image file called ?ArtifactMask if you want to review the mask.

The program is called from the Global Variate button in the ROI-Toolbox (“roimod1”), and can also be called as “artdetect5” from a Matlab command line. It runs in either SPM2 and SPM99.

spm_movie, biac_movie

These programs show movies of all the collected data, so that a user may spot unusual features in the data by watching the movie.

spm_movie is well-described in the SPM documentation. A user chooses a slice plane, and the movie will cycle through all the scans on that slice plane.

biac_movie displays bulk data for quick visual review by a user. Typical time to process and display all the data in 100 scans of size (79,95,69) is a few minutes. Every voxel of scan data can be seen. Note all these programs often run much faster if the data is local on your machine!

Each scan is made into a montage of slices with orientation chosen by input. The montage may be all slices or a larger view of 20 consecutive slices. The slice displays may either be image data or contrast data. Contrast data shows the difference between each image and a reference image, amplified so that small data variations are more visible. In movie mode, every scan montage is shown, followed by a time history of mean intensity and position of each scan. In slider mode, every scan montage is available by selecting the slider position. The display is a default Matlab window where the zoom button can be used to examine individual pixels, where each pixel corresponds to an individual voxel in the 3D image.


This program checks for artifacts at the slice level. It was written after the movie programs showed that some of the artifacts just affected particular slices in a 3D volume. Possible causes for these types of artifacts include sharp subject movement for a short duration of just a few slices within a volume, or dropouts in the data during processing. Note in the latter case, if the raw scanned data does not have a slice artifact, then the slice artifact on later preprocessing stages can be "repaired" just by doing the preprocessing again.

The program has preset limits for global variations and slice variations, and when the limits are exceeded an artifact is declared. The program writes an artifact log and an artifact time history in the directory of the source images. It runs automatically, the user only need review the output.

Time Series Explorer

This program is accessed from the "roimod1" toolbox. It lets a user examine time series on particular voxels, in order to see if there are unusual spikes in the data. The program includes many other functions.