[FieldTrip] sliding window for ICA

Aaron Schurger aaron.schurger at gmail.com
Sat Feb 22 16:37:27 CET 2014

See below...

On Sat, Feb 22, 2014 at 12:27 AM, Russell G Port <russgport at gmail.com> wrote:
> Hi All,
> I have come across a problem and was hoping that someone had experience/knew
> things that could be useful.I have some MEG data, and the effort currently
> is to remove noise and artifact. I have the line noise reduction working
> fine, the question that faces me is the following. When I first read in my
> data I have the option of one of two methods. I can read it in as 1 second
> epoch for the whole length of the experiment (contiguous time bins, with no
> regard to events), or create 1 second epochs centered around a certain
> trigger (the data contains 4 different triggers). Initially I wanted to read
> in 1 second epochs (that spanned the entire dataset), clean it of artifacts
> (jumps, muscle, EOG,ECG, anything else), which would remove bad trials and
> components. I had then hoped to redefined the epoch, so that I could create
> 4 separate subsets of data, each centered around a separate trigger. It
> appears that I cannot do this (fieldtrip actually refuses this
> specifically). Is this because of issues with phase/jitter when putting the
> samples back together in different time sets? Second, it has been suggested
> that we perform ICA analysis to detect EOG and ECG artifacts on the data
> parsed just by timing (i.e. 1second bins contiguous for the entire length of
> the data but no relation to triggers), and have the component rejection scan
> my trials that are actually binned the based on triggers to remove the
> components; even though this is not the exact epochs used to classify the
> components. Is this possible?

This is the preferred way to do it. Read in all of your data in 1- or
2-second epochs at arbitrary points (just one right after another).
Run ICA on these epochs and save the components that you get (call
this 'comp'). Then make a note of the components that you want to
remove (usually blink, eye movement, and heart). Now read in your data
time-locked to your triggers and use the previously-defined components
to clean up the data (use the cfg to specify which components you want
to remove).
[data] = ft_rejectcomponent(cfg, comp, data);

> While I think it would be better to do the artifact correction on the whole
> dataset (all time/triggers included), would it actually be better to first
> define trials by triggers and then repeat everything (artifact
> rejection-wise)? This is very easy to do (and I have), the only issue comes
> when trying to compare the using ft_timelockanalysis/ft_freqanalysis (as in
> http://fieldtrip.fcdonders.nl/example/use_independent_component_analysis_ica_to_remove_ecg_artifacts?s[]=ecg).
> I have the issue that when I used ft_artifact_ecg to detect peaks in the ECG
> channel (via z scores), zeros and NaNs are returned, and it fails to graph;
> since often the ECG timing occurs with such timing that the full pre/post
> time extends past what is actually in the trial. Is it proper just to remove
> all ECG events that cross the boundaries of the trigger based trials from
> the trial definitions  used in next step. Here the sections of data
> contaminated with ECG are parsed and then tested to see coherence to the ICA
> components? I would fear that this would produce erroneous results, since
> the data for the ica would include the partial ECG event that I threw out.
> Best
> Russ Port
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip

Aaron Schurger, PhD
Senior researcher
Laboratory of Cognitive Neuroscience
Brain-Mind Institute, Department of Life Sciences
École Polytechnique Fédérale de Lausanne
Station 19, AI 2101
1015 Lausanne, Switzerland
+41 21 693 1771
aaron.schurger at epfl.ch

More information about the fieldtrip mailing list