SKUNKWRK 256 channel ICA filtering to remove eye artifacts
Original EEG data -> Flagclip(+-800 microVolt) -> 50 Hz lowpass filter
(already highpassed during recording)
EEGSCORE used to find bad channels
Matlab scripts writes data in EEGLAB format with bad channels removed
EEGLAB used to clean out time segments with several bad channels due to
movement or other non-eye artifacts
This "clean" data will be input to the ICA computations
Created four sets of interleaved electrodes
Adequate training for each ICA weight (~30-40 training
samples per weight)
Matlab memory constraints
Exactly the same time samples are submitted to ICA for each interleave
ICA eye movement components are identified for each interleave (same number for
each interleave)
These components are removed using EEGLAB and the ICA filtered interleaved sets
are used to reconstruct the ICA filtered 256 channel
data set with MASK file identifying bad channels and cleaining done in EEGLAB
prior to ICA
Rule of thumb for ICA: at least 3*NCHAN^2 training points or 196608 for 256 channels. Skunkwrk runs are 7 minutes at 500Hz sampling for 210,000 samples. Thus there are just enough samples for training. However, Matlab runs into memory problems with running this large an ICA. Decided to break data into four interleaved sets of channels. Each interleaved set contains the eye channels (Horizontal: 1,53,227,251; Vertical: 11,18,36,37,241,231) and consist of 71,75,71,69 channels, respectively.

For these interleaved sets there are approximately 210,000/(70^2) ~ 40 training samples per ica weight.
Data is first passed through a 50Hz lowpass filter to reduce EMG, 60Hz line noise and other potential non-brain noise sources.
Used 'extended' ICA option to check for sub-Gaussian sources. Training 'stop' limit set to 1E-07 (better than default 1E-06)
ICA components for sknk222r1_bcr_cl_intrlv1:

ICA component activations for sknk222r1_bcr_cl_intrlv1:

Original data for sknk222r1_bcr_cl_intrlv1:

ICA filtered data (components 1,2,3,5 removed) for
sknk222r1_bcr_cl_intrlv1_icaF:

Power spectrum for all 420 seconds of data at FP1 for
sknk222r1_bcr_cl_intrlv1:

Power spectrum for artifact free data (Gold standard, 133 sec). Over two-thirds
of data contained artifacts and was scored out.
Plot in time domain of ICA filtered blink for sknk222_r1 at FP1 (which is one
of the eye channels on the GSN256)

Blue - orig. data; ICA filtered data for interleave sets 1 - 4 are shown in
Brown, Black, Green and Magenta, respectively. Vert. microVolts; Horiz. Time (secs)
Result for three data processing paths:
sknk211

sknk221

sknk222

Plot of data from ICA eye components only (1,2,3,5):

Scalp plot of power for these data:

Effect of ICA filtering on variance of asymmetry scores. Used EEGLAB to look at sknk222r1_intrlv1_bcr_cl and the ICA filtered _icaF version. Data were converted to average reference in EEGLAB using the 61 channels in interleave 1. Electrode power estimates and asymmetry scores were estimated from one second time windows for the entire length of the cleaned data with no windows crossing discontinuities where bad data were removed. Means and variances were computed from log10(powerRight)-log10(powerLeft) alpha 8-13Hz for each of these one second windows.
sknk211r1_bcr_cl_intrlv1
sknk221r1_bcr_cl_intrlv1
sknk222r1_bcr_cl_intrlv1
Mean Variance
Mean Variance
Mean Variance
E36/E18 FP1/2 0.182 0.082
0.200 0.114
0.060 0.051
ICA filtered 0.002
0.062
-0.091 0.078
-0.004 0.022
E39/E225 F3/4 -
-
-0.334 0.117
-0.168 0.181
ICA filtered -
-
-0.231 0.104
-0.131 0.164
E54/E223 F7/8 -0.136 0.171
-0.502 0.125
-0.044 0.201
ICA filtered -0.231
0.191
-0.477 0.127
0.106 0.148
ICA EOG filtering decreases variances in almost all cases and looks like it is
most important at FP1/2 as would be expected
Shown below are histograms of the sknk221 data at FP1/2 with ICA filtered on
right:

