eeglab workshop iv, june 26-29, 2007, aspet, france: scott makeig – component clustering 1...
TRANSCRIPT
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 1
Independent Component Clustering
• Why cluster components?
• EEGLAB studysets: the STUDY structure
• Creating a STUDY – pop_createstudy()
• Preparing the clustering measures – pop_preclust()
• Performing the clustering – pop_clust()
• Reviewing the results – pop_clustedit()
• Cluster editing – pop_clustedit()
• Hierarchical clustering
• Signal processing cluster activities – cls_envtopo()
• Clustering example – STUDY of 5 datasets
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 2
Why cluster components?
• ICA transforms the data from a channel basis
(activity recorded at each channel)
• to a component basis (activity computed at
each independent spatially-filtered cortical or
non-cortical component process).
• Normally, EEG researchers assume that
electrode, say F7 == F7 == F7 ... in each subject
– and then ‘cluster‘ their data by channel ...
• But this is only roughly correct!
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 3S. Makeig, 2005
ScalpICs
IC1
IC2
IC3
IC4
Cortex∑
Example: First Subject
Electrode F7
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 4S. Makeig, 2005
Second Subject
ScalpICs
IC1
IC2
IC3
IC4
Cortex∑
Electrode F7
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 5S. Makeig, 2005
ScalpICs
IC1
IC2
IC3
IC4
CortexElectrode F7
∑
Third Subject
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 6S. Makeig, 2005
ScalpICs
IC1
IC2
IC3
IC4
Cortex∑
Fourth Subject
Electrode F7
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 7
Largest 30 independent components (single subject)
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 8
The same problems hold for clustering independent components
Across Ss, components don’t even have “the same” scalp maps!
Are “the same” components found across subjects?
• What should define “the same” (i.e., “component equivalence”)?
• Similar scalp maps?
• Similar cortical or 3-D equivalent dipole locations?
• Similar activity power spectra?
• Similar ERPs?
• Similar ERSPs?
• Similar ITCs?
• OR …, Similar combinations of the above? …
So how to cluster components?
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 9
Does the spatial distribution of independent components
depend on the task the subject performs?
i.e.
Do “the same” components (and clusters) appear for
every task?
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 10
Equivalent dipole density
Onton et al., 2005
Sternberg letter memory task
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 11
Equivalent dipole density
Onton et al., 2005
Letter twoback with feedback
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 12
Equivalent dipole density
Onton et al., 2005
Auditory oddball plus novel sounds
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 13
Equivalent dipole density
Onton et al., 2005
Emotion imagery task
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 14
Equivalent dipole density Exp I
Onton et al., 2005
Word memory (old/new) task
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 15
Equivalent dipole density Exp II
Onton et al., 2005
Visually cued button press task
Onton et al., ‘05
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 16
… Some caveats
Here,• The electrode locations were not individualized.• MR images were not available co-registration crude.• Single versus dual-dipole model selection was subjective.• Different electrode montages possible location effects
Onton, 2005
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 17
Clustering by spectra (1 subject)
Makeig et al., unpublished
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 18
Visual Selective Attention Task
15 subjects
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 20
Left mu Right mu
Makeig et al., submitted
Clustering ICA components by eye
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 21
• Clustered components from 15 Ss using a ‘component distance metric’ incorporating differences between their (weighted) scalp maps, dipole locations, spectra, ERP, ERSP, and ITC patterns.
• Hand-adjusted clusters to remove outliers.
• Determined time/frequency regions of significant ERSP and ITC for each component using permutation-based statistics.
• Used binomial statistics to highlight time/frequency regions significantly active within clusters.
Semi-automated clustering
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 22
40
50
60
10 20
40
50
60
40
50
60
Re
lati
ve
Po
we
r (d
B)
Frequency (Hz)10 20 10 20
9 Ss11 Comp
13 Ss 23 Comp
9 Ss 15 Comp
10 Ss13 Comp
8 Ss 9 Comp
8 Ss12 Comp
9 Ss 11 Comp
11 Ss17 Comp
+mean
-
αCP αRPαLP
μRCμLC
ΘFC
CM
LCLC
N1 Component
Clusters
Makeig et al., Science 2002
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 28
Complex event-related dynamics underlie ‘the’ P300
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 29
Distributed theta burst event - brainmovie3d()
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 30Onton et al., NeuroImage 2005
A FM cluster during working memory
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 31Onton et al., NeuroImage 2005
The FM cluster accounts for all the memory effect
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 32
• Naïve realism (a.k.a. “expertise”)
• “Yes! … because I know one when I see one!”
• “If it appears where Mu components appear,
and acts like Mu components act,
then it IS a Mu component!”
• Convergent evidence (a.k.a., “doublechecking”)
• Two possible approaches:
• Cluster on PLACE Check ACTIVITY consistency (re task)
• Cluster on ACTIVITY Check PLACE consistency
• Absolute truth:
• More ideal forward and inverse models
• Invasive multiscale recordings + modeling
Are obtained component clusters “real“?
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 33
Not all subjects contribute components to each cluster.
Why not?
• Different numbers of artifact components (~INR)
• Subject differences!?
• Is my subject group a Gaussian cloud??
subject space
Should all subjects be included in each cluster?
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 34
Known Uncertainty
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 35
Cognitive Events
Individual Subjects
The goal of cognitive neuroscience
Phys. Data
Model
Value
AnticipationRe-evaluation
Imagination
Genetics
Culture
Age / Gender
Personality
Multiple Modes
Perturbations Modulations
Distributed Dynamics
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 36
EEGLAB clustering procedure
1. Identify a set of datasets as an EEGLAB study or ‘studyset’.
2. Specify the subject group, subject code, condition and session of
each dataset in the study.
3. Identify components to cluster in each study dataset.
4. Decide on component measures to use in clustering the study
and/or to evaluate the obtained component clusters.
5. Compute the component measures for each study dataset.
6. Cluster the components on these component measures.
7. Review the obtained clusters (e.g., their scalp maps, dipoles, and
activity measures).
8. Edit the clusters (manually remove/shift components, make sub-
clusters, merge clusters, re-cluster).
9. Perform signal processing within or between selected clusters.
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 37
Clustering strategy
1. Cluster on multiple measures (dipole locations, scalp maps, spectra,
ERPs, ITCs, ERSPs) in one or more conditions.
2. Reduce the dimension of each measure to a principal component
subspace.
3. Compose a PCA-reduced position vector for each component.
4. Cluster the composed component vectors using k-means or other.
5. Use the computed component measures (not PCA-reduced) to visualize
the activities and spatial properties of the clustered components.
6. Compute and visualize the cluster-mean measures.
7. Use the clustered study set data as input into std_ functions.
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 38
Cluster ERP contributions - clust_envtopo()
clust_envtopo(STUDY, ALLEEG, 'clusters', [], 'subclus',[3 7 18 20], 'env_erp', 'all', ‘vert', -1100, 'baseline', [-200 0], 'diff', [2 1], 'limits', [-1300 1500 -5 5], 'only_precomp', 'on', 'clustnums' , -4, 'limcontrib', [300 600]);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 39
Component clustering research issues
• Alternative clustering methods
• Clustering goodness-of-fit
• Cluster plotting details
• Add new pre-clustering measures
• Study subject differences!?
• EEGLAB study design issues
• Vector of conditions more general exp. designs
• More complete study statistics
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 41
Create a STUDY - pop_study()
>> [ STUDY ALLEEG] = pop_study(ALLEEG);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 42
Compute cluster measures - pop_preclust()
>> [ALLEEG, STUDY] = pop_preclust(ALLEEG, STUDY);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 43
Perform clustering - pop_clust()
>> [STUDY] = pop_clust(ALLEEG, STUDY);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 44
Plot cluster-mean scalp maps - pop_culstedit()
>> [STUDY] = pop_clustedit(ALLEEG, STUDY, [2:22]);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 45
Plot the properties of a mu rhythm cluster
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 46
Rename a cluster
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 47
Merge clusters
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 48
Remove components ( outliers cluster #2)
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 49
Reassign components to clusters
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 50
Split a cluster - pop_preclust()
>> [ALLEEG, STUDY] = pop_preclust(ALLEEG, STUDY, 14 );
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 51
Sub-cluster - pop_clust()
>> [STUDY] = pop_clust(ALLEEG, STUDY);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 52
Inspect sub-clusters - pop_clustedit()
>> [STUDY] = pop_clustedit(ALLEEG, STUDY, [23:24]);
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 53
Hierarchical clustering – mu cluster separation
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 54
function [STUDY,grand_erpdiff,clusnval] = std_ERPdiff(STUDY,ALLEEG, clust, cond1, cond2)
% computes the difference ERP of cond1 - cond2
if ~isfield(STUDY.cluster(clust).centroid, 'erp')
STUDY = std_centroid(STUDY,ALLEEG, clust , 'erp');
end % compute cluster grand mean (= centroid) ERPs
% Compute the grand mean difference ERP
grand_erpdiff = STUDY.cluster(clust).centroid.erp{cond1} - STUDY.cluster(clust).centroid.erp{cond2};
try % collect the single-component ERPs for cond1
clusnval1 = std_clusread(STUDY, ALLEEG, clust,'erp',cond1);
catch, disp([ 'ERPdiff: Some ERP information is missing, aborting.'] ); return;
end
try % collect the single-component ERPs for cond2
clusnval2 = std_clusread(STUDY, ALLEEG, clust,'erp',cond2);
catch, disp([ 'ERPdiff: Some ERP information is missing, aborting.'] ); return;
end
% Compute the difference ERPs for the single components
clusnval.erp = clusnval1.erp - clusnval2.erp;
return
Using cluster info – std_ERPdiff()
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 55
Condition difference ERPs
EEGLAB Workshop IV, June 26-29, 2007, Aspet, France: Scott Makeig – Component Clustering 56
Exercise – pop_clustedit()
• Go to the STUDY directory>> cd [study]
• Load STUDY of 5 sample datasets:
>> load [sample.study] -mat– This study is already clustered
• Call:
>> [STUDY] = pop_clustedit(ALLEEG, STUDY);
• Test clustedit options…