Archived FMRI pipeline: Difference between revisions
No edit summary |
No edit summary |
||
Line 45: | Line 45: | ||
This page of the wiki will serve as a repository for useful code and data generated along the way. The task-force will also hold regular meetings to keep efforts integrated, the key ideasemerging from these meetings will be logged below. | This page of the wiki will serve as a repository for useful code and data generated along the way. The task-force will also hold regular meetings to keep efforts integrated, the key ideasemerging from these meetings will be logged below. | ||
[[====Meeting 1 - summary & slides====]] | |||
[[===Useful Code===]] | |||
===Prantik's %DVARS script=== | ===Prantik's %DVARS script=== | ||
Here are the scripts dvars.py and dvars_mo.py to generate "Petersen plots:" [[http://bcni.psychol.cam.ac.uk/~pv226/dvars.py]] and [[http://bcni.psychol.cam.ac.uk/~pv226/dvars_mo.py]] | Here are the scripts dvars.py and dvars_mo.py to generate "Petersen plots:" [[http://bcni.psychol.cam.ac.uk/~pv226/dvars.py]] and [[http://bcni.psychol.cam.ac.uk/~pv226/dvars_mo.py]] |
Revision as of 20:53, 2 May 2012
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. (SECTION TO BE FILLED IN!)
Parcellation
(SECTION TO BE FILLED IN!)
Wavelet Decomposition
(SECTION TO BE FILLED IN!)
A very basic tutorial on wavelets can be found here: [[1]]
For details on the wavelet toolbox in MATLAB, read: [[2]]
The Motion Problem
In short, the 'motion problem' refers to the recent (2012) discovery that even tiny head-motion can lead to severe artifacts in connectvitiy analyses of resting state fMRI data. The issue is clearly described and illustrated in the following papers:
Power JD, others and Petersen [[3]] Spurious but systematic correlations in functional connectivity MRI networks arise from subject motion. NeuroImage 2012.
Satterthwaite, others and Gur [[4]] Impact of in-scanner head motion on multiple measures of functional connectivity: Relevance for studies of neurodevelopment in youth. NeuroImage 2012.
Van Dijk, others and Buckner [[5]] The influence of head motion on intrinsic functional connectivity MRI. NeuroImage 2012.
Motion Task-Froce
The aim of this group is twofold:
1) We aim to produce a simple diagnostic kit that can be run on pre-existing resting state fMRI data to assess the magnitude of the problem (ie. quantify the amount of motion as well as the confounding effects it may have).
2) We also aim to settle on a single dataset and a set of analyses that will allow the comparison of various denoising methods designed to tackle the problem.
3) Having settled on the optimal method, we aim to implement it in a user-friendly way.
This page of the wiki will serve as a repository for useful code and data generated along the way. The task-force will also hold regular meetings to keep efforts integrated, the key ideasemerging from these meetings will be logged below.
====Meeting 1 - summary & slides==== ===Useful Code===
Prantik's %DVARS script
Here are the scripts dvars.py and dvars_mo.py to generate "Petersen plots:" [[6]] and [[7]]
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.