[FieldTrip] EEG beamformer source analyses

Patrick Wiegel patrick.wiegel at sport.uni-freiburg.de
Tue Sep 15 10:55:12 CEST 2020


Dear Fieldtrip community,

I am a PhD student from Germany and I am working with EEG data. I would like to do Beamformer source analyses on power data.

I don’t have individual MRIs or related electrode positions available, so I am taking the standard MRI and BEM headmodel from the fieldtrip templates. Doing the source_analyses, I am getting an error message. Can anyone tell me if I missed something and what the reason for that error is? The error appears when running the last part of the script ft_sourceanalyses:



the input is freq data with 64 channels, 1 frequencybins and no timebins
Undefined function or variable 'fieldname'.

Error in ft_checkconfig (line 307)
    for i=1:length(fieldname)

Error in ft_sourceanalysis (line 217)
cfg = ft_checkconfig(cfg, 'createtopcfg', cfg.method);

Error in BEAMformer (line 116)
sourceAll = ft_sourceanalysis(cfg, frequ_all);


I added my code below. I would appreciate any help. I added information on my existing variables below the code.

Best, Patrick

%% import EEG data
EEG_Data = eeglab2fieldtrip( EEG, 'raw', 'none' );



%% define trials for frequency analyses
cfg = [];
cfg.trials = Indexes_correct{1, 1};
cfg.toilim = [0.25 0.55];
data_fed_correct = ft_redefinetrial(cfg, EEG_Data);





cfg = [];
cfg.trials = Indexes_incorrect{1, 1};
cfg.toilim = [0.25 0.55];
data_fed_incorrect = ft_redefinetrial(cfg, EEG_Data);



%% run frequenc analyses
cfg = [];
cfg.method    = 'mtmfft';
cfg.output    = 'powandcsd';
cfg.tapsmofrq = 4;
cfg.foilim    = [25 25];
frequ_correct = ft_freqanalysis(cfg, data_fed_correct);



cfg = [];
cfg.method    = 'mtmfft';
cfg.output    = 'powandcsd';
cfg.tapsmofrq = 4;
cfg.foilim    = [25 25];
frequ_incorrect = ft_freqanalysis(cfg, data_fed_incorrect);



cfg = [];
cfg.method    = 'mtmfft';
cfg.output    = 'powandcsd';
cfg.tapsmofrq = 4;
cfg.foilim    = [25 25];
frequ_all = ft_freqanalysis(cfg,EEG_Data);





%% load MRI and BEM templates
load('/Users/patrickwiegel/Documents/MATLAB/Scripts/2020/TF_Data/fieldtrip-20200603/template/headmodel/standard_bem.mat')
load('/Users/patrickwiegel/Documents/MATLAB/Scripts/2020/TF_Data/fieldtrip-20200603/template/headmodel/standard_mri.mat')



%% segment mri
cfg = [];
cfg.write      = 'no';
[segmentedmri] = ft_volumesegment(cfg, mri);



disp(segmentedmri)
%%
mri = ft_volumereslice(cfg, segmentedmri);
display(mri)





%% align electrodes
load('elec_aligned')
elec_aligned = ft_convert_units(elec_aligned, 'cm');
vol = ft_convert_units(vol, 'cm'); % Convert the vol to cm, because the CTF convenction is to express everything in cm.



%%
[headmodel, elec_aligned]=ft_prepare_vol_sens (vol,elec_aligned);



cfg           = [];
cfg.method    = 'interactive';
cfg.elec      = elec_aligned;
cfg.headshape = headmodel.bnd(1);
elec_aligned  = ft_electroderealign(cfg);



%%
% construct the dipole grid in the template brain coordinates
% the negative inwardshift means an outward shift of the brain surface for inside/outside detection
cfg              = [];
cfg.resolution   = 1;
cfg.tight        = 'yes';
cfg.inwardshift  = -1.5;
cfg.headmodel    = headmodel;
sourcemodel    = ft_prepare_sourcemodel(cfg);



%%
cfg              = [];
cfg.method       = 'dics';
cfg.frequency    = 25;
cfg.sourcemodel  = sourcemodel;
cfg.headmodel    = headmodel;
cfg.elec         = elec_aligned;
cfg.dics.projectnoise = 'yes';
cfg.dics.lambda       = '5%';
cfg.dics.keepfilter   = 'yes';
cfg.dics.realfilter   = 'yes';
sourceAll = ft_sourceanalysis(cfg, frequ_all);





sourcemodel =

  struct with fields:

       dim: [17 22 18]
       pos: [6732×3 double]
      unit: 'cm'
    inside: [6732×1 logical]
       cfg: [1×1 struct]





elec_aligned =

  struct with fields:

        chanpos: [64×3 double]
       chantype: {64×1 cell}
       chanunit: {64×1 cell}
        elecpos: [64×3 double]
    homogeneous: [4×4 double]
          label: {1×64 cell}
            tra: [64×64 double]
           type: 'eeg1010'
           unit: 'cm'
            cfg: [1×1 struct]





headmodel =

  struct with fields:

                    bnd: [1×3 struct]
                   cond: [0.3300 0.0041 0.3300]
                    mat: [64×3000 double]
                   type: 'dipoli'
                   unit: 'cm'
           skin_surface: 1
    inner_skull_surface: 3
                 source: 3


Patrick Wiegel
Department of Sport and Sport Science

University of Freiburg
Sandfangweg 4
79117 Freiburg i. Br .

phone: +49 (0)761/ 203-4550
email: patrick.wiegel at sport.uni-freiburg.de<mailto:patrick.wiegel at sport.uni-freiburg.de>
web: www.sport.uni-freiburg.de

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20200915/3704ca8e/attachment-0001.htm>


More information about the fieldtrip mailing list