The questions below have recently come in email
from researchers who are considering applying ICA to their fMRI
data. Since others may have similar questions,
they have given me permission to post this dialogue. -Scott Makeig
12 Dec 2000
Q: I am currently implementing the ICA approach for the analysis of functional MRI data.
However, I have some problems with the methodology
of ICA. If I have understood the runica() code correctly,
it is not designed to process large number of channels with
a few number of measurements. But a typical MRI experiment
provides data, which consists of a huge number of channels
and only a small number of images. In your papers published
in PNAS and HBM98 you applied ICA to functional MRI data.
Therefore I assume, that you performed a preselection of
the voxels, but I didn't understand how you did this.
For fMRI, the independence is considered over voxels
because of brain modularity. i.e., Simplistically, "Different places do different
things." Looking for temporal independence of many brain
areas over a relatively few time points makes little sense.
Therefore, the data matrix for fmri is of size (times,voxels).
For more details, please read our paper
McKeown et al.,
"Analysis of fMRI by
Blind Separation into Independent Spatial Components",
Human Brain Mapping 6(3):160-88 1998.
Q: Did you use something like a delayed-boxcar function to
select the pixels prior to ICA or did you use all pixels
of the brain?
We used all brain voxels. Even out-of-brain voxels might
help if they contain artifacts (like 'ghosting') that also
affect some in-brain voxels.
Q: If you used all pixels from inside the brain (like it
seems from Fig1. in the PNAS paper) the ICA has to process
arround 20000 pixels. Moreover, in a pharmaMRI experiment
one has to include all voxels, because it is not clear a
priory , where something happens and which effect will be
induced by the drug. But processing of all voxels violates
the requirement #Channels << #Frames. Secondly, the sphering
matrix becomes very large and on our workstation
(even with a lot of memory) it is impossible to the perform
the matrix calculations without crashing MATLAB.
The sphering dimension is the number of time points (or less,
if 'pca' reduction is introduced in runica()).
Q: Will you be adding functions to visualize independent fMRI components?
Yes, we plan to do this soon, with easy data paths to/from SPM and AFNI.
Tutorial Outline
Return to the tutorial start
Download the ICA toolbox
Comments and suggestions on this tutorial
are welcome. Email scott@salk.edu