1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- function z_eegmp_old_new_ERP(rootpath, id)
- %% paths
- if ismac
- currentFile = mfilename('fullpath');
- [pathstr,~,~] = fileparts(currentFile);
- cd(fullfile(pathstr,'..'))
- rootpath = pwd;
- id = 'sub-011';
- end
- pn.data_eeg = fullfile(rootpath, '..', 'eegmp_preproc', 'data', 'outputs', 'eeg');
- pn.data_erp = fullfile(rootpath, 'data', 'test'); mkdir(pn.data_erp);
- pn.tools = fullfile(rootpath, '..', 'eegmp_preproc', 'tools');
- addpath(fullfile(pn.tools, 'fieldtrip')); ft_defaults
- %% load data_eeg
- % load preprocessed eeg data_eeg
- load(fullfile(pn.data_eeg, [id,'_task-xxxx_eeg_art.mat']), 'data_eeg', 'events');
- %% further preprocessing
- % apply notch filter
- cfg = [];
- cfg.dftfilter = 'yes';
- data_eeg = ft_preprocessing(cfg, data_eeg);
- %% CSD transform
-
- % csd_cfg = [];
- % csd_cfg.method = 'spline';
- % data_eeg = ft_scalpcurrentdensity(csd_cfg, data_eeg);
- %% single-trial baseline-correction for ERPs
- time = data_eeg.time{1};
- data_eeg_bl = data_eeg;
- for indTrial = 1:numel(data_eeg_bl.trial)
- curbl = squeeze(nanmean(data_eeg_bl.trial{indTrial}(:,time>-.2 & time<0),2));
- data_eeg_bl.trial{indTrial} = data_eeg_bl.trial{indTrial}-repmat(curbl,1,numel(time));
- end
- %% split tfr and time series data by condition, average across trials
- cfg = [];
- cfg.trials = ismember(events.old, 'old');
- erp_bl.old = ft_timelockanalysis(cfg, data_eeg_bl);
- cfg = [];
- cfg.trials = ismember(events.old, 'new');
- erp_bl.new = ft_timelockanalysis(cfg, data_eeg_bl);
- %% save data
- save(fullfile(pn.data_erp, [id, '_erp_bl.mat']), 'erp_bl');
|