Home > vbmeg > demo > tutorial_for_vbmeg2 > advanced > regress_out_eog_from_meg.m

regress_out_eog_from_meg

PURPOSE ^

Regress out EOG components from MEG data

SYNOPSIS ^

function regress_out_eog_from_meg(p)

DESCRIPTION ^

 Regress out EOG components from MEG data

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function regress_out_eog_from_meg(p)
0002 % Regress out EOG components from MEG data
0003 %
0004 % Copyright (C) 2011, ATR All Rights Reserved.
0005 % License : New BSD License(see VBMEG_LICENSE.txt)
0006 
0007 disp(mfilename);
0008 
0009 % Set parameters
0010 Nfile = length(p.file_list);
0011 prefix = 'r_';
0012 load_spec.ChannelName = {'EOG1', 'EOG2'};
0013 
0014 % Load all of the EOG and EEG data
0015 eog_all = [];
0016 meg_all = [];
0017 for file=1:Nfile
0018     % Load EOG data
0019     eog_file = fullfile(p.proj_root, p.eeg_dirname, p.trial_dirname, [p.file_list{file} '.eeg.mat']);
0020     eog = vb_load_meg_data(eog_file, load_spec);
0021     for tr = 1:size(eog, 3)
0022         eog_all = [eog_all, eog(:, :, tr)];
0023     end
0024     
0025     % Load MEG data
0026     trial_file = fullfile(p.proj_root, p.meg_dirname, p.trial_dirname, [p.file_list{file} '.meg.mat']);
0027     load(trial_file, 'bexp')
0028     for tr = 1:size(bexp, 3)
0029         meg_all = [meg_all, bexp(:, :, tr)];
0030     end
0031 end
0032 
0033 % Calculate weight, where MEG = weight x EOG
0034 w = zeros(size(bexp, 1), size(eog_all, 1)+1);
0035 for ch = 1:size(bexp, 1)
0036     w(ch, :) = vb_multiple_regression(eog_all, meg_all(ch, :));
0037 end
0038 
0039 % Remove EOG components from MEG data
0040 for file = 1:Nfile
0041     % Load EOG data
0042     eog_file = fullfile(p.proj_root, p.eeg_dirname, p.trial_dirname, [p.file_list{file} '.eeg.mat']);
0043     eog = vb_load_meg_data(eog_file, load_spec);
0044     
0045     % Remove EOG components from MEG data
0046     trial_file = fullfile(p.proj_root, p.meg_dirname, p.trial_dirname, [p.file_list{file} '.meg.mat']);
0047     load(trial_file, 'bexp')
0048     for tr = 1:size(bexp, 3)
0049         for ch = 1:size(bexp, 1)
0050             pmeg = vb_pre_multiple_regression(eog(:,:,tr), w(ch, :));
0051             bexp(ch, :, tr) = bexp(ch, :, tr)-pmeg;
0052         end
0053     end
0054     
0055     % Save EOG-free MEG data
0056     new_trial_file = fullfile(p.proj_root, p.meg_dirname, p.trial_dirname, [prefix p.file_list{file} '.meg.mat']);
0057     copyfile(trial_file, new_trial_file);
0058     vb_save(new_trial_file, 'bexp');
0059 end
0060

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005