Lazar, N.A., Eddy, W.F., Genovese, C.R., and Welling, J., 2001. Statistical Issues in fMRI for Brain Imaging. International Statistical Review, 69, 1, 105-127.
Lazar, N.A., Luna, B., Sweeney, J.A., and Eddy, W.F., 2002. Combining Brains: A Survey of Methods for Statistical Pooling of Information. NeuroImage, 16, 538-550.
William F. Eddy, Mark Fitzgerald, Douglas C. Noll (1996). Improved Image Registration by Using Fourier Interpolation. Magnetic Resonance in Medicine, 36.6, 923-931 William F. Eddy and Terence K. Young (2000). Optimizing the Resampling of Registered Images. Handbook of Medical Image Processing, Processing and Analysis, (I.N. Bankman, Ed.), Academic Press, 603-612.
Tzourio-Mazoyer N et al. Automated anatomical labelling of activations in spm using a macroscopic anatomical parcellation of the MNI MRI single subject brain. Neuroimage 2002; 15: 273-289.
If a *lot* of these failures happen, though, something more serious has gone
wrong. One of the most common causes of this is having the data in xytz order
when you think it's in xyzt order. (Smartreader shouldn't make this mistake,
but if you're reading files as raw data rather than DICOM files or such it can
happen). If you think you are seeing a lot of nelder-mead failures, see if
you have a GrandMean image in the print or ps directory, and have a look at
it. Do the pictures look like brains? Do the different slices look like,
well, different slices? If not, some problem is happening before estireg ever
gets the images.
What you probably want, though, is to read in all the I.nnn files in a
series of directories with names like "001", "021", and so on, and discard the
first image (set of slices) of every group because it's the guide image and
not useful data. There is a special script to do that, convert_ifiles.py .
Just go to the directory which contains "001", "021", etc., and give the
command "convert_ifiles.py" . You'll get a Pgh MRI file out, which you can
then read directly into Fiasco.
The 'in' directory is not interesting. 'merged' looks like a standard Fiasco
directory. In 'merged/in' you will find a file called 'split' which contains
the presented conditions for the union of the 'before' and 'after' runs. in
'merged/conditions' you'll see that there are 4 conditions in the overall
experiment, just as there should be.
The merged/stat and merged/print directories contain statistics for the joint
runs. In particular, see merged/print/Fmaps_Condi_when_f.mri for a masked
Fmap showing the interaction between the language/fixation contrast and the
before/after contrast.
Given these files, there are two general approaches to group
analysis: One can perform ANOVAs, or one can combine Tmaps. The
Fiasco script "testingroup.csh" performs a voxel-wise in-group
ANOVA using a mixed effects model, and "groupcompare.csh" performs
a voxel-wise mixed-effects ANOVA for two groups with two
conditions per group.
Tmaps can be combined using "combine.csh". This script implements
Fisher's and Stouffer's methods for combining T scores; we
recommend Stouffer's method for general use. The output Pmap can
be converted to a Zmap using mri_rpn_math if desired.
"combine.csh" expects each input Pgh MRI Tmap file to include its
appropriate "counts1" and "counts2" information. "mri_copy_chunk"
can be used to copy that information into place if necessary.
This generally happens in the coregistration step, when FIASCO
is trying to build skull-stripped versions of the anatomical images for
alignment with the functional data. FIASCO uses some automatic tools from
AFNI to strip the skull, and sometimes they fail. One possible cause is
that the AFNI executable 3dIntracranial is not in your PATH. If it isn't,
add the appropriate directory to your PATH and run "FIASCO coreg_only".
If 3dIntracranial is in your path, it probably just failed to find the correct
values for skull stripping. You can force it to use appropriate
values as follows:
What does smooth_detrend.csh do, and how should I use it?
smooth_detrend is essentially a high-pass filter. It smooths the input
voxel time series with a Gaussian smoother, the bandwidth of which is
1/F_SMDETREND_DNM of the total time series length. The default value of
F_SMDETREND_DNM is 8, so if you have an 800-image time series the smoother
bandwidth would be 100. By subtracting the smoothed form from the input time
series we eliminate variations which are slower than that bandwidth while
preserving variations which are faster- presumably including the BOLD
response. We've found that this method works well for datasets which are
acquired as single continuous acquisitions, but we've had some trouble with
multi-acquisition datasets (which your group doesn't use). If you were doing
an experiment with about 8 or fewer blocks you would probably want to pick a
smaller value for F_SMDETREND_DNM to avoid eliminating the response to your
stimuli.
How do I read a series of files
with names like I.001, I.002, etc. into Fiasco?
There are two levels to the answer. You can get smartreader to read image
files with a command like:
smartreader -input 'I.###' -multi -out whatever -verbose
This will cause it to suck in all of the files with names matching that
pattern and produce a output files whatever.mri and whatever.dat that contain
all of the images. It will even do its best to make them into a proper time
series of volumes.
I have fMRI data for the same subject before and after treatment.
How do I find the effects of treatment on activation?
One approach is to do a 2-by-2 comparison with the experimental
conditions making up the columns and the before/after treatment
making up the rows, then look for the interaction effect. To do
this in Fiasco, follow these steps:
subject7_reading
/ \
before after
if that makes sense. You'll run the standard Fiasco runs for the two cases of
the reading test in the 'before' and 'after' subdirectories of
subject7_reading. Your other 2 pairs of experiments on subject 7 will go in
completely separate directories.
1 bynumimages
Condition
Language 0
Fixation 0
NA 2
Fixation 10
Language 10
Fixation 10
Language 10
you would have:
2 bynumimages
Condition when
Language before 0
Fixation before 0
Language after 0
Fixation after 0
NA NA 2
Fixation before 10
Language before 10
Fixation before 10
Language before 10
and similarly for 'after'. Notice that I've set up a time shift using
'NA' conditions to help deal with the BOLD response time lag.
(It doesn't really matter whether you use the 'before' or 'after' versions of
the .local.csh files, but you must copy one of them). The merge_detrend.csh
script will crunch away for a while, and eventually produce the new
directories 'in' and 'merged':
cp before/fiasco.local.csh .
cp before/epi.local.csh .
merge_detrend.csh before after
subject7_reading
/ / \ \
before after in merged
When I convert a Pgh MRI dataset to AFNI format, afni won't
let me set Taliarach markers for it.
The interactive program afni is finicky about the datasets for which it
will allow Taliarach markers to be set. Here are some of the known causes of
this problem:
pghtoafni -anat mydataset mydataset+orig
3drefit -markers mydataset+orig
Note that this will erase any Taliarach markers that may
be there already!
What group analysis methods does Fiasco provide?
Let's assume that you have data from several multiple subjects in
one or more groups, and you want to examine differences within and
between the groups. For obvious reasons, this is called group
analysis. To use the Fiasco tools described below you must have
the data in normalized form,in Pgh MRI files. Typically you would
convert the files to AFNI format using "pghtoafni", Talairach them
in AFNI, and then convert them back to Pgh MRI format using
"smartreader". The Fiasco script "normalization.csh" automates
this process. Note that you'll need the 'counts' data associated
with your statistics in normalized form as well;
"normalization.csh" takes care of that.
What should I do when the logfile ends with "All known methods for
skull stripping have failed"?
(Thanks to Kate Dunfee for the outline of this answer)
3dIntracranial -anat struct+orig -prefix outfile -min_val (#) -max_val (#)
NOTE: It might be stripped_inplane instead of stripped_axial.
See your out/logfile to figure out which. Process is the same for both.
smartreader -i outfile+orig.HEAD -out yourFIASCOrundirectory/anat/stripped_axial
Joel Welling
Last modified: Wed Jan 14 14:41:39 EST 2004
Fiasco is a toolkit for analysis of functional brain images
developed at the CMU Department of Statistics. See
the Fiasco Home Page for more information.