Archived FMRI pipeline

From Brain Mapping Unit
Jump to navigationJump to search

NOTE: THIS PAGE NEEDS FILLING IN!

About fMRI data and file types

Raw fMRI data is saved in .dcm (dicom) files. Typically these .dcm files correspond to individual slices, and the resulting 3D image (or a time-series of 3D images) is saved in a .nii (nifti) file. Raw dicom files can be transformed into nifti format using SPM (a MATLAB software package implementing Statistical Parametric Mapping for neuroimaging data) or other software such as MRIcro.

Note that, when handling neuroimaging data, you need to take special care that the orientation of the images is correct.

Standard Preprocessing Steps & The Pipeline

In what follows, we describe the broad stages of fMRI preprocessing. Note that the pipeline saves the data after each intermediate step in newly created files with relevant prefixes.

Slice-timing correction

This step corrects for the time-delay between the acquisition of different slices.

Rigid body correction

This step estimates, characterises and broadly corrects for the effect of head-motion. It is also the step at which one can exclude subjects with excessive head-motion (e.g. more than a voxel size).

Registration to standard space

Chose source image, template (EPI), method, image size, voxel size (2x2x2). (This is the 'Normalize' option in SPM. )

Regressing out head motion, CSF, white matter & physiological signals

(In SPM, this is done under '1st level analysis' -> 'Data and design' -> 'Multiple regression'.)

Parcellation

Wavelet Decomposition

A very basic tutorial on wavelets can be found here: [[1]]

For details on the wavelet toolbox in MATLAB, read: [[2]]

The Question of Smoothing

Required before VBM. Important for finding activations regions. Not used when parcellating (for network analysis).

DVARS and the Motion Problem

Here are the scripts dvars.py and dvars_mo.py to generate "Petersen plots:" File:Dvars.zip .

Here are the requirements

-python (you have it if you're on mac or linux, but an upgrade to 2.7.x from python.org is suggested)

-numpy (a version appropriate for your OS and python version, if you haven't installed numpy yet)

-NiBabel, at a command prompt, run  sudo easy_install nibabel

Then run the code as such:

1. RMS Delta Displacement plot:

python dvars_mo.py <rigid body motion parameter file>  i.e.     python dvars_mo.py motionXYZ.1D this will output a file called motionXYZ_dvars.1D

2. %DVARS:

python dvars.py <NIFTI dataset>  i.e      python dvars.py foobar.nii.gz this will output a file called foobar_dvars.1D

The input dataset should be at least roughly masked, but otherwise can be raw or preprocessed data. If data is preprocessed and the mean has been removed, run like this:

python dvars.py <preprocessed NIFTI dataset> <NIFTI dataset with non-zero means, 3D or 4D>

The numbers in the fMRI DVARS are in percent signal change, so they should be consistent across subjects and vary with the amount of motion subjects have. FYI, the baseline of DVARS will be higher with more thermal noise or continuous noise that you have, so for example, with people with a lot of cerebral pulsation from vasculature, the baseline DVARS% will be high.

Enjoy, and let me know if something breaks or if you need help.

Back To Main Page

Main Page