[Eeglablist] ICA on continuous v. epoched data?

Andrew Hill andrewhill at ucla.edu
Wed Jan 12 14:23:51 PST 2011


Hi folks,

A point of clarification needed, if someone has a moment.  

I'm running ICA against continuous data and then epoching the data per event codes.  

Plotting (scroll) data for the resulting epoched EEG files does show that my .sets are "different", but plotting 2-D Component maps for two different epoch file sets (though within a specific subject and session) shows the exact same set of (64) component maps even though the .set files do show different EEG.

I've looked at both component maps (2-D) and the contents of EEG.icawinv for two specific epoched sets, and they are identical even though I am  looking at two different "condition" .sets in my data.

Below is the script that I've been using to import, filter, and epoch my data, but I'm just not sure how to proceed from here, since the components are not "different" across different conditions.  

Can someone else perhaps share with me their "workflow" for getting data from continuous recording to epoched, ICA weighted, set files from different conditions that are used in a study?  

I posted a few days ago about problems with interpolating electrodes/clustering on a study, but it seems I have a more basic problem to sort out first.

Thanks,
Andrew

for S = [101:140];  

[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;

%set options
pop_editoptions( 'option_storedisk', 1, 'option_savetwofiles', 1, 'option_saveica', 1, 'option_single', 0, 'option_computeica', 1, 'option_scaleicarms', 1, 'option_rememberfolder', 1);

 for SESS = [1,3];
 
 %%%% Operations on .SET file.
   % load a file
EEG = pop_loadset( 'filename', [int2str(S) '_ATTN_' int2str(SESS) '.set'], 'filepath', ['/Users/andrew/Documents/Research/DATA/BFBLANTSETS/BFBLANTSETS64_31ref/S' int2str(S)]);
 
EEG = eeg_checkset( EEG );
 
EEG=pop_chanedit(EEG, 'lookup','/Users/andrew/Documents/MATLAB/eeglab9_0_3_4b/plugins/dipfit2.2/standard_BESA/standard-10-5-cap385.elp','changefield',{65 'labels' 'A1'},'changefield',{66 'labels' 'A2'});

%drop empty channels from the .bdf
EEG = pop_select( EEG,'nochannel',{'EXG3' 'EXG4' 'EXG5' 'EXG6' 'EXG7' 'EXG8'});

EEG = eeg_checkset( EEG );

% remove any bad channels
EEG = pop_rejchan(EEG, 'elec',[1:66] ,'threshold',5,'norm','on','measure','kurt');

EEG = pop_runica(EEG, 'icatype','runica','dataset',1,'options',{'extended' 1});

% store the channel adjusted set in ALLEEG.  *row 20 used to allow up to 19 condition/trigger groups)
    [ALLEEG, EEG, CURRENTSET] = eeg_store( ALLEEG, EEG, 20);
 
    % Single-trigger coded epochs (trigger indicates unique combo of cue and target)
    % Epoch using e (array size), Cond as name for several trigs for one Condidition
%%%%%extract 12 different types of epochs, set Subject/Condition metadata.
 
for e = [1:12];
         Cond =['LVF-ConTarg-CenCue'; 'LVF-ConTarg-ValCue'; 'LVF-ConTarg-InvCue'; 'LVF-IncTarg-CenCue'; 'LVF-IncTarg-ValCue'; 'LVF-IncTarg-InvCue'; 'RVF-ConTarg-CenCue'; 'RVF-ConTarg-ValCue'; 'RVF-ConTarg-InvCue'; 'RVF-IncTarg-CenCue';'RVF-IncTarg-ValCue';'RVF-IncTarg-InvCue'  ];

         trigs =[{'111'}; {'112'}; {'113'}; {'121'}; {'122'}; {'123'}; {'211'}; {'212'}; {'213'}; {'221'}; {'222'}; {'223'} ];   
     EEG = pop_epoch(EEG, trigs(e,:), [-.75 .95], 'newname', Cond(e,:) );

        % baseline filter using pre-cue interval.
        EEG = pop_rmbase( EEG, [-700  -450] );
        [ALLEEG, EEG, CURRENTSET] = eeg_store( ALLEEG, EEG, e );

        %get current Condition
        Current_Condition = Cond(e,:);
     
        %edit the dataset info
        EEG = pop_editset(EEG, 'subject', ['Subject_',int2str(S)], 'condition', Current_Condition, 'session', [int2str(SESS)]);

        %auto-reject epochs statistically.
        EEG = pop_autorej(EEG, 'nogui','on','eegplot','off');

% save a new set file for the extracted epochs
        EEG = pop_saveset( EEG,  'filename', [int2str(S) '_' Current_Condition '_ICA_' int2str(SESS),'.set'], 'filepath', ['/Users/andrew/Documents/Research/DATA/BFBLANTSETS/BFBLANTEPOCHSICA/S' int2str(S)]);

        % select the unepoched, re-referenced .SET file
        [EEG ALLEEG CURRENTSET] = eeg_retrieve(ALLEEG,20);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end of epoching 

 
     ALLEEG = pop_delset( ALLEEG, [1:20] )

     end

end





More information about the eeglablist mailing list