[FieldTrip] unit problem when following example script: Create MNI-aligned grids in individual head-space BUG?

Ingrid Nieuwenhuis inieuwenhuis at berkeley.edu
Thu Apr 11 20:30:31 CEST 2013


Hi all,

When I follow the code according to the example matlab script "Create 
MNI-aligned grids in individual head-space" something goes all wrong 
with the units.

I've followed the code (pasted below, from the wiki), but when I make 
the figure with the template head model and dipole grid, it's wrong (see 
attached ..._problem.png). The dipole grid is tiny in the bottom of the 
head model. The black area is the dipole grid, not good.
template_grid =
       xgrid: [1x41 double]
       ygrid: [1x41 double]
       zgrid: [1x41 double]
         dim: [41 41 41]
         pos: [68921x3 double]
        unit: 'mm'
      inside: [1x68910 double]
     outside: [758 759 760 761 799 800 801 802 843 884 925]
         cfg: [1x1 struct]

It's a problem with the units, because the template grid has 'mm' in the 
unit field, but when I look in the xgrid, ygrid, zgrid and pos fields 
the numbers are clearly cm not mm. However, when I multiply my xyzgrid 
and pos field by 10, the grid is not tight (see attached 
..._multiplied10.png). It looks like the unit problem messed up the 
determination of what's inside and outside. As you can see in the 
template_grid, there are only a few grid point outside, which is clearly 
not correct (maybe inside/outside was determined on wrong units?).

So, it looks like a bug to me, or am I doing something wrong? I'm using 
the newest FT version.

Thanks,
Ingrid

%%% CODE FROM WIKI %%%
template          = ft_read_mri([cur_path_FT 'external', filesep, 
'spm8', filesep,'templates', filesep,'T1.nii']);
template.coordsys = 'spm'; % so that FieldTrip knows how to interpret 
the coordinate system

% segment the template brain and construct a volume conduction model 
(i.e. head model): this is needed
% for the inside/outside detection of voxels.
cfg          = [];
template_seg = ft_volumesegment(cfg, template);

cfg          = [];
cfg.method   = 'singleshell';
template_vol = ft_prepare_headmodel(cfg, template_seg);

% construct the dipole grid in the template brain coordinates
% the source units are in cm
% the negative inwardshift means an outward shift of the brain surface 
for inside/outside detection
cfg = [];
cfg.grid.xgrid  = -20:1:20;
cfg.grid.ygrid  = -20:1:20;
cfg.grid.zgrid  = -20:1:20;
cfg.grid.unit   = 'cm';
cfg.grid.tight  = 'yes';
cfg.inwardshift = -1.5;
cfg.vol        = template_vol;
template_grid  = ft_prepare_sourcemodel(cfg);

% make a figure with the template head model and dipole grid
figure
hold on
ft_plot_vol(template_vol);
ft_plot_mesh(template_grid);

-- 
Ingrid Nieuwenhuis PhD
Postdoctoral Fellow
Sleep and Neuroimaging Laboratory
Department of Psychology
University of California, Berkeley
California 94720-1650
Tolman Hall, room 5305

-------------- next part --------------
A non-text attachment was scrubbed...
Name: templatehead_dipolegrid_problem.png
Type: image/png
Size: 19636 bytes
Desc: not available
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20130411/f9215e52/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: templatehead_dipolegrid_multiplied10.png
Type: image/png
Size: 9051 bytes
Desc: not available
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20130411/f9215e52/attachment-0001.png>


More information about the fieldtrip mailing list