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