fMRI data quality overview

Here is a link to the CANlab quality control checklist.


BOLD effects of interest are small, so temporal stability during functional acquisition is important. In order to accurately measure such small signal changes, an MR system must have intrinsic image time series fluctuation levels much lower than these expected signal changes. Quality checks allow you to assess if your data are worth being analyzed. [adapted from NYU CBI's Data Quality Manual]

Terms used in quality control

*Signal-to-Fluctuation-Noise Ratio (SFNR): measure temporal stability

  • “signal” = average voxel intensity.
  • “Temporal fluctuation noise” is calculated by a second-order polynomial detrending to remove the slow drift. Then, a fluctuation image is calculated as the temporal standard deviation of the residual variance of each voxel after the detrending (subtracting the fit line from data). An SFNR image can be created by dividing the signal image by the fluctuation image. Averaging across voxels gives an SFNR summary value. (2)
  • One can also calculate drift by subtracting the maximum fit value from the minimum fit value and dividing that by the mean signal intensity.
  • There are several contributions to the temporal intensity fluctuations at any given voxel:
    • functional activity itself
    • electronics noise (usually white noise from receiver)
    • physiological changes (respiration & heart beat)
    • scanner noise (B0 drift due to heating, etc)
  • The main source of temporal variation of average intensity will come from scanner noise & physio activity (which can be recorded and subtracted).

*Signal-to-Noise Ratio (SNR): the ratio of the mean “signal” (average voxel intensity across time), to “noise” (the standard deviation (across space) of background averaged across time) (1)

*Signal-to-Ghost Ratio (SGR): Compares the signal at the center of the brain/object to the mean signal in the background (outside the brain) for a signal to maximum ghost ratio, or the mean signal to the mean ghost signal (outside the brain). (1)

Visualizing 'ghosts' and 'background'

  • See Weisskoff (3) for explanation of the RDC measure of scanner stability - basically a measure of the size of the ROI where statistical independence of the voxels is lost. It assumes scanner instability causes increases in the voxel correlation with each other. With no instabilities, the standard deviation of an ROI time series divided by the mean scales inversely depending on the square root of the number of voxels. However, usually as the number of voxels increase the reduction in ratio between the standard deviation and mean plateaus (2)

* Why do a FFT of data to detect noise? Ideally, the magnitude of the data transformed into frequency should be low and relatively uniform. Periodic noise would show up as a spike in the frequency space, and particularly large spikes can indicate that there may be problems with the scanner or other sources of mechanical noise. (2)

  • A Note on Spikes: If an electronic malfunction occurs during data acquisition, a “spike” may appear in the data. A typical, “clean” spike will last a very short time, producing a very localized signal increase in the data. When one transforms these data into an MRI image, the spike will be transformed into a periodic noise, with a spatial frequency given by the k-value where the spike appeared. A key fact here is that the localized noise in k-space is transformed into spatial noise distributed all over the image space, with a well defined pattern. Visualize a “spiky” slice

Useful references:

  • (1) Simmons, A., Moore, E., & Williams, S. C. R. (1999). and Shewhart Charting. Journal of Bone and Mineral Research, 1278(January), 1274-1278.
  • (2) Friedman, L., & Glover, G. H. (2006). Report on a multicenter fMRI quality assurance protocol. Journal of magnetic resonance imaging : JMRI, 23(6), 827-39. doi:10.1002/jmri.20583
  • (3) Weisskoff, R. M. (1996). Simple measurement of scanner stability for functional NMR imaging of activation in the brain. Magnetic resonance in medicine: official journal of the Society of Magnetic Resonance in Medicine / Society of Magnetic Resonance in Medicine, 36(4), 643-5.

Common artifacts

*Susceptiblity-induced distortions: Through and in-plane distortions/blurring, caused by magnetic field inhomogenity, causes different dephasing of protons *K-space artifacts: lead to a periodic noise, with the spatial frequency of the k-value with the spike. The localized noise in kspace becomes an artifact with that spatial frequency in the fmri image. Kspace artifacts are not always easy to see, and can sometimes be detected better by looking at the difference images.

*Transient gradient artifacts: A spike in image intensity caused by gradient instability or spin-history effects due to interactions with head movement

  • Detected with scn_session_spike_id
  • Mitigate by modeling bad images as dummy regressors, model movement parameter estimates


Other data diagnostic tools

  1. Calculates variance between images (mean of the squared differences between images)
  2. Calculates the variance between images by slice
  3. Shows the mean of all voxels in the image divided by the mean intensity, to pick up any major intensity changes
  4. Shows you the maximum, mean and minimum values for variance of each slice. Allows you to pick up slice with high maximum variance, which may occur with signal dropout
  1. Segments your images into the brain, background areas, and ghost areas where there is likely to be ghosts
  2. Uses this segmentation to calculate SNR(average voxel intensity in the brain area divided by average voxel intensity in the background area), SFNR, and SGR
  3. Also detects spikes with a small ROI in the background

*MRI physics blog:, in-depth posts on MRI physics and how to spot good or bad data

CANlab QC tools


the canlab_preproc tool produces a collection of output images for assessing data quality. These images pop up during preprocessing, and are also saved under

  <subject dir>/qc_images

For more about these images, see

  help canlab_preproc


One tool for looking at your data is fmri_data.plot method. To use:

  dat = fmri_data('your_image.img', 'mask.img') %suggested motion and slice time acquisition corrected image

This produces five plots of the data and a visual of metrics across the brain. For an explanation, see

  help fmri_data/plot

One thing to check is that your signal values in the Orthviews images are in the thousands, not in the hundreds, as that produces floor effects. You can also use the Orthviews images to look for signal dropout in various brain regions.


This file can give you helpful metrics for your data. For more, see the documentation at

  help canlab_qc_metrics1

quality control database

The CANlab is collecting quality control metrics on a large set of images. Soon, this canlab_fmri_qc_database will be publicly available, so you can add your own QC metrics and see how they compare to existing data.

help/fmri_quality_control_overview.txt · Last modified: 2016/08/19 18:00 (external edit)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0