[FieldTrip] Baseline removal errors in trials preprocessing
Stephen Whitmarsh
stephen.whitmarsh at gmail.com
Thu Jan 17 14:52:45 CET 2019
Dear Marion,
Your script is a bit messy. I would start with:
1) Always clear your cfg before calling a FT function. Don’t go around saving different cfg’s. This is the nr. 1 cause of confusing results J
2) Load/segment etc. your data first with ft_preprocessing. Then call ft_preprocessing again to baseline correct, entering the output of the first run.
I have a hunch that might fix your problem. So, something like:
% load your data, apply rereferencing and segment in one go
cfg = [];
cfg.dataset = filename_Data;
cfg.reref = 'yes';
cfg.refchannel = {'EXG3', 'EXG4'} ;
cfg.refmethod = 'avg';
cfg.trl = … ;
cfg = ft_definetrial(cfg);
data_Raw = ft_preprocessing(cfg);
% somehow plot your data to check
figure ; plot(data_Raw.trial{1}(1, :)) ;
% baseline correct your raw data structure, method 1
cfg = [] ;
cfg.demean = ‘yes’ ;
cfg.baselinewindow = [0 0.1] ;
data_Raw_reref_1 = ft_preprocessing(cfg, data_Raw);
% somehow plot your data to check
figure ; plot(data_Raw_reref_1.trial{1}(1, :)) ;
% baseline correct your raw data structure, method 2
cfg = [] ;
cfg.demean = ‘yes’ ;
cfg.baselinewindow = [-1 -0.1] ; % or whatever
data_Raw_reref_2 = ft_preprocessing(cfg, data_Raw);
% somehow plot your data to check
figure ; plot(data_Raw_reref_2.trial{1}(1, :)) ;
And oh, wait, I see what you did there… Don’t use different variables for your cfg, (e.g. cfg1, cfg2, etc.). See the mistake? Those are too easy to make if you don’t do something like the above.
Cheers and good FieldTripping!
Stepen
From: fieldtrip <fieldtrip-bounces at science.ru.nl> On Behalf Of Marion Vincent
Sent: Thursday, January 17, 2019 2:00 PM
To: FieldTrip discussion list <fieldtrip at science.ru.nl>
Subject: Re: [FieldTrip] Baseline removal errors in trials preprocessing
Dear Stephen,
Here is my script :
%segmentation
seg_window=[0.1 1]; % in seconds %preStim/postStim
%config
cfg= [];
cfg.dataset = filename_Data;
%% *********** TRIAL DEFINITION PART *********** (that works )
[…]
cfg = ft_definetrial(cfg);
% *********** Re-References *********** (that also works )
cfg.reref = 'yes';
cfg.refchannel = {'EXG3', 'EXG4'};% electrode 131/132 // cell-array with new EEG reference channel(s), this can be 'all' for a common average reference
cfg.refmethod = 'avg'; % 'avg', 'median', or 'bipolar' for bipolar derivation of sequential channels (default = 'avg')
data_Raw = ft_preprocessing(cfg);
%% *********** Baseline ***********
cfg.demean = 'yes';
cfg1=cfg;
cfg1.baselinewindow = [-seg_window(1) 0 ];
cfg2=cfg;
cfg2.baselinewindow = [0 0.1];
cfg3=cfg;
cfg3.baselinewindow = 'all';
data1 = ft_preprocessing(cfg1);
data2 = ft_preprocessing(cfg2);
data3 = ft_preprocessing(cfg3);
ð I’ve attached the figure with the results.
PS : In fact I made a mistake in my previous email : the result wasn’t the same when the Baseline window was ‘all’.
Let me know if you need more informations.
Thanks for your help.
Marion
Marion VINCENT
Eng., PhD , CNRS Research Engineer
Tel: +33 607 59 46 76
Laboratoire SCALab UMR CNRS 9193
Université Lille 3
BP 60149
59653 Villeneuve d'Ascq Cedex
http://scalab.cnrs.fr
--------------------------------------------
L’Imaginarium / SCV-IrDIVE Equipex
99a Boulevard Descat
59200 Tourcoing
http://www.irdive.fr <http://www.irdive.fr/> /
De : Stephen Whitmarsh <mailto:stephen.whitmarsh at gmail.com>
Envoyé le :jeudi 17 janvier 2019 11:51
À : 'FieldTrip discussion list' <mailto:fieldtrip at science.ru.nl>
Objet :Re: [FieldTrip] Baseline removal errors in trials preprocessing
Dear Marion,
It sounds it might indeed be something as simple as a typo. Could you paste the part of your script – from baseline removal to plotting (where you don’t see a difference) - so we can take a look?
Cheers,
Stephen
From: fieldtrip <fieldtrip-bounces at science.ru.nl <mailto:fieldtrip-bounces at science.ru.nl> > On Behalf Of Marion Vincent
Sent: Thursday, January 17, 2019 10:37 AM
To: fieldtrip at science.ru.nl <mailto:fieldtrip at science.ru.nl>
Subject: [FieldTrip] Baseline removal errors in trials preprocessing
Dear FIeldtrip users,
I’m new in using Fieldtrip for EEG processing and I’ve encountred some issues while removing the Baseline of my trials.
I’m working on EEG signals recorded with the BioSemi system. My pre-processing method is :
(1) Re-referecing the channels (necessary with BioSemi)
(2) Trial definition
(3) Baseline removal
I’ve read on the documentation that ft_preprocessing xcan have several cfg parameter for the Baseline removal :
% cfg.demean = 'yes';%'no' or 'yes', whether to apply baseline correction (default = 'no')
% cfg.baselinewindow = 'all';%[begin end] ;%in seconds, the default is the complete trial (default = 'all')
% cfg.detrend = 'no'; %'no' or 'yes', remove linear trend from the data (done per trial) (default = 'no')
I wanted to remove a Baseline defined as the average of a given window preceeding my stimulus onset.
I tried to use : cfg.baselinewindow = [-0.5 0 ]; cfg.baselinewindow = [0 0.1] or the default window .
But the problem is that I always have the same result, no matter the window I use : the first point of my trial is put to zero and substracted to all my trial.
I’m sure I’m doing something wrong (and that the answer is very simple), but I can’t manage to understand what is the issue.
Do you have any advice ?
Thanks !
Marion
Marion VINCENT
Eng., PhD , CNRS Research Engineer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20190117/952f652b/attachment-0002.html>
More information about the fieldtrip
mailing list