function pipeline_un_sujeto(raiz, s, umbral) % PIPELINE_UN_SUJETO De .set continuo a .erp, un participante. % pipeline_un_sujeto(raiz, s) usa el umbral por defecto (100 uV) % pipeline_un_sujeto(raiz, s, umbral) usa el umbral que le des % % raiz : carpeta del experimento (contiene sub-001/, sub-002/, ...) % s : 'sub-001' % umbral : criterio de artefactos en uV % % Espera encontrar bins_n400.txt en la raiz y deja el .erp en raiz/derivados. % Requiere EEGLAB + ERPLAB en el path (correr "eeglab" antes). if nargin < 3, umbral = 100; end carp = fullfile(raiz, s); salida = fullfile(raiz, 'derivados'); % todo lo generado, junto if ~exist(salida, 'dir'), mkdir(salida); end % --- cargar EEG = pop_loadset('filename', [s '_N400.set'], 'filepath', carp); % --- paso alto sobre el continuo, antes de epocar EEG = pop_basicfilter(EEG, 1:33, 'Filter', 'highpass', 'Design', 'butter', ... 'Cutoff', 0.1, 'Order', 2, 'RemoveDC', 'on', 'Boundary', 'boundary'); % --- etapa 1: EventList EEG = pop_creabasiceventlist(EEG, 'AlphanumericCleaning', 'on', ... 'BoundaryNumeric', {-99}, 'BoundaryString', {'boundary'}); % --- etapa 2: asignar a bins EEG = pop_binlister(EEG, 'BDF', fullfile(raiz, 'bins_n400.txt'), ... 'IndexEL', 1, 'SendEL2', 'EEG', 'Voutput', 'EEG'); % --- etapa 3: epocar, linea base = todo el pre-estimulo EEG = pop_epochbin(EEG, [-200.0 800.0], 'pre'); % --- etapa 4: marcar artefactos (ventana movil, pico a pico). % No borra nada: levanta banderas. EEG = pop_artmwppth(EEG, 'Channel', 1:33, 'Threshold', umbral, ... 'Twindow', [-200 798], 'Windowsize', 200, 'Windowstep', 50, ... 'Flag', 1, 'Review', 'off'); pop_summary_AR_eeg_detection(EEG, ''); % el % de rechazo, a la consola % --- etapa 5: promediar solo las epocas buenas ERP = pop_averager(EEG, 'Criterion', 'good', 'SEM', 'on', 'Compute', 'ERP'); % --- la onda de diferencia (dia 6) ERP = pop_binoperator(ERP, { ... 'bin5 = bin4 - bin3 label Target no relacionado menos relacionado' }); ERP = pop_savemyerp(ERP, 'erpname', sprintf('%s_N400_%d', s, umbral), ... 'filename', sprintf('%s_N400_%d.erp', s, umbral), ... 'filepath', salida, 'Warning', 'off'); end