0001 function regress_out_eog_from_meg(p)
0002
0003
0004
0005
0006
0007 disp(mfilename);
0008
0009
0010 Nfile = length(p.file_list);
0011 prefix = 'r_';
0012 load_spec.ChannelName = {'EOG1', 'EOG2'};
0013
0014
0015 eog_all = [];
0016 meg_all = [];
0017 for file=1:Nfile
0018
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
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
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
0040 for file = 1:Nfile
0041
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
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
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