[FieldTrip] ICA on highpass filtered MEG data

Aaron Schurger aaron.schurger at gmail.com
Tue Aug 27 21:49:21 CEST 2013

I am not aware of any good way to remove microsaccade artifacts from
EEG or MEG data. ICA might find a microsaccade component if you have
sufficient data, but you will have to hunt through the components to
find the "right" one. The difficult question is how to know which is
the right component, or whether or not microsaccades are incorporated
into two or more components (or not at all). Having an MEG-compatible
eye tracker with a high sampling rate is what I would want.
Best wishes,

On Tue, Aug 27, 2013 at 8:44 PM, Nenad Polomac <polomacnenad at gmail.com> wrote:
> Dear Fieldtrip users,
> I have CTF 275 channels MEG data and I am interested in gamma band. For this
> purpose I would like to remove microsaccade artifacts from the data using
> the ICA. In order to obtain the microsacade components I have filtered data
> ( highpass and lowpass; 30-150 Hz) and than I've wanted to run ICA
> calculation. However, I've read here
> http://sccn.ucsd.edu/pipermail/eeglablist/2013/006710.html that after
> filtering data are more dependent and that is a big problem for ICA
> calculation. And I also experienced that ICA takes very long time and
> sometimes doesn't converge. So, to overcome this problem, the data
> dimensionality has to be reduced. I have found two different solutions from
> different sources.
> One solution might be to estimate variance with PCA and than choose the
> amount of variance that should stay in the data. e.g.
> [COEFF,SCORE,eigenvalues ] = princomp(data_matrix);
> A= cumsum(eigenvalues);
> num_of_comp=find(A/A(end)>0.98,1); % 98% is the percentage of variance that
> will be used for the ICA, 2% will be discarded
> This percentage will be the same for all subjects.
> The second option might be to use the same eigenvalue cutoff value for all
> subjects:
> [COEFF,SCORE,eigenvalues ] = princomp(data_matrix);
> A=(find(eigenvalues>0.005));  %0.005 here is just for example
> num_of_comp=A(end);
> The variable num_of_comp represents the number of component to which
> filtered data will be reduced before ICA.
> e.g.
>     cfg = [];
>     cfg.method = 'runica';
>     cfg.runica.pca = num_of_comp;
>     cfg.runica.maxsteps = 600;
>     cfg.runica.stop = 1e-7;
>     cfg.runica.extended = 1;
>     ica_comp = ft_componentanalysis(cfg, data);
> Finally, my question is which of this two methods is more objective? And is
> there any other possibility I should consider?
> I would like to add that in my case second calculation gives me less variant
> number of components among 22 subjects.
> Thank you in advance!
> All the best!
> Nenad
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip

Aaron Schurger, PhD
Post-doctoral researcher
INSERM U992 / NeuroSpin
CEA - Saclay, France
aaron.schurger at gmail.com

More information about the fieldtrip mailing list