[FieldTrip] error in ft_prepare_headmodel

Tom Marshall tom.marshall at psy.ox.ac.uk
Wed Jan 10 19:42:29 CET 2018

Hi Arjen and JM,

Arjen - thanks for the golden tip!

As suggested, I explicitly added the SPM12 toolbox and called it in the cfg.

[status] = ft_hastoolbox('SPM12', 1, 0);

cfg                = [];
cfg.grid.warpmni   = 'yes';
cfg.grid.template  = template_grid;
cfg.grid.nonlinear = 'yes'; % use non-linear normalization
cfg.spmversion     = 'SPM12';
cfg.mri                = mri;
sourcemodel        = ft_prepare_sourcemodel(cfg);

However, this didn't totally solve the problem. At one point in ft_prepare_sourcemodel (line 636) ft_volumenormalise is called with a new cfg ('tmpcfg'). The choice to use SPM12 doesn't propagate to tmpcfg so fieldtrip adds SPM8 anyway when it calls ft_volumenormalise.

I fixed this by adding the following to ft_prepare_sourcemodel at line 633...

tmpcfg.spmversion = cfg.spmversion;

...and voila! A nice warped source model :)

Should I file this as a bug?

Best and thanks for the help,

From: fieldtrip-bounces at science.ru.nl [fieldtrip-bounces at science.ru.nl] on behalf of Arjen Stolk [a.stolk8 at gmail.com]
Sent: 10 January 2018 16:16
To: FieldTrip discussion list
Subject: Re: [FieldTrip] error in ft_prepare_headmodel

Hi Tom,

As another work around, you could try using spm12 functionality. cfg.spmversion = ‘spm12’ if the function supports it, or by manually putting it on the path with ft_hastoolbox. There may be differences in the algorithm/outcome between versions, so you may want to be consistent in its use across subjects.


On Jan 10, 2018, at 12:36 AM, Schoffelen, J.M. (Jan Mathijs) <jan.schoffelen at donders.ru.nl<mailto:jan.schoffelen at donders.ru.nl>> wrote:

Dear Tom,

To me, this looks like a platform/MATLAB version specific issue with the compiled mex-files. Anecdotally, MATLAB2017a on a Mac suffers from not knowing to handle the precompiled stuff that comes with FieldTrip/SPM. Either you could use a lower matlab version (e.g. 2016b, which as far as I know does not suffer from this), or you could try and recompile the affected mex-files from the original c-code with the matlab mex-command. See http://bit.ly/2DeuNlX for more info.

Best wishes,

On 9 Jan 2018, at 17:27, Tom Marshall <tom.marshall at psy.ox.ac.uk<mailto:tom.marshall at psy.ox.ac.uk>> wrote:

Howdy 'Trippers,

I got a weird error when trying to create a template headmodel using ft_prepare_headmodel (basically just following the steps in the tutorial 'Creating a sourcemodel for source-reconstruction of MEG or EEG data').

After loading and segmenting the template brain I called ft_prepare_headmodel using the suggested parameters.

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

This gave the following error.

Error using ft_notification (line 314)
please specificy cfg.tissue and pass an appropriate segmented MRI as input data

Error in ft_error (line 39)

Error in ft_prepare_headmodel (line 354)
          ft_error('please specificy cfg.tissue and pass an appropriate segmented
          MRI as input data')

So I added cfg.tissue...

cfg          = [];
cfg.method   = 'singleshell';
cfg.tissue   = 'brain';
template_headmodel = ft_prepare_headmodel(cfg, template_seg);

...and this upset fieldtrip. After printing 'smoothing brain with a 5-voxel FWHM kernel', it hung for 10-15 minutes, then threw an error with lots of 'Missing symbol' statements (see below - there are a few hundred more, I just copypasted the last two).

Missing symbol '_vm_allocate' required by
Missing symbol '_vm_deallocate' required by

Error in spm_smooth>smooth1 (line 105)

Error in spm_smooth (line 40)

Error in volumesmooth (line 18)
spm_smooth(output, output, fwhm);

Error in ft_datatype_segmentation (line 229)
          brain = volumesmooth(brain,    smooth,    'brain');

Error in prepare_mesh_segmentation (line 95)
    mri = ft_datatype_segmentation(mri, 'segmentationstyle', 'probabilistic',
    'hasbrain', 'yes');

Error in ft_prepare_mesh (line 147)
    bnd = prepare_mesh_segmentation(cfg, mri);

Error in ft_prepare_headmodel (line 337)
        geometry = ft_prepare_mesh(tmpcfg, data);

It seems like the problem is somewhere deep down in spm commands that fieldtrip is calling, so maybe nobody has a clue. I'm hoping somebody has seen this before and knows of a fix...

In case it's relevant: I'm running fieldtrip-20170726 in matlab R2017a on a mac.

And ideas?

fieldtrip mailing list
fieldtrip at donders.ru.nl<mailto:fieldtrip at donders.ru.nl>

fieldtrip mailing list
fieldtrip at donders.ru.nl<mailto:fieldtrip at donders.ru.nl>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20180110/0f1477ae/attachment-0002.html>

More information about the fieldtrip mailing list