[FieldTrip] Errors with downsampling and artifact rejection

Stephen Whitmarsh stephen.whitmarsh at gmail.com
Mon Jun 22 17:35:42 CEST 2020


Dear Gaëlle,

You are using default settings for downsampling, which will then try to
downsample to 256Hz. Your original samplerate is 1000Hz, so that isn't a
neat integer division.
I tried the following, and could reproduce your problem:

Fs = 1000;
data_eeg = [];
data_eeg.label = {'a','b','c'};
data_eeg.time{1} = 0:1/Fs:10;
data_eeg.trial{1} = rand(length(data_eeg.label),length(data_eeg.time{1}));
data_eeg.Fs = Fs;
data_eeg.sampleinfo = [1, length(data_eeg.time{1})];

% Doesn't work:
cfg = [];
[data_eeg] = ft_resampledata(cfg, data_eeg);

% Does work:
cfg = [];
cfg.resamplefs = 250;
[data_eeg] = ft_resampledata(cfg, data_eeg);

So that deals with your first problem. Not sure why it has a problem with
the downsampling to non-integer values, but it's good practice and much
faster to stick to that anyway.

Not sure what to do with the artefact detection though, or what you
expect;  it seems you are running it with some contradictory settings/ways
perhaps:
- use cfg.dataset if reading from disk directly OR give datastructure to
function is you already have data in memory
- use cfg.continuous when data is not segmented
- the comment "jump" suggests you use settings for SQUID jumps, i.e.
optimized for MEG, but that should not give an error :-)

I suspect you probably want to run artefact detection on your
segmented data, so remove those references to the data on disk (datafile,
headerfile), and the trl from the cfg, and give your segmented data as an
argument as you did here:
%[cfg, artifact_jump] = ft_artifact_zvalue(cfg, data_eeg); %no plot error,
but each trial has the same graph, also error using zeros

Let us know how it goes,

All the best,
Stephen











Op ma 22 jun. 2020 om 17:02 schreef Gaëlle Leys <gaelle.leys at kuleuven.be>:

> Dear Stephen,
>
> I have included the data structures and cfg's involved in the functions.
>
> 1)      A. data structure for resampling data (raw data after reading it
> in):
> data_eeg =
>   struct with fields:
> hdr: [1×1 struct]
> label: {129×1 cell}
> time: {[1×245726 double]}
> trial: {[129×245726 double]}
> fsample: 1000
> sampleinfo: [1 245726]
> elec: [1×1 struct]
> cfg: [1×1 struct]
>
> 1)      B. cfg for resampling data (I’m using all the default options for
> resampling):
>
> Cfg=[];
> [data_eeg] = ft_resampledata(cfg, data_eeg); % defaults are all OK
>
> 2)      A. data structure for artifact rejection (my data already epoched):
> data_eeg =
> struct with fields:
> hdr: [1×1 struct]
> label: {129×1 cell}
>  time: {1×108 cell}
>  trial: {1×108 cell}
>  fsample: 1000
>  sampleinfo: [108×2 double]
>  elec: [1×1 struct]
>  cfg: [1×1 struct]
>
>
> 2)      B. cfg for artifact rejection (taken from the automatic artifact
> rejection example):
> % jump
> cfg = [];
> cfg.trl = trl;
> cfg.datafile = '100_1_20200305.mff';
> cfg.headerfile = '100_1_20200305.mff';
> cfg.continuous = 'yes';
>
> % channel selection, cutoff and padding
> cfg.artfctdef.zvalue.channel = 'EEG';
> cfg.artfctdef.zvalue.cutoff = 20;
> cfg.artfctdef.zvalue.trlpadding = 0;
> cfg.artfctdef.zvalue.artpadding = 0;
> cfg.artfctdef.zvalue.fltpadding = 0;
>
> % algorithmic parameters
> cfg.artfctdef.zvalue.cumulative = 'yes';
> cfg.artfctdef.zvalue.medianfilter = 'yes';
> cfg.artfctdef.zvalue.medianfiltord = 9;
> cfg.artfctdef.zvalue.absdiff = 'yes';
>
> % make the process interactive
> cfg.artfctdef.zvalue.interactive = 'yes';
>
> [cfg, artifact_jump] = ft_artifact_zvalue(cfg); %plot error and error
> using zeros
> %[cfg, artifact_jump] = ft_artifact_zvalue(cfg, data_eeg); %no plot error,
> but each trial has the same graph, also error using zeros
>
>
> Kind regards,
> Gaëlle Leys
>
>
>
> -----Original Message-----
> From: fieldtrip <fieldtrip-bounces at science.ru.nl> On Behalf Of
> fieldtrip-request at science.ru.nl
> Sent: zaterdag 20 juni 2020 12:00
> To: fieldtrip at science.ru.nl
> Subject: fieldtrip Digest, Vol 115, Issue 22
>
> Send fieldtrip mailing list submissions to
>         fieldtrip at science.ru.nl
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> or, via email, send a message with subject or body 'help' to
>         fieldtrip-request at science.ru.nl
>
> You can reach the person managing the list at
>         fieldtrip-owner at science.ru.nl
>
> When replying, please edit your Subject line so it is more specific than
> "Re: Contents of fieldtrip digest..."
>
>
> Today's Topics:
>
>    1. Errors with downsampling and artifact rejection (Gaëlle Leys)
>    2. Re: Errors with downsampling and artifact rejection
>       (Stephen Whitmarsh)
>    3. MNI coordinates for the EEG easycap-M1 layout
>       (SILVA PEREIRA, SILVANA)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 19 Jun 2020 12:48:26 +0000
> From: Gaëlle Leys <gaelle.leys at kuleuven.be>
> To: "fieldtrip at science.ru.nl" <fieldtrip at science.ru.nl>
> Subject: [FieldTrip] Errors with downsampling and artifact rejection
> Message-ID:
>         <ccb89b4d31af42d3b4cd22485438f4ef at ICTS-S-EXMBX17.luna.kuleuven.be>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Dear Fieldtrip community,
>
> I have recently started with Fieldtrip for my EEG data processing and I am
> encountering some problems which I can't seem to resolve.
> I'm working with mff files from an EGI EEG system. I have no problem
> reading in and preprocessing the data. However, when trying to downsample
> and setup the automatic artifact removal, I'm getting some errors.
>
>
> 1)      When trying to downsample with the default options, these are the
> errors that I get:
> Error using resample>getSamples (line 357) The number of elements of Tx
> must match the number of rows of X when X is a matrix
>
> Error in resample>nonUniformResample (line 123) [x, tx] =
> getSamples(varargin{1:2});
>
> Error in resample (line 116)
>   [varargout{1:max(1,nargout)}] = nonUniformResample(method,varargin{:});
>
> Error in ft_resampledata (line 228)
>         newdat = transpose(resample(transpose(olddat),fsres,fsorig));
>
>                 I have tried downsampling before filtering, after
> filtering, on continuous data, or already segmented data. None of these
> things seem to resolve the error.
>
>
> 2)      When trying to set up the automatic artifact removal process and
> choosing yes for the interactive plot, I get a plotting error:
>
> Error using plot
>
> Vectors must be the same length.
>
>
>
> Error in ft_artifact_zvalue>redraw_cb (line 973)
>
>     plot(opt.h1, xval, yval, 'linestyle', '-', 'color', 'b',
> 'displayname', 'data');
>
>
>
> Error in ft_artifact_zvalue (line 512)
>
>   redraw_cb(h);
>
>         I've noticed that the xval and yval are different numbers, which
> of course doesn't allow plotting. It seems like the xval changes according
> to the epoch length, however the yval remains the same and equals the
> amount of samples in my continuous data.
>
>
> 3)      When choosing no for the interactive plot, I also get an error:
> Error using zeros
> Size inputs must be integers.
>
> Error in ft_artifact_zvalue (line 568)
> dum = zeros(1,max(opt.trl(:,2)));
>
> I've been looking into the functions and where it goes wrong, but I can't
> seem to pinpoint what exactly is causing these issues. Anyone here that can
> help or provide me some tips?
>
> Thanks in advance!
>
> Kind regards,
>
> Gaëlle Leys
>
> Research Associate
> Brain & Cognition
> Tiensestraat 102 box 3714
> 3000 Leuven
> Room PSI 02.33
> tel. +32 16 37 61 98
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20200619/e7e1bde8/attachment-0001.htm
> >
>
> ------------------------------
>
> Message: 2
> Date: Fri, 19 Jun 2020 15:08:21 +0200
> From: Stephen Whitmarsh <stephen.whitmarsh at gmail.com>
> To: FieldTrip discussion list <fieldtrip at science.ru.nl>
> Subject: Re: [FieldTrip] Errors with downsampling and artifact
>         rejection
> Message-ID:
>         <CAFrxm=
> w44QZ0C7xB4cpsqdy0D0ou5UcpHNM-q3bjyaqwwJxRwg at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Dear Gaëlle,
>
> To understand the problem it would be helpful to have 1) description of
> the data structures going in ft_resampledata (just type in command line and
> copy-paste the output) and the artefact detection function you are using,
> and 2) the configuration (cfg) you are using for those functions.
>
> Cheers,
> Stephen
>
>
> Op vr 19 jun. 2020 om 14:56 schreef Gaëlle Leys <gaelle.leys at kuleuven.be>:
>
> > Dear Fieldtrip community,
> >
> >
> >
> > I have recently started with Fieldtrip for my EEG data processing and
> > I am encountering some problems which I can’t seem to resolve.
> >
> > I’m working with mff files from an EGI EEG system. I have no problem
> > reading in and preprocessing the data. However, when trying to
> > downsample and setup the automatic artifact removal, I’m getting some
> errors.
> >
> >
> >
> > 1)      When trying to downsample with the default options, these are the
> > errors that I get:
> >
> > Error using resample>getSamples (line 357)
> >
> > The number of elements of Tx must match the number of rows of X when X
> > is a matrix
> >
> >
> >
> > Error in resample>nonUniformResample (line 123)
> >
> > [x, tx] = getSamples(varargin{1:2});
> >
> >
> >
> > Error in resample (line 116)
> >
> >   [varargout{1:max(1,nargout)}] =
> > nonUniformResample(method,varargin{:});
> >
> >
> >
> > Error in ft_resampledata (line 228)
> >
> >         newdat = transpose(resample(transpose(olddat),fsres,fsorig));
> >
> >
> >
> >                 I have tried downsampling before filtering, after
> > filtering, on continuous data, or already segmented data. None of
> > these things seem to resolve the error.
> >
> >
> >
> > 2)      When trying to set up the automatic artifact removal process and
> > choosing yes for the interactive plot, I get a plotting error:
> >
> > Error using plot
> >
> > Vectors must be the same length.
> >
> >
> >
> > Error in ft_artifact_zvalue>redraw_cb (line 973)
> >
> >     plot(opt.h1, xval, yval, 'linestyle', '-', 'color', 'b',
> > 'displayname', 'data');
> >
> >
> >
> > Error in ft_artifact_zvalue (line 512)
> >
> >   redraw_cb(h);
> >
> >
> >
> >         I’ve noticed that the xval and yval are different numbers,
> > which of course doesn’t allow plotting. It seems like the xval changes
> > according to the epoch length, however the yval remains the same and
> > equals the amount of samples in my continuous data.
> >
> >
> >
> > 3)      When choosing no for the interactive plot, I also get an error:
> >
> > Error using zeros
> >
> > Size inputs must be integers.
> >
> >
> >
> > Error in ft_artifact_zvalue (line 568)
> >
> > dum = zeros(1,max(opt.trl(:,2)));
> >
> >
> >
> > I’ve been looking into the functions and where it goes wrong, but I
> > can’t seem to pinpoint what exactly is causing these issues. Anyone
> > here that can help or provide me some tips?
> >
> >
> >
> > Thanks in advance!
> >
> >
> >
> > Kind regards,
> >
> >
> >
> > Gaëlle Leys
> >
> >
> >
> > Research Associate
> > Brain & Cognition
> > Tiensestraat 102 box 3714
> > 3000 Leuven
> >
> > Room PSI 02.33
> > tel. +32 16 37 61 98
> >
> >
> > _______________________________________________
> > fieldtrip mailing list
> > https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> > https://doi.org/10.1371/journal.pcbi.1002202
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20200619/137e31b1/attachment-0001.htm
> >
>
> ------------------------------
>
> Message: 3
> Date: Fri, 19 Jun 2020 18:58:36 +0200
> From: "SILVA PEREIRA, SILVANA" <silvana.silva at upf.edu>
> To: fieldtrip at science.ru.nl
> Subject: [FieldTrip] MNI coordinates for the EEG easycap-M1 layout
> Message-ID:
>         <
> CA+_MWm1NufDWa-fjR71OzQ5ab88ioyUT8OJ-QFYX9ABr7gNQrA at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Dear community,
>
> I've been struggling to find the 3D positions (montages) for the
> Acticap-64ch-standard2 on the web, which is a modified version of the
> easycap-M1, but I have not succeeded. In the Fieldtrip page
> http://www.fieldtriptoolbox.org/template/electrode/ you have the
> following:
>
> You can find the template 3-D electrode sets included in FieldTrip here <
> https://github.com/fieldtrip/fieldtrip/tree/master/template/electrode>.
>
> But in that link you only find a txt file with theta-phi coordinates
> (easycap-M1.txt). Is there any place where I could find these positions in
> MNI space?
>
> Thank you and best regards,
> Silvana
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20200619/c0adf7df/attachment-0001.htm
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> fieldtrip mailing list
> https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> _______________________________________________
> fieldtrip mailing list
> https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> https://doi.org/10.1371/journal.pcbi.1002202
>
>
> ------------------------------
>
> End of fieldtrip Digest, Vol 115, Issue 22
> ******************************************
>
> _______________________________________________
> fieldtrip mailing list
> https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> https://doi.org/10.1371/journal.pcbi.1002202
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20200622/3ef1e021/attachment.htm>


More information about the fieldtrip mailing list