Print

Print


Hi,

 > 1) We have found that marsbar will occasionally fail to find data at
the edge of the brain. This seems to occur because of the use of
trilinear interpolation in @maroi/getdata.m. Is the use of
spm_sample_vol just a holdover from spm99 or to maintain compatibility
with spm99? Could you instead use spm_get_data at around line 99 and
then just get all the data at once? Is there a reason to use trilinear
interpolation as opposed to just using nearest neighbor since most of
the time the data are going to be summarized using mean or eigenvector?]


Yes, good question.  Maybe I should make the resampling method an option
in the options interface.  I used trilinear by default because I was
anticipating quite often using small ROIs which are not in the same
native space as the data, but you are right, that is in fact not very
common.  I've attached a previous email to the marsbar list.

Best,

Matthew

Hi,

(previous mail)

 >> Fetching data...                        1/1
 >> Warning: No valid data for roi 1 (SSTvsCNSSST2050_-18_21_60_e1)

...

 >> in mars_roidata.m, y is returned empty. VY of course is the same for
ROI A and B, but o differs. We have no idea what is going on. ROI B (~o)
is relatively close to the edge of the brain, could this cause our problem?


I'm afraid so;  the message simply means that there were no voxels in
the ROI that were also present (non NaN) in all of your images.
Sometimes this is because the ROI or image orientations are wrong
(wrong .mat files for images for example).  You can check this by
selecting one of your images as the default structural via the options
menu, then displaying your ROI on this image with ROI definition ->
view.  Then you can check all the images are in aligment with the SPM
checkreg button (well, 8 at a time at least).

If that is not the problem, sometimes you will find for an ROI at the
edge of the brain that your images in the design do not completely
overlap, so that the ROI only contains voxels where at least one of
the images in the design contains NaN.

If the ROI is very small, and right at the edge of the brain, and
there are NaNs in the images, this can also be a problem, because
MarsBaR by default uses trilinear resampling, which can cause NaNs to
be created at the edge of the brain, as a result of sampling next to
NaN values.   You can change the MarsBaR resampling for a particular
ROI from the command line; something like this:

roi = maroi('load', 'my_roi.mat');
roi = spm_hold(roi, 0); % set resampling to nearest neighbour
saveroi(roi, 'my_new_roi.mat');