[Eeglablist] verifying my bootleg artifact subspace reconstruction...

Ian Jackson ianjackso at reed.edu
Mon Nov 23 19:03:31 PST 2020


Hi forum folks,

I'm attempting to implement what I believe is some form of artifact
subspace reconstruction using ICA that basically takes the GUI-rejected
components, sets them all to zero, and reworks them into the data. This
approach is based off of a paper (Esfahani & Sundararajan, 2012) that used
the same technique, and is done so that a 2nd ICA can be run on the
"artifact free" (or artifact reduced, if you prefer) data. For your
reference, I've pasted my code here.

-------------------------------------------------------------------
......
% ICA is run on an EEG struct before this, and pop_selectcomps(EEG) has
also been run

ICx = EEG.icawinv*EEG.data(EEG.icachansind,:); % create independent
components (EEG.icaact is always empty for some reason, so I construct it
here)

% Set any components we want to reject to zero
ICx(EEG.reject.gcompreject == 1,:) =
zeros(size(ICx(EEG.reject.gcompreject==1,:)));

% use artifact rejected ICx to create a new X^
EEG.data(EEG.icachansind,:) = EEG.icaweights*ICx;

-------------------------------------------------------------------

Does my implementation look correct, or am I missing something about how
ICA works in EEGLAB? Any brief pointers would be really appreciated!

Thank you!

Regards,
Ian Jackson
Reed College



More information about the eeglablist mailing list