├── .gitignore ├── README.md ├── brainstrom └── process_brainstorm_template.m ├── data ├── sub-001_task-P300_run-2_channels.tsv ├── sub-001_task-P300_run-2_eeg.json ├── sub-001_task-P300_run-2_eeg.set └── sub-001_task-P300_run-2_events.tsv ├── eeglab └── process_eeglab_template.m ├── fieldtrip ├── ft_trialfun_withevents.m └── process_fieldtrip_template.m ├── happe └── README.md └── mne └── process_mne_template.py /.gitignore: -------------------------------------------------------------------------------- 1 | data/sub-001_task-P300_run-2_eeg_cond1_eeglab.set 2 | data/sub-001_task-P300_run-2_eeg_cond2_eeglab.set 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Screen Shot 2023-03-13 at 8 48 38 PM](https://user-images.githubusercontent.com/1872705/224918420-88cecd89-7335-4f84-b8bd-7597d30b8b70.png) 2 | 3 | # Why is EEG better left alone? 4 | 5 | The best is to read the article. In short, for standard, relatively clean EEG, removing artifacts cannot compensate for the loss of statistical power due to the reduced number of data trials. 6 | 7 | https://www.nature.com/articles/s41598-023-27528-0 8 | 9 | # Content of this repository 10 | 11 | This repository contains 4 stand-alone pipelines (along with one test dataset), in EEGLAB, Fieldtrip, Brainstorm, and MNE. There is also a link to the HAPPE EEGLAB-based pipeline. The pipelines have been optimized to process event-related potential and are described in the manuscript above. The pipelines run on the sample data provided here. They do require a separate installation of the corresponding software packages. 12 | 13 | Based on our scanning of the parameter space for artifact rejection and preprocessing, these are the **best EEG pipelines** for EEGLAB, Fieldtrip, Brainstorm, and MNE to process ERP. Test them yourself by plugging in your data. 14 | 15 | # Associated videos 16 | 17 | * [What is the optimal automated EEG pre-processing pipeline](https://www.youtube.com/watch?v=mW7u2YEK3ZY) 18 | * [What is the best reference?](https://www.youtube.com/watch?v=ioIETUX4G4k) 19 | * [What is the optimal ERP baseline?](https://www.youtube.com/watch?v=2wS7-XILNso) 20 | * [Designing an EEGLAB automated pipeline](https://www.youtube.com/watch?v=yaA1wq2nSIc) 21 | * [Designing an FieldTrip automated pipeline](https://www.youtube.com/watch?v=5DcMdqrZ4us) 22 | * [Designing an MNE automated pipeline](https://www.youtube.com/watch?v=31N8WHioQ3U) 23 | * [Designing an Brainstorm automated pipeline](https://www.youtube.com/watch?v=8Wyhu2cecCU) 24 | 25 | -------------------------------------------------------------------------------- /brainstrom/process_brainstorm_template.m: -------------------------------------------------------------------------------- 1 | % This script is part of the code used to generate the results presented in: 2 | % Delorme A. EEG is better left alone. Sci Rep. 2023 Feb 9;13(1):2372. doi: 10.1038/s41598-023-27528-0. PMID: 36759667; PMCID: PMC9911389. 3 | % https://pubmed.ncbi.nlm.nih.gov/36759667/ 4 | % 5 | % This contains the code for the optimal Brainstorm pipeline in the paper above. 6 | % An example dataset is provided in the data folder. 7 | % Simple plotting for one channel for the two conditions is provided at the end of the script. 8 | % 9 | % Requires to have Brainstorm installed 10 | % Tested successfully with Brainstorm version of 05-Aug-2022 11 | % Brainstorm is being used in server mode so the GUI will not pop up 12 | % Note: Brainstorm is primarily a GUI software. Most of the code below 13 | % is undocumented so use at your own risk. If you encounter problems, 14 | % start Brainstorm at least once and create a protocol manually. 15 | % 16 | % Arnaud Delorme, 2022 17 | 18 | % Difference with version of the script shown on YOUTUBE 19 | % - reworked code to import epoched data trials 20 | % - remove some plotting and added custom code to plot one channel (could not remove all) 21 | % - removed code for DC offset 22 | % - added code to handle occasional crash 23 | 24 | % beginning of parameters ************ 25 | 26 | % You may select your own file and conditions below 27 | clear 28 | fileName = fullfile('..', 'data', 'sub-001_task-P300_run-2_eeg.set'); % file name to process 29 | conditions = { 'oddball_with_reponse' 'standard' }; % conditions 30 | badChans = {'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8','GSR1','GSR2','Erg1','Erg2','Resp','Plet','Temp'}; % list of channels to ignore if any 31 | epochLimits = [-0.3 0.7]; 32 | 33 | % end of parameters ************ 34 | 35 | if ~brainstorm('status') 36 | brainstorm server 37 | end 38 | 39 | % Delete protocol if it exist and re-create it 40 | protocol = 'TestPipeline'; 41 | brainstorm_path = bst_get('BrainstormDbDir'); 42 | iProtocol = bst_get('Protocol', protocol); 43 | if ~isempty(iProtocol) 44 | gui_brainstorm('DeleteProtocol', protocol); 45 | end 46 | try 47 | gui_brainstorm('CreateProtocol', protocol, 1, 1); 48 | catch 49 | % to handle occasional crash 50 | rmdir(fullfile(brainstorm_path, protocol), 's'); 51 | gui_brainstorm('CreateProtocol', protocol, 1, 1); 52 | end 53 | 54 | % These default options might reduce questions that prompt users 55 | ImportOptions = db_template('ImportOptions'); 56 | ImportOptions.ChannelAlign = 0; 57 | ImportOptions.DisplayMessages = 0; 58 | OutputFile = import_raw(fullfile(pwd, fileName), 'EEG-EEGLAB', [], ImportOptions); % need absolute path 59 | 60 | % Input file 61 | posNewSubject = strfind( OutputFile{1}, 'NewSubject'); 62 | sFiles = { OutputFile{1}(posNewSubject:end) }; 63 | 64 | % In case there are bad channels 65 | if ~isempty(badChans) 66 | sFiles = bst_process('CallProcess', 'process_channel_setbad', sFiles, [], 'sensortypes', badChans); 67 | end 68 | 69 | % Process: High-pass 70 | sFiles = bst_process('CallProcess', 'process_bandpass', sFiles, [], ... 71 | 'sensortypes', 'MEG, EEG', ... 72 | 'highpass', 0.5, ... 73 | 'lowpass', 0, ... 74 | 'tranband', 0, ... 75 | 'attenuation', 'strict', ... % 60dB 76 | 'ver', '2019', ... % 2019 77 | 'mirror', 0, ... 78 | 'read_all', 0); 79 | 80 | sFiles = bst_process('CallProcess', 'process_evt_detect_badsegment', sFiles, [], ... 81 | 'timewindow', [], ... 82 | 'sensortypes', 'EEG', ... 83 | 'threshold', 5, ... % 5 is conservative 84 | 'isLowFreq', 1, ... 85 | 'isHighFreq', 1); 86 | 87 | % Process: Rename events so they are rejected (prefix bad) 88 | sFiles = bst_process('CallProcess', 'process_evt_rename', sFiles, [], ... 89 | 'src', '40-240Hz', ... 90 | 'dest', 'bad_40-240Hz'); 91 | 92 | % Process: Rename events so they are rejected (prefix bad) 93 | sFiles = bst_process('CallProcess', 'process_evt_rename', sFiles, [], ... 94 | 'src', '1-7Hz', ... 95 | 'dest', 'bad_1-7Hz'); 96 | 97 | % Process: Re-reference EEG not advised because it decreases the number of signficant electrodes 98 | % as indicated in the paper referenced at the beginning 99 | if 0 100 | sFiles = bst_process('CallProcess', 'process_eegref', sFiles, [], ... 101 | 'eegref', 'AVERAGE', ... 102 | 'sensortypes', 'EEG'); 103 | end 104 | 105 | % extract epochs 106 | sFilesEpochs1 = bst_process('CallProcess', 'process_import_data_event', sFiles, [], ... 107 | 'subjectname', 'NewSubject', ... 108 | 'condition', '', ... 109 | 'eventname', strcat(conditions{1}, ',', conditions{2}), ... 110 | 'timewindow', [], ... 111 | 'epochtime', epochLimits, ... 112 | 'createcond', 1, ... 113 | 'ignoreshort', 1, ... 114 | 'usectfcomp', 1, ... 115 | 'usessp', 1, ... 116 | 'freq', [], ... 117 | 'baseline', []); 118 | 119 | % last rejection of bad epochs 120 | sFilesEpochs1 = bst_process('CallProcess', 'process_detectbad', sFilesEpochs1, [], ... 121 | 'timewindow', [], ... 122 | 'eeg', [-200, 200], ... 123 | 'ieeg', [0, 0], ... 124 | 'eog', [0, 0], ... 125 | 'ecg', [0, 0], ... 126 | 'rejectmode', 2); % Reject the entire trial 127 | 128 | close; 129 | 130 | % Read data and plot one channel 131 | prot = bst_get('ProtocolInfo'); 132 | brainstorm_path = bst_get('BrainstormDbDir'); 133 | cond1Data = {}; 134 | cond2Data = {}; 135 | for iEpoch = 1:length(sFilesEpochs1) 136 | epochStruct = load('-mat', fullfile(brainstorm_path, protocol, 'data', sFilesEpochs1(iEpoch).FileName)); 137 | if contains(epochStruct.Comment, conditions{1}) cond1Data{end+1} = epochStruct.F; 138 | elseif contains(epochStruct.Comment, conditions{2}) cond2Data{end+1} = epochStruct.F; 139 | end 140 | end 141 | cond1Data = reshape([ cond1Data{:} ], size(cond1Data{1},1), size(cond1Data{1},2), []); 142 | cond2Data = reshape([ cond2Data{:} ], size(cond2Data{1},1), size(cond2Data{1},2), []); 143 | figure; 144 | plot(mean(cond1Data(2,:,:),3)); hold on; 145 | plot(mean(cond2Data(2,:,:),3),'r'); 146 | title('ERP for each condition for channel 2'); 147 | h = legend(conditions{:}); set (h, 'Interpreter', 'none') 148 | -------------------------------------------------------------------------------- /data/sub-001_task-P300_run-2_channels.tsv: -------------------------------------------------------------------------------- 1 | name type units status status_description 2 | Fp1 EEG microV good n/a 3 | AF7 EEG microV good n/a 4 | AF3 EEG microV good n/a 5 | F1 EEG microV good n/a 6 | F3 EEG microV good n/a 7 | F5 EEG microV good n/a 8 | F7 EEG microV good n/a 9 | FT7 EEG microV good n/a 10 | FC5 EEG microV good n/a 11 | FC3 EEG microV good n/a 12 | FC1 EEG microV good n/a 13 | C1 EEG microV good n/a 14 | C3 EEG microV good n/a 15 | C5 EEG microV good n/a 16 | T7 EEG microV good n/a 17 | TP7 EEG microV good n/a 18 | CP5 EEG microV good n/a 19 | CP3 EEG microV good n/a 20 | CP1 EEG microV good n/a 21 | P1 EEG microV good n/a 22 | P3 EEG microV good n/a 23 | P5 EEG microV good n/a 24 | P7 EEG microV good n/a 25 | P9 EEG microV good n/a 26 | PO7 EEG microV good n/a 27 | PO3 EEG microV good n/a 28 | O1 EEG microV good n/a 29 | Iz EEG microV good n/a 30 | Oz EEG microV good n/a 31 | POz EEG microV good n/a 32 | Pz EEG microV good n/a 33 | CPz EEG microV good n/a 34 | Fpz EEG microV good n/a 35 | Fp2 EEG microV good n/a 36 | AF8 EEG microV good n/a 37 | AF4 EEG microV good n/a 38 | AFz EEG microV good n/a 39 | Fz EEG microV good n/a 40 | F2 EEG microV good n/a 41 | F4 EEG microV good n/a 42 | F6 EEG microV good n/a 43 | F8 EEG microV good n/a 44 | FT8 EEG microV good n/a 45 | FC6 EEG microV good n/a 46 | FC4 EEG microV good n/a 47 | FC2 EEG microV good n/a 48 | FCz EEG microV good n/a 49 | Cz EEG microV good n/a 50 | C2 EEG microV good n/a 51 | C4 EEG microV good n/a 52 | C6 EEG microV good n/a 53 | T8 EEG microV good n/a 54 | TP8 EEG microV good n/a 55 | CP6 EEG microV good n/a 56 | CP4 EEG microV good n/a 57 | CP2 EEG microV good n/a 58 | P2 EEG microV good n/a 59 | P4 EEG microV good n/a 60 | P6 EEG microV good n/a 61 | P8 EEG microV good n/a 62 | P10 EEG microV good n/a 63 | PO8 EEG microV good n/a 64 | PO4 EEG microV good n/a 65 | O2 EEG microV good n/a 66 | EXG1 MISC n/a bad n/a 67 | EXG2 MISC n/a bad n/a 68 | EXG3 MISC n/a bad n/a 69 | EXG4 MISC n/a bad n/a 70 | EXG5 MISC n/a bad n/a 71 | EXG6 MISC n/a bad n/a 72 | EXG7 MISC n/a bad n/a 73 | EXG8 MISC n/a bad n/a 74 | GSR1 GSR n/a bad n/a 75 | GSR2 GSR n/a bad n/a 76 | Erg1 MISC n/a bad n/a 77 | Erg2 MISC n/a bad n/a 78 | Resp RESP n/a bad n/a 79 | Plet MISC n/a bad n/a 80 | Temp TEMP n/a bad n/a 81 | -------------------------------------------------------------------------------- /data/sub-001_task-P300_run-2_eeg.json: -------------------------------------------------------------------------------- 1 | { 2 | "InstitutionAddress": "Pavillon Baudot CHU Purpan, BP 25202, 31052 Toulouse Cedex", 3 | "InstitutionName": "Paul Sabatier Universite", 4 | "InstitutionalDepartmentName": "Centre de Recherche Cerveau et Cognition", 5 | "PowerLineFrequency": 50, 6 | "ManufacturersModelName": "Biosemi Active 2", 7 | "TaskName": "P300", 8 | "EEGReference": "CMS\/DRL", 9 | "Manufacturer": "BIOSEMI", 10 | "EEGChannelCount": 64, 11 | "MiscChannelCount": 11, 12 | "RecordingType": "continuous", 13 | "RecordingDuration": 757, 14 | "SamplingFrequency": 256, 15 | "SubjectArtefactDescription": "She changed push button hands during the experiment (in the middle of trials)", 16 | "EOGChannelCount": 0, 17 | "ECGChannelCount": 0, 18 | "EMGChannelCount": 0, 19 | "SoftwareFilters": { 20 | "FilterDescription": { 21 | "Description": "n\/a" 22 | } 23 | }, 24 | "Instructions": "Close your eyes. Press the button when you hear the high pitch sound and ignore other sounds.", 25 | "TaskDescription": "Participants were instructed to close their eyes and respond to oddball sounds. There were 3 types of sounds interspaced by about 1 second each, standard (500 Hz pure sounds lasting 60 ms), oddball (1000 Hz pure sounds lasting 60 ms), or distractor sounds (white noise lasting 60 ms). Participants were instructed to press a keypad on their lap when hearing an oddball and to ignore other types of stimuli. See experimental code for additional details." 26 | } -------------------------------------------------------------------------------- /data/sub-001_task-P300_run-2_eeg.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sccn/eeg_pipelines/d456aa4e4789546d47ab2e1c8eefcfcff65770fb/data/sub-001_task-P300_run-2_eeg.set -------------------------------------------------------------------------------- /data/sub-001_task-P300_run-2_events.tsv: -------------------------------------------------------------------------------- 1 | onset duration sample trial_type response_time stim_file value 2 | 4.2968750000 n/a 1100 stimulus n/a n/a standard 3 | 5.2109375000 n/a 1334 stimulus n/a n/a standard 4 | 6.3125000000 n/a 1616 stimulus n/a n/a standard 5 | 7.2656250000 n/a 1860 stimulus n/a n/a standard 6 | 8.2812500000 n/a 2120 stimulus n/a n/a standard 7 | 9.2382812500 n/a 2365 stimulus n/a n/a standard 8 | 10.2421875000 n/a 2622 stimulus n/a n/a standard 9 | 11.2578125000 n/a 2882 stimulus n/a n/a standard 10 | 12.2617187500 n/a 3139 stimulus n/a n/a standard 11 | 13.2812500000 n/a 3400 stimulus 387 n/a noise_with_reponse 12 | 13.6679687500 n/a 3499 response n/a n/a response 13 | 14.2539062500 n/a 3649 stimulus n/a n/a standard 14 | 15.2773437500 n/a 3911 stimulus n/a n/a standard 15 | 16.2851562500 n/a 4169 stimulus n/a n/a standard 16 | 17.3359375000 n/a 4438 stimulus n/a n/a standard 17 | 18.2890625000 n/a 4682 stimulus n/a n/a noise 18 | 19.3203125000 n/a 4946 stimulus n/a n/a standard 19 | 20.2734375000 n/a 5190 stimulus n/a n/a noise 20 | 21.2773437500 n/a 5447 stimulus n/a n/a standard 21 | 22.3125000000 n/a 5712 stimulus n/a n/a standard 22 | 23.3437500000 n/a 5976 stimulus 492 n/a oddball_with_reponse 23 | 23.8359375000 n/a 6102 response n/a n/a response 24 | 24.3203125000 n/a 6226 stimulus n/a n/a standard 25 | 25.2695312500 n/a 6469 stimulus n/a n/a standard 26 | 26.3398437500 n/a 6743 stimulus n/a n/a standard 27 | 27.3242187500 n/a 6995 stimulus 535 n/a oddball_with_reponse 28 | 27.8593750000 n/a 7132 response n/a n/a response 29 | 28.3164062500 n/a 7249 stimulus n/a n/a standard 30 | 29.2851562500 n/a 7497 stimulus n/a n/a standard 31 | 30.3164062500 n/a 7761 stimulus n/a n/a standard 32 | 31.3671875000 n/a 8030 stimulus n/a n/a noise 33 | 32.3789062500 n/a 8289 stimulus n/a n/a standard 34 | 33.3281250000 n/a 8532 stimulus n/a n/a noise 35 | 34.3398437500 n/a 8791 stimulus n/a n/a standard 36 | 35.3632812500 n/a 9053 stimulus 477 n/a oddball_with_reponse 37 | 35.8398437500 n/a 9175 response n/a n/a response 38 | 36.3203125000 n/a 9298 stimulus n/a n/a standard 39 | 37.3476562500 n/a 9561 stimulus n/a n/a standard 40 | 38.3515625000 n/a 9818 stimulus n/a n/a noise 41 | 39.3593750000 n/a 10076 stimulus n/a n/a standard 42 | 40.4101562500 n/a 10345 stimulus 473 n/a oddball_with_reponse 43 | 40.8828125000 n/a 10466 response n/a n/a response 44 | 41.3789062500 n/a 10593 stimulus n/a n/a standard 45 | 42.3789062500 n/a 10849 stimulus n/a n/a noise 46 | 43.3632812500 n/a 11101 stimulus n/a n/a standard 47 | 44.3789062500 n/a 11361 stimulus n/a n/a standard 48 | 45.3671875000 n/a 11614 stimulus n/a n/a noise 49 | 46.3671875000 n/a 11870 stimulus n/a n/a standard 50 | 47.4296875000 n/a 12142 stimulus n/a n/a standard 51 | 48.3593750000 n/a 12380 stimulus n/a n/a standard 52 | 49.3789062500 n/a 12641 stimulus n/a n/a standard 53 | 50.4062500000 n/a 12904 stimulus n/a n/a standard 54 | 51.4765625000 n/a 13178 stimulus n/a n/a standard 55 | 52.3945312500 n/a 13413 stimulus n/a n/a standard 56 | 53.3945312500 n/a 13669 stimulus n/a n/a standard 57 | 54.4296875000 n/a 13934 stimulus n/a n/a standard 58 | 55.4335937500 n/a 14191 stimulus 492 n/a oddball_with_reponse 59 | 55.9257812500 n/a 14317 response n/a n/a response 60 | 56.4140625000 n/a 14442 stimulus n/a n/a standard 61 | 57.5039062500 n/a 14721 stimulus n/a n/a noise 62 | 58.4453125000 n/a 14962 stimulus n/a n/a standard 63 | 59.5000000000 n/a 15232 stimulus n/a n/a noise 64 | 60.4414062500 n/a 15473 stimulus n/a n/a standard 65 | 61.4414062500 n/a 15729 stimulus n/a n/a standard 66 | 62.4843750000 n/a 15996 stimulus n/a n/a standard 67 | 63.4765625000 n/a 16250 stimulus n/a n/a standard 68 | 64.5234375000 n/a 16518 stimulus n/a n/a standard 69 | 65.4921875000 n/a 16766 stimulus 484 n/a oddball_with_reponse 70 | 65.9765625000 n/a 16890 response n/a n/a response 71 | 66.4960937500 n/a 17023 stimulus n/a n/a standard 72 | 67.4687500000 n/a 17272 stimulus 441 n/a oddball_with_reponse 73 | 67.9101562500 n/a 17385 response n/a n/a response 74 | 68.5468750000 n/a 17548 stimulus n/a n/a standard 75 | 69.5117187500 n/a 17795 stimulus n/a n/a standard 76 | 70.5195312500 n/a 18053 stimulus n/a n/a standard 77 | 71.5195312500 n/a 18309 stimulus n/a n/a standard 78 | 72.5312500000 n/a 18568 stimulus n/a n/a standard 79 | 73.5742187500 n/a 18835 stimulus n/a n/a standard 80 | 74.5742187500 n/a 19091 stimulus n/a n/a standard 81 | 75.5937500000 n/a 19352 stimulus n/a n/a standard 82 | 76.5976562500 n/a 19609 stimulus n/a n/a standard 83 | 77.6015625000 n/a 19866 stimulus 457 n/a oddball_with_reponse 84 | 78.0585937500 n/a 19983 response n/a n/a response 85 | 78.6015625000 n/a 20122 stimulus n/a n/a standard 86 | 79.5976562500 n/a 20377 stimulus n/a n/a standard 87 | 80.6367187500 n/a 20643 stimulus 422 n/a oddball_with_reponse 88 | 81.0585937500 n/a 20751 response n/a n/a response 89 | 81.6015625000 n/a 20890 stimulus n/a n/a standard 90 | 82.6406250000 n/a 21156 stimulus n/a n/a standard 91 | 83.6171875000 n/a 21406 stimulus n/a n/a standard 92 | 84.6093750000 n/a 21660 stimulus n/a n/a noise 93 | 85.6054687500 n/a 21915 stimulus n/a n/a standard 94 | 86.5976562500 n/a 22169 stimulus n/a n/a standard 95 | 87.6015625000 n/a 22426 stimulus n/a n/a standard 96 | 88.6718750000 n/a 22700 stimulus 418 n/a oddball_with_reponse 97 | 89.0898437500 n/a 22807 response n/a n/a response 98 | 89.6601562500 n/a 22953 stimulus n/a n/a standard 99 | 90.6562500000 n/a 23208 stimulus n/a n/a standard 100 | 91.6289062500 n/a 23457 stimulus n/a n/a standard 101 | 92.6171875000 n/a 23710 stimulus n/a n/a standard 102 | 93.6328125000 n/a 23970 stimulus n/a n/a standard 103 | 94.6796875000 n/a 24238 stimulus n/a n/a standard 104 | 95.6875000000 n/a 24496 stimulus n/a n/a standard 105 | 96.6757812500 n/a 24749 stimulus n/a n/a noise 106 | 97.6835937500 n/a 25007 stimulus n/a n/a standard 107 | 98.7070312500 n/a 25269 stimulus 379 n/a oddball_with_reponse 108 | 99.0859375000 n/a 25366 response n/a n/a response 109 | 99.7343750000 n/a 25532 stimulus n/a n/a standard 110 | 100.6992187500 n/a 25779 stimulus n/a n/a standard 111 | 101.7382812500 n/a 26045 stimulus n/a n/a standard 112 | 102.8320312500 n/a 26325 stimulus n/a n/a standard 113 | 103.7070312500 n/a 26549 stimulus n/a n/a standard 114 | 104.7578125000 n/a 26818 stimulus n/a n/a noise 115 | 105.7148437500 n/a 27063 stimulus n/a n/a standard 116 | 106.8437500000 n/a 27352 stimulus n/a n/a standard 117 | 107.7187500000 n/a 27576 stimulus n/a n/a noise 118 | 108.8046875000 n/a 27854 stimulus n/a n/a standard 119 | 109.8281250000 n/a 28116 stimulus n/a n/a standard 120 | 110.7851562500 n/a 28361 stimulus n/a n/a standard 121 | 111.8437500000 n/a 28632 stimulus n/a n/a standard 122 | 112.8203125000 n/a 28882 stimulus n/a n/a noise 123 | 113.8515625000 n/a 29146 stimulus n/a n/a standard 124 | 114.8320312500 n/a 29397 stimulus 406 n/a oddball_with_reponse 125 | 115.2382812500 n/a 29501 response n/a n/a response 126 | 115.7617187500 n/a 29635 stimulus n/a n/a standard 127 | 116.7851562500 n/a 29897 stimulus n/a n/a standard 128 | 117.7695312500 n/a 30149 stimulus 391 n/a oddball_with_reponse 129 | 118.1601562500 n/a 30249 response n/a n/a response 130 | 118.8046875000 n/a 30414 stimulus n/a n/a standard 131 | 119.8320312500 n/a 30677 stimulus n/a n/a noise 132 | 120.8828125000 n/a 30946 stimulus n/a n/a standard 133 | 121.8164062500 n/a 31185 stimulus 375 n/a oddball_with_reponse 134 | 122.1914062500 n/a 31281 response n/a n/a response 135 | 122.8515625000 n/a 31450 stimulus n/a n/a standard 136 | 123.8476562500 n/a 31705 stimulus n/a n/a noise 137 | 124.8359375000 n/a 31958 stimulus n/a n/a standard 138 | 125.8515625000 n/a 32218 stimulus n/a n/a standard 139 | 126.8554687500 n/a 32475 stimulus n/a n/a standard 140 | 127.9296875000 n/a 32750 stimulus n/a n/a standard 141 | 128.9648437500 n/a 33015 stimulus n/a n/a standard 142 | 129.8984375000 n/a 33254 stimulus n/a n/a noise 143 | 130.9140625000 n/a 33514 stimulus n/a n/a standard 144 | 131.9257812500 n/a 33773 stimulus 391 n/a oddball_with_reponse 145 | 132.3164062500 n/a 33873 response n/a n/a response 146 | 132.8945312500 n/a 34021 stimulus n/a n/a standard 147 | 133.9375000000 n/a 34288 stimulus n/a n/a standard 148 | 134.9179687500 n/a 34539 stimulus n/a n/a standard 149 | 135.9335937500 n/a 34799 stimulus n/a n/a standard 150 | 136.9140625000 n/a 35050 stimulus 402 n/a oddball_with_reponse 151 | 137.3164062500 n/a 35153 response n/a n/a response 152 | 137.9414062500 n/a 35313 stimulus n/a n/a standard 153 | 138.8984375000 n/a 35558 stimulus n/a n/a standard 154 | 139.9257812500 n/a 35821 stimulus n/a n/a standard 155 | 140.9492187500 n/a 36083 stimulus n/a n/a noise 156 | 141.9570312500 n/a 36341 stimulus n/a n/a standard 157 | 142.9296875000 n/a 36590 stimulus n/a n/a standard 158 | 144.0117187500 n/a 36867 stimulus n/a n/a standard 159 | 144.9062500000 n/a 37096 stimulus 418 n/a oddball_with_reponse 160 | 145.3242187500 n/a 37203 response n/a n/a response 161 | 145.9726562500 n/a 37369 stimulus n/a n/a standard 162 | 146.9140625000 n/a 37610 stimulus n/a n/a standard 163 | 147.9296875000 n/a 37870 stimulus 391 n/a oddball_with_reponse 164 | 148.3203125000 n/a 37970 response n/a n/a response 165 | 148.9570312500 n/a 38133 stimulus n/a n/a standard 166 | 150.0039062500 n/a 38401 stimulus n/a n/a noise 167 | 151.0468750000 n/a 38668 stimulus n/a n/a standard 168 | 152.0156250000 n/a 38916 stimulus n/a n/a standard 169 | 153.0078125000 n/a 39170 stimulus n/a n/a standard 170 | 153.9492187500 n/a 39411 stimulus 391 n/a oddball_with_reponse 171 | 154.3398437500 n/a 39511 response n/a n/a response 172 | 155.0273437500 n/a 39687 stimulus n/a n/a standard 173 | 156.0156250000 n/a 39940 stimulus n/a n/a noise 174 | 156.9492187500 n/a 40179 stimulus n/a n/a standard 175 | 158.0390625000 n/a 40458 stimulus n/a n/a noise 176 | 158.9960937500 n/a 40703 stimulus n/a n/a standard 177 | 160.0117187500 n/a 40963 stimulus n/a n/a standard 178 | 161.0351562500 n/a 41225 stimulus n/a n/a standard 179 | 162.0820312500 n/a 41493 stimulus n/a n/a standard 180 | 163.0820312500 n/a 41749 stimulus 375 n/a oddball_with_reponse 181 | 163.4570312500 n/a 41845 response n/a n/a response 182 | 164.0273437500 n/a 41991 stimulus n/a n/a standard 183 | 165.0312500000 n/a 42248 stimulus 387 n/a oddball_with_reponse 184 | 165.4179687500 n/a 42347 response n/a n/a response 185 | 166.0625000000 n/a 42512 stimulus n/a n/a standard 186 | 167.0664062500 n/a 42769 stimulus n/a n/a noise 187 | 168.0820312500 n/a 43029 stimulus n/a n/a standard 188 | 169.0429687500 n/a 43275 stimulus n/a n/a noise 189 | 170.0507812500 n/a 43533 stimulus n/a n/a standard 190 | 171.0820312500 n/a 43797 stimulus 371 n/a oddball_with_reponse 191 | 171.4531250000 n/a 43892 response n/a n/a response 192 | 172.0976562500 n/a 44057 stimulus n/a n/a standard 193 | 173.0976562500 n/a 44313 stimulus 445 n/a oddball_with_reponse 194 | 173.5429687500 n/a 44427 response n/a n/a response 195 | 174.1054687500 n/a 44571 stimulus n/a n/a standard 196 | 175.1093750000 n/a 44828 stimulus n/a n/a standard 197 | 176.1250000000 n/a 45088 stimulus n/a n/a standard 198 | 177.1210937500 n/a 45343 stimulus n/a n/a standard 199 | 178.1171875000 n/a 45598 stimulus n/a n/a noise 200 | 179.1093750000 n/a 45852 stimulus n/a n/a standard 201 | 180.1093750000 n/a 46108 stimulus n/a n/a noise 202 | 181.0898437500 n/a 46359 stimulus n/a n/a standard 203 | 182.1015625000 n/a 46618 stimulus n/a n/a standard 204 | 183.0976562500 n/a 46873 stimulus n/a n/a standard 205 | 184.1093750000 n/a 47132 stimulus 492 n/a oddball_with_reponse 206 | 184.6015625000 n/a 47258 response n/a n/a response 207 | 185.1015625000 n/a 47386 stimulus n/a n/a standard 208 | 186.1289062500 n/a 47649 stimulus n/a n/a standard 209 | 187.1171875000 n/a 47902 stimulus 363 n/a oddball_with_reponse 210 | 187.4804687500 n/a 47995 response n/a n/a response 211 | 188.1054687500 n/a 48155 stimulus n/a n/a standard 212 | 189.1132812500 n/a 48413 stimulus n/a n/a noise 213 | 190.1054687500 n/a 48667 stimulus n/a n/a standard 214 | 191.1171875000 n/a 48926 stimulus n/a n/a noise 215 | 192.1367187500 n/a 49187 stimulus n/a n/a standard 216 | 193.1210937500 n/a 49439 stimulus n/a n/a standard 217 | 194.1210937500 n/a 49695 stimulus n/a n/a standard 218 | 195.1250000000 n/a 49952 stimulus n/a n/a noise 219 | 196.1289062500 n/a 50209 stimulus n/a n/a standard 220 | 197.1757812500 n/a 50477 stimulus n/a n/a standard 221 | 198.1406250000 n/a 50724 stimulus 520 n/a oddball_with_reponse 222 | 198.6601562500 n/a 50857 response n/a n/a response 223 | 199.1367187500 n/a 50979 stimulus n/a n/a standard 224 | 200.1406250000 n/a 51236 stimulus n/a n/a noise 225 | 201.1406250000 n/a 51492 stimulus n/a n/a standard 226 | 202.1367187500 n/a 51747 stimulus n/a n/a standard 227 | 203.1796875000 n/a 52014 stimulus n/a n/a standard 228 | 204.1718750000 n/a 52268 stimulus n/a n/a standard 229 | 205.1679687500 n/a 52523 stimulus n/a n/a standard 230 | 206.1484375000 n/a 52774 stimulus n/a n/a noise 231 | 207.2031250000 n/a 53044 stimulus n/a n/a standard 232 | 208.1484375000 n/a 53286 stimulus 496 n/a oddball_with_reponse 233 | 208.6445312500 n/a 53413 response n/a n/a response 234 | 209.2695312500 n/a 53573 stimulus n/a n/a standard 235 | 210.1757812500 n/a 53805 stimulus n/a n/a noise 236 | 211.1953125000 n/a 54066 stimulus n/a n/a standard 237 | 212.2187500000 n/a 54328 stimulus n/a n/a standard 238 | 213.1718750000 n/a 54572 stimulus n/a n/a standard 239 | 214.1914062500 n/a 54833 stimulus n/a n/a noise 240 | 215.2070312500 n/a 55093 stimulus n/a n/a standard 241 | 216.1875000000 n/a 55344 stimulus n/a n/a standard 242 | 217.3046875000 n/a 55630 stimulus n/a n/a noise 243 | 218.2539062500 n/a 55873 stimulus n/a n/a standard 244 | 219.2734375000 n/a 56134 stimulus n/a n/a standard 245 | 220.2031250000 n/a 56372 stimulus n/a n/a noise 246 | 221.2070312500 n/a 56629 stimulus n/a n/a standard 247 | 222.2539062500 n/a 56897 stimulus 508 n/a oddball_with_reponse 248 | 222.7617187500 n/a 57027 response n/a n/a response 249 | 223.2148437500 n/a 57143 stimulus n/a n/a standard 250 | 224.1992187500 n/a 57395 stimulus 469 n/a oddball_with_reponse 251 | 224.6679687500 n/a 57515 response n/a n/a response 252 | 225.2656250000 n/a 57668 stimulus n/a n/a standard 253 | 226.2617187500 n/a 57923 stimulus n/a n/a standard 254 | 227.2578125000 n/a 58178 stimulus 398 n/a oddball_with_reponse 255 | 227.6562500000 n/a 58280 response n/a n/a response 256 | 228.2695312500 n/a 58437 stimulus n/a n/a standard 257 | 229.2265625000 n/a 58682 stimulus n/a n/a standard 258 | 230.2539062500 n/a 58945 stimulus 371 n/a oddball_with_reponse 259 | 230.6250000000 n/a 59040 response n/a n/a response 260 | 231.3085937500 n/a 59215 stimulus n/a n/a standard 261 | 232.2851562500 n/a 59465 stimulus 395 n/a oddball_with_reponse 262 | 232.6796875000 n/a 59566 response n/a n/a response 263 | 233.3046875000 n/a 59726 stimulus n/a n/a standard 264 | 234.2695312500 n/a 59973 stimulus n/a n/a standard 265 | 235.3046875000 n/a 60238 stimulus 418 n/a oddball_with_reponse 266 | 235.7226562500 n/a 60345 response n/a n/a response 267 | 236.2695312500 n/a 60485 stimulus n/a n/a standard 268 | 237.2734375000 n/a 60742 stimulus n/a n/a standard 269 | 238.3085937500 n/a 61007 stimulus n/a n/a standard 270 | 239.2890625000 n/a 61258 stimulus n/a n/a noise 271 | 240.3320312500 n/a 61525 stimulus n/a n/a standard 272 | 241.3632812500 n/a 61789 stimulus n/a n/a standard 273 | 242.3476562500 n/a 62041 stimulus n/a n/a standard 274 | 243.4101562500 n/a 62313 stimulus n/a n/a standard 275 | 244.3203125000 n/a 62546 stimulus 375 n/a oddball_with_reponse 276 | 244.6953125000 n/a 62642 response n/a n/a response 277 | 245.3984375000 n/a 62822 stimulus n/a n/a standard 278 | 246.3750000000 n/a 63072 stimulus n/a n/a standard 279 | 247.4062500000 n/a 63336 stimulus n/a n/a standard 280 | 248.3476562500 n/a 63577 stimulus n/a n/a noise 281 | 249.3828125000 n/a 63842 stimulus n/a n/a standard 282 | 250.3242187500 n/a 64083 stimulus n/a n/a standard 283 | 251.4179687500 n/a 64363 stimulus n/a n/a standard 284 | 252.3281250000 n/a 64596 stimulus n/a n/a standard 285 | 253.3359375000 n/a 64854 stimulus n/a n/a standard 286 | 254.3671875000 n/a 65118 stimulus n/a n/a noise 287 | 255.3789062500 n/a 65377 stimulus n/a n/a standard 288 | 256.4453125000 n/a 65650 stimulus n/a n/a standard 289 | 257.3945312500 n/a 65893 stimulus 457 n/a oddball_with_reponse 290 | 257.8515625000 n/a 66010 response n/a n/a response 291 | 258.4453125000 n/a 66162 stimulus n/a n/a standard 292 | 259.4726562500 n/a 66425 stimulus n/a n/a standard 293 | 260.3945312500 n/a 66661 stimulus 414 n/a oddball_with_reponse 294 | 260.8085937500 n/a 66767 response n/a n/a response 295 | 261.4023437500 n/a 66919 stimulus n/a n/a standard 296 | 262.4843750000 n/a 67196 stimulus n/a n/a standard 297 | 263.4375000000 n/a 67440 stimulus n/a n/a noise 298 | 264.4492187500 n/a 67699 stimulus n/a n/a standard 299 | 265.4375000000 n/a 67952 stimulus n/a n/a standard 300 | 266.4531250000 n/a 68212 stimulus n/a n/a noise 301 | 267.5039062500 n/a 68481 stimulus n/a n/a standard 302 | 268.5000000000 n/a 68736 stimulus n/a n/a standard 303 | 269.4765625000 n/a 68986 stimulus n/a n/a standard 304 | 270.5351562500 n/a 69257 stimulus n/a n/a noise 305 | 271.5039062500 n/a 69505 stimulus n/a n/a standard 306 | 272.5625000000 n/a 69776 stimulus n/a n/a noise 307 | 273.5820312500 n/a 70037 stimulus n/a n/a standard 308 | 274.5117187500 n/a 70275 stimulus n/a n/a standard 309 | 275.5273437500 n/a 70535 stimulus n/a n/a standard 310 | 276.5742187500 n/a 70803 stimulus n/a n/a standard 311 | 277.5703125000 n/a 71058 stimulus n/a n/a noise 312 | 278.5429687500 n/a 71307 stimulus n/a n/a standard 313 | 279.5429687500 n/a 71563 stimulus n/a n/a standard 314 | 280.5703125000 n/a 71826 stimulus 414 n/a oddball_with_reponse 315 | 280.9843750000 n/a 71932 response n/a n/a response 316 | 281.5546875000 n/a 72078 stimulus n/a n/a standard 317 | 282.6210937500 n/a 72351 stimulus n/a n/a standard 318 | 283.5859375000 n/a 72598 stimulus 336 n/a oddball_with_reponse 319 | 283.9218750000 n/a 72684 response n/a n/a response 320 | 284.5664062500 n/a 72849 stimulus n/a n/a standard 321 | 285.5781250000 n/a 73108 stimulus n/a n/a standard 322 | 286.6250000000 n/a 73376 stimulus n/a n/a standard 323 | 287.6210937500 n/a 73631 stimulus n/a n/a standard 324 | 288.5898437500 n/a 73879 stimulus n/a n/a standard 325 | 289.6093750000 n/a 74140 stimulus 426 n/a oddball_with_reponse 326 | 290.0351562500 n/a 74249 response n/a n/a response 327 | 290.6250000000 n/a 74400 stimulus n/a n/a standard 328 | 291.6757812500 n/a 74669 stimulus 359 n/a oddball_with_reponse 329 | 292.0351562500 n/a 74761 response n/a n/a response 330 | 292.6601562500 n/a 74921 stimulus n/a n/a standard 331 | 293.6328125000 n/a 75170 stimulus n/a n/a noise 332 | 294.6015625000 n/a 75418 stimulus n/a n/a standard 333 | 295.6914062500 n/a 75697 stimulus n/a n/a standard 334 | 296.6406250000 n/a 75940 stimulus n/a n/a standard 335 | 297.7226562500 n/a 76217 stimulus n/a n/a standard 336 | 298.6601562500 n/a 76457 stimulus n/a n/a standard 337 | 299.6523437500 n/a 76711 stimulus n/a n/a standard 338 | 300.7148437500 n/a 76983 stimulus n/a n/a noise 339 | 301.6445312500 n/a 77221 stimulus n/a n/a standard 340 | 302.6835937500 n/a 77487 stimulus n/a n/a standard 341 | 303.6953125000 n/a 77746 stimulus n/a n/a standard 342 | 304.6445312500 n/a 77989 stimulus 418 n/a oddball_with_reponse 343 | 305.0625000000 n/a 78096 response n/a n/a response 344 | 305.6640625000 n/a 78250 stimulus n/a n/a standard 345 | 306.6328125000 n/a 78498 stimulus n/a n/a standard 346 | 307.6367187500 n/a 78755 stimulus n/a n/a standard 347 | 308.6679687500 n/a 79019 stimulus n/a n/a noise 348 | 309.6367187500 n/a 79267 stimulus n/a n/a standard 349 | 310.6445312500 n/a 79525 stimulus n/a n/a noise 350 | 311.6796875000 n/a 79790 stimulus n/a n/a standard 351 | 312.6914062500 n/a 80049 stimulus 398 n/a oddball_with_reponse 352 | 313.0898437500 n/a 80151 response n/a n/a response 353 | 313.6601562500 n/a 80297 stimulus n/a n/a standard 354 | 314.6875000000 n/a 80560 stimulus n/a n/a standard 355 | 315.6992187500 n/a 80819 stimulus n/a n/a standard 356 | 316.6914062500 n/a 81073 stimulus 391 n/a oddball_with_reponse 357 | 317.0820312500 n/a 81173 response n/a n/a response 358 | 317.7460937500 n/a 81343 stimulus n/a n/a standard 359 | 318.6914062500 n/a 81585 stimulus n/a n/a standard 360 | 319.7070312500 n/a 81845 stimulus n/a n/a noise 361 | 320.6953125000 n/a 82098 stimulus n/a n/a standard 362 | 321.7656250000 n/a 82372 stimulus n/a n/a standard 363 | 322.7226562500 n/a 82617 stimulus n/a n/a standard 364 | 323.8085937500 n/a 82895 stimulus 277 n/a oddball_with_reponse 365 | 324.0859375000 n/a 82966 response n/a n/a response 366 | 324.7226562500 n/a 83129 stimulus n/a n/a standard 367 | 325.7539062500 n/a 83393 stimulus n/a n/a standard 368 | 326.7148437500 n/a 83639 stimulus n/a n/a standard 369 | 327.7265625000 n/a 83898 stimulus n/a n/a noise 370 | 328.7851562500 n/a 84169 stimulus n/a n/a standard 371 | 329.7460937500 n/a 84415 stimulus 352 n/a oddball_with_reponse 372 | 330.0976562500 n/a 84505 response n/a n/a response 373 | 330.7343750000 n/a 84668 stimulus n/a n/a standard 374 | 331.7929687500 n/a 84939 stimulus n/a n/a noise 375 | 332.7812500000 n/a 85192 stimulus n/a n/a standard 376 | 333.7539062500 n/a 85441 stimulus n/a n/a noise 377 | 334.7421875000 n/a 85694 stimulus n/a n/a standard 378 | 335.7539062500 n/a 85953 stimulus n/a n/a standard 379 | 336.7539062500 n/a 86209 stimulus n/a n/a noise 380 | 337.7578125000 n/a 86466 stimulus n/a n/a standard 381 | 338.7656250000 n/a 86724 stimulus n/a n/a noise 382 | 339.7578125000 n/a 86978 stimulus n/a n/a standard 383 | 340.7851562500 n/a 87241 stimulus n/a n/a standard 384 | 341.8046875000 n/a 87502 stimulus n/a n/a standard 385 | 342.8203125000 n/a 87762 stimulus n/a n/a standard 386 | 343.8125000000 n/a 88016 stimulus n/a n/a noise 387 | 344.8320312500 n/a 88277 stimulus n/a n/a standard 388 | 345.8007812500 n/a 88525 stimulus n/a n/a noise 389 | 346.7968750000 n/a 88780 stimulus n/a n/a standard 390 | 347.8203125000 n/a 89042 stimulus n/a n/a noise 391 | 348.8359375000 n/a 89302 stimulus n/a n/a standard 392 | 349.8906250000 n/a 89572 stimulus n/a n/a standard 393 | 350.8789062500 n/a 89825 stimulus n/a n/a noise 394 | 351.8906250000 n/a 90084 stimulus n/a n/a standard 395 | 352.9257812500 n/a 90349 stimulus n/a n/a noise 396 | 353.8945312500 n/a 90597 stimulus n/a n/a standard 397 | 354.8554687500 n/a 90843 stimulus n/a n/a noise 398 | 355.9218750000 n/a 91116 stimulus n/a n/a standard 399 | 356.9414062500 n/a 91377 stimulus n/a n/a standard 400 | 357.9101562500 n/a 91625 stimulus 453 n/a oddball_with_reponse 401 | 358.3632812500 n/a 91741 response n/a n/a response 402 | 358.8867187500 n/a 91875 stimulus n/a n/a standard 403 | 359.9140625000 n/a 92138 stimulus n/a n/a noise 404 | 360.9140625000 n/a 92394 stimulus n/a n/a standard 405 | 361.9023437500 n/a 92647 stimulus n/a n/a standard 406 | 362.9648437500 n/a 92919 stimulus n/a n/a noise 407 | 363.9101562500 n/a 93161 stimulus n/a n/a standard 408 | 364.9453125000 n/a 93426 stimulus n/a n/a standard 409 | 365.9023437500 n/a 93671 stimulus n/a n/a standard 410 | 366.9257812500 n/a 93933 stimulus n/a n/a standard 411 | 367.9609375000 n/a 94198 stimulus n/a n/a standard 412 | 368.9257812500 n/a 94445 stimulus n/a n/a standard 413 | 369.9882812500 n/a 94717 stimulus n/a n/a standard 414 | 371.0156250000 n/a 94980 stimulus n/a n/a standard 415 | 372.0703125000 n/a 95250 stimulus n/a n/a noise 416 | 372.9531250000 n/a 95476 stimulus n/a n/a standard 417 | 373.9531250000 n/a 95732 stimulus n/a n/a standard 418 | 374.9960937500 n/a 95999 stimulus n/a n/a standard 419 | 375.9960937500 n/a 96255 stimulus n/a n/a noise 420 | 376.9843750000 n/a 96508 stimulus n/a n/a standard 421 | 377.9882812500 n/a 96765 stimulus 410 n/a oddball_with_reponse 422 | 378.3984375000 n/a 96870 response n/a n/a response 423 | 379.0585937500 n/a 97039 stimulus n/a n/a standard 424 | 380.0312500000 n/a 97288 stimulus 363 n/a oddball_with_reponse 425 | 380.3945312500 n/a 97381 response n/a n/a response 426 | 381.0156250000 n/a 97540 stimulus n/a n/a standard 427 | 382.0625000000 n/a 97808 stimulus 379 n/a oddball_with_reponse 428 | 382.4414062500 n/a 97905 response n/a n/a response 429 | 383.0468750000 n/a 98060 stimulus n/a n/a standard 430 | 384.0234375000 n/a 98310 stimulus n/a n/a noise 431 | 385.0625000000 n/a 98576 stimulus n/a n/a standard 432 | 386.0625000000 n/a 98832 stimulus n/a n/a noise 433 | 387.0937500000 n/a 99096 stimulus n/a n/a standard 434 | 388.0234375000 n/a 99334 stimulus 406 n/a oddball_with_reponse 435 | 388.4296875000 n/a 99438 response n/a n/a response 436 | 389.0117187500 n/a 99587 stimulus n/a n/a standard 437 | 390.0625000000 n/a 99856 stimulus n/a n/a standard 438 | 391.0507812500 n/a 100109 stimulus n/a n/a noise 439 | 392.0625000000 n/a 100368 stimulus n/a n/a standard 440 | 393.0351562500 n/a 100617 stimulus n/a n/a noise 441 | 394.0781250000 n/a 100884 stimulus n/a n/a standard 442 | 395.0429687500 n/a 101131 stimulus n/a n/a standard 443 | 396.0468750000 n/a 101388 stimulus n/a n/a standard 444 | 397.0664062500 n/a 101649 stimulus n/a n/a standard 445 | 398.0937500000 n/a 101912 stimulus n/a n/a noise 446 | 399.0820312500 n/a 102165 stimulus n/a n/a standard 447 | 400.0937500000 n/a 102424 stimulus n/a n/a standard 448 | 401.0585937500 n/a 102671 stimulus n/a n/a standard 449 | 402.0742187500 n/a 102931 stimulus n/a n/a standard 450 | 403.0664062500 n/a 103185 stimulus 441 n/a oddball_with_reponse 451 | 403.5078125000 n/a 103298 response n/a n/a response 452 | 404.0976562500 n/a 103449 stimulus n/a n/a standard 453 | 405.0625000000 n/a 103696 stimulus n/a n/a standard 454 | 406.1289062500 n/a 103969 stimulus n/a n/a standard 455 | 407.0703125000 n/a 104210 stimulus n/a n/a standard 456 | 408.1054687500 n/a 104475 stimulus n/a n/a standard 457 | 409.0937500000 n/a 104728 stimulus n/a n/a standard 458 | 410.0937500000 n/a 104984 stimulus n/a n/a standard 459 | 411.1250000000 n/a 105248 stimulus n/a n/a noise 460 | 412.1015625000 n/a 105498 stimulus n/a n/a standard 461 | 413.1015625000 n/a 105754 stimulus n/a n/a standard 462 | 414.0937500000 n/a 106008 stimulus 363 n/a oddball_with_reponse 463 | 414.4570312500 n/a 106101 response n/a n/a response 464 | 415.0937500000 n/a 106264 stimulus n/a n/a standard 465 | 416.1171875000 n/a 106526 stimulus 379 n/a oddball_with_reponse 466 | 416.4960937500 n/a 106623 response n/a n/a response 467 | 417.1054687500 n/a 106779 stimulus n/a n/a standard 468 | 418.1210937500 n/a 107039 stimulus n/a n/a standard 469 | 419.0976562500 n/a 107289 stimulus 375 n/a oddball_with_reponse 470 | 419.4726562500 n/a 107385 response n/a n/a response 471 | 420.1132812500 n/a 107549 stimulus n/a n/a standard 472 | 421.1015625000 n/a 107802 stimulus n/a n/a standard 473 | 422.1132812500 n/a 108061 stimulus n/a n/a standard 474 | 423.1328125000 n/a 108322 stimulus n/a n/a standard 475 | 424.1289062500 n/a 108577 stimulus n/a n/a standard 476 | 425.1132812500 n/a 108829 stimulus n/a n/a standard 477 | 426.1132812500 n/a 109085 stimulus n/a n/a noise 478 | 427.1250000000 n/a 109344 stimulus n/a n/a standard 479 | 428.1289062500 n/a 109601 stimulus 426 n/a oddball_with_reponse 480 | 428.5546875000 n/a 109710 response n/a n/a response 481 | 429.1250000000 n/a 109856 stimulus n/a n/a standard 482 | 430.1250000000 n/a 110112 stimulus n/a n/a standard 483 | 431.1250000000 n/a 110368 stimulus n/a n/a standard 484 | 432.1328125000 n/a 110626 stimulus n/a n/a standard 485 | 433.1523437500 n/a 110887 stimulus n/a n/a standard 486 | 434.1289062500 n/a 111137 stimulus 355 n/a oddball_with_reponse 487 | 434.4843750000 n/a 111228 response n/a n/a response 488 | 435.1445312500 n/a 111397 stimulus n/a n/a standard 489 | 436.2265625000 n/a 111674 stimulus n/a n/a standard 490 | 437.1757812500 n/a 111917 stimulus 402 n/a oddball_with_reponse 491 | 437.5781250000 n/a 112020 response n/a n/a response 492 | 438.1992187500 n/a 112179 stimulus n/a n/a standard 493 | 439.1992187500 n/a 112435 stimulus n/a n/a standard 494 | 440.1835937500 n/a 112687 stimulus n/a n/a standard 495 | 441.2968750000 n/a 112972 stimulus n/a n/a standard 496 | 442.2265625000 n/a 113210 stimulus 344 n/a oddball_with_reponse 497 | 442.5703125000 n/a 113298 response n/a n/a response 498 | 443.2539062500 n/a 113473 stimulus n/a n/a standard 499 | 444.3242187500 n/a 113747 stimulus n/a n/a noise 500 | 445.2265625000 n/a 113978 stimulus n/a n/a standard 501 | 446.2031250000 n/a 114228 stimulus n/a n/a standard 502 | 447.1992187500 n/a 114483 stimulus n/a n/a noise 503 | 448.1992187500 n/a 114739 stimulus n/a n/a standard 504 | 449.2578125000 n/a 115010 stimulus n/a n/a standard 505 | 450.2617187500 n/a 115267 stimulus n/a n/a standard 506 | 451.2070312500 n/a 115509 stimulus n/a n/a noise 507 | 452.2304687500 n/a 115771 stimulus n/a n/a standard 508 | 453.2109375000 n/a 116022 stimulus n/a n/a standard 509 | 454.2109375000 n/a 116278 stimulus 410 n/a oddball_with_reponse 510 | 454.6210937500 n/a 116383 response n/a n/a response 511 | 455.3125000000 n/a 116560 stimulus n/a n/a standard 512 | 456.2734375000 n/a 116806 stimulus n/a n/a standard 513 | 457.2500000000 n/a 117056 stimulus n/a n/a standard 514 | 458.2265625000 n/a 117306 stimulus 402 n/a oddball_with_reponse 515 | 458.6289062500 n/a 117409 response n/a n/a response 516 | 459.3125000000 n/a 117584 stimulus n/a n/a standard 517 | 460.3203125000 n/a 117842 stimulus 363 n/a oddball_with_reponse 518 | 460.6835937500 n/a 117935 response n/a n/a response 519 | 461.2695312500 n/a 118085 stimulus n/a n/a standard 520 | 462.2851562500 n/a 118345 stimulus 414 n/a oddball_with_reponse 521 | 462.6992187500 n/a 118451 response n/a n/a response 522 | 463.2812500000 n/a 118600 stimulus n/a n/a standard 523 | 464.3007812500 n/a 118861 stimulus n/a n/a standard 524 | 465.3125000000 n/a 119120 stimulus n/a n/a standard 525 | 466.3125000000 n/a 119376 stimulus n/a n/a standard 526 | 467.3281250000 n/a 119636 stimulus n/a n/a standard 527 | 468.3242187500 n/a 119891 stimulus n/a n/a noise 528 | 469.2851562500 n/a 120137 stimulus n/a n/a standard 529 | 470.2851562500 n/a 120393 stimulus n/a n/a noise 530 | 471.3593750000 n/a 120668 stimulus n/a n/a standard 531 | 472.3554687500 n/a 120923 stimulus n/a n/a standard 532 | 473.3515625000 n/a 121178 stimulus n/a n/a noise 533 | 474.3828125000 n/a 121442 stimulus n/a n/a standard 534 | 475.3906250000 n/a 121700 stimulus n/a n/a standard 535 | 476.3203125000 n/a 121938 stimulus n/a n/a standard 536 | 477.3359375000 n/a 122198 stimulus n/a n/a standard 537 | 478.3593750000 n/a 122460 stimulus n/a n/a standard 538 | 479.3710937500 n/a 122719 stimulus 445 n/a oddball_with_reponse 539 | 479.8164062500 n/a 122833 response n/a n/a response 540 | 480.3593750000 n/a 122972 stimulus n/a n/a standard 541 | 481.3242187500 n/a 123219 stimulus n/a n/a standard 542 | 482.3203125000 n/a 123474 stimulus 465 n/a oddball_with_reponse 543 | 482.7851562500 n/a 123593 response n/a n/a response 544 | 483.3632812500 n/a 123741 stimulus n/a n/a standard 545 | 484.3789062500 n/a 124001 stimulus n/a n/a noise 546 | 485.3359375000 n/a 124246 stimulus n/a n/a standard 547 | 486.3554687500 n/a 124507 stimulus n/a n/a standard 548 | 487.3945312500 n/a 124773 stimulus n/a n/a standard 549 | 488.4140625000 n/a 125034 stimulus n/a n/a standard 550 | 489.3789062500 n/a 125281 stimulus 445 n/a oddball_with_reponse 551 | 489.8242187500 n/a 125395 response n/a n/a response 552 | 490.4023437500 n/a 125543 stimulus n/a n/a standard 553 | 491.4296875000 n/a 125806 stimulus n/a n/a standard 554 | 492.4296875000 n/a 126062 stimulus 410 n/a oddball_with_reponse 555 | 492.8398437500 n/a 126167 response n/a n/a response 556 | 493.4257812500 n/a 126317 stimulus n/a n/a standard 557 | 494.4414062500 n/a 126577 stimulus n/a n/a noise 558 | 495.4414062500 n/a 126833 stimulus n/a n/a standard 559 | 496.4765625000 n/a 127098 stimulus n/a n/a standard 560 | 497.5039062500 n/a 127361 stimulus n/a n/a standard 561 | 498.5156250000 n/a 127620 stimulus 430 n/a oddball_with_reponse 562 | 498.9453125000 n/a 127730 response n/a n/a response 563 | 499.5273437500 n/a 127879 stimulus n/a n/a standard 564 | 500.4453125000 n/a 128114 stimulus n/a n/a standard 565 | 501.4570312500 n/a 128373 stimulus 430 n/a oddball_with_reponse 566 | 501.8867187500 n/a 128483 response n/a n/a response 567 | 502.5195312500 n/a 128645 stimulus n/a n/a standard 568 | 503.5000000000 n/a 128896 stimulus 418 n/a oddball_with_reponse 569 | 503.9179687500 n/a 129003 response n/a n/a response 570 | 504.4726562500 n/a 129145 stimulus n/a n/a standard 571 | 505.4843750000 n/a 129404 stimulus 469 n/a oddball_with_reponse 572 | 505.9531250000 n/a 129524 response n/a n/a response 573 | 506.4843750000 n/a 129660 stimulus n/a n/a standard 574 | 507.4765625000 n/a 129914 stimulus n/a n/a standard 575 | 508.5507812500 n/a 130189 stimulus n/a n/a standard 576 | 509.5078125000 n/a 130434 stimulus n/a n/a noise 577 | 510.5546875000 n/a 130702 stimulus n/a n/a standard 578 | 511.6171875000 n/a 130974 stimulus n/a n/a standard 579 | 512.5742187500 n/a 131219 stimulus n/a n/a standard 580 | 513.5898437500 n/a 131479 stimulus n/a n/a noise 581 | 514.6171875000 n/a 131742 stimulus n/a n/a standard 582 | 515.5312500000 n/a 131976 stimulus 445 n/a oddball_with_reponse 583 | 515.9765625000 n/a 132090 response n/a n/a response 584 | 516.5507812500 n/a 132237 stimulus n/a n/a standard 585 | 517.5742187500 n/a 132499 stimulus n/a n/a standard 586 | 518.5625000000 n/a 132752 stimulus 453 n/a oddball_with_reponse 587 | 519.0156250000 n/a 132868 response n/a n/a response 588 | 519.5859375000 n/a 133014 stimulus n/a n/a standard 589 | 520.5937500000 n/a 133272 stimulus n/a n/a standard 590 | 521.5820312500 n/a 133525 stimulus n/a n/a standard 591 | 522.5664062500 n/a 133777 stimulus 422 n/a oddball_with_reponse 592 | 522.9882812500 n/a 133885 response n/a n/a response 593 | 523.5781250000 n/a 134036 stimulus n/a n/a standard 594 | 524.6093750000 n/a 134300 stimulus n/a n/a noise 595 | 525.6289062500 n/a 134561 stimulus n/a n/a standard 596 | 526.6406250000 n/a 134820 stimulus n/a n/a standard 597 | 527.6523437500 n/a 135079 stimulus n/a n/a standard 598 | 528.7304687500 n/a 135355 stimulus n/a n/a noise 599 | 529.6757812500 n/a 135597 stimulus n/a n/a standard 600 | 530.6718750000 n/a 135852 stimulus n/a n/a noise 601 | 531.6445312500 n/a 136101 stimulus n/a n/a standard 602 | 532.6953125000 n/a 136370 stimulus n/a n/a standard 603 | 533.6914062500 n/a 136625 stimulus n/a n/a standard 604 | 534.6914062500 n/a 136881 stimulus n/a n/a standard 605 | 535.6914062500 n/a 137137 stimulus n/a n/a standard 606 | 536.7617187500 n/a 137411 stimulus 457 n/a oddball_with_reponse 607 | 537.2187500000 n/a 137528 response n/a n/a response 608 | 537.7656250000 n/a 137668 stimulus n/a n/a standard 609 | 538.7226562500 n/a 137913 stimulus n/a n/a standard 610 | 539.7578125000 n/a 138178 stimulus n/a n/a standard 611 | 540.7148437500 n/a 138423 stimulus n/a n/a standard 612 | 541.7460937500 n/a 138687 stimulus 398 n/a oddball_with_reponse 613 | 542.1445312500 n/a 138789 response n/a n/a response 614 | 542.7773437500 n/a 138951 stimulus n/a n/a standard 615 | 543.7500000000 n/a 139200 stimulus 371 n/a oddball_with_reponse 616 | 544.1210937500 n/a 139295 response n/a n/a response 617 | 544.7500000000 n/a 139456 stimulus n/a n/a standard 618 | 545.8007812500 n/a 139725 stimulus 402 n/a oddball_with_reponse 619 | 546.2031250000 n/a 139828 response n/a n/a response 620 | 546.7421875000 n/a 139966 stimulus n/a n/a standard 621 | 547.7617187500 n/a 140227 stimulus n/a n/a standard 622 | 548.7812500000 n/a 140488 stimulus n/a n/a standard 623 | 549.7968750000 n/a 140748 stimulus 449 n/a oddball_with_reponse 624 | 550.2460937500 n/a 140863 response n/a n/a response 625 | 550.7773437500 n/a 140999 stimulus n/a n/a standard 626 | 551.8671875000 n/a 141278 stimulus 371 n/a oddball_with_reponse 627 | 552.2382812500 n/a 141373 response n/a n/a response 628 | 552.8125000000 n/a 141520 stimulus n/a n/a standard 629 | 553.8320312500 n/a 141781 stimulus 387 n/a oddball_with_reponse 630 | 554.2187500000 n/a 141880 response n/a n/a response 631 | 554.8046875000 n/a 142030 stimulus n/a n/a standard 632 | 555.8203125000 n/a 142290 stimulus n/a n/a noise 633 | 556.8398437500 n/a 142551 stimulus n/a n/a standard 634 | 557.8242187500 n/a 142803 stimulus 422 n/a oddball_with_reponse 635 | 558.2460937500 n/a 142911 response n/a n/a response 636 | 558.8750000000 n/a 143072 stimulus n/a n/a standard 637 | 559.8554687500 n/a 143323 stimulus n/a n/a noise 638 | 560.8554687500 n/a 143579 stimulus n/a n/a standard 639 | 561.8398437500 n/a 143831 stimulus n/a n/a noise 640 | 562.8984375000 n/a 144102 stimulus n/a n/a standard 641 | 563.8710937500 n/a 144351 stimulus n/a n/a standard 642 | 564.9218750000 n/a 144620 stimulus 375 n/a oddball_with_reponse 643 | 565.2968750000 n/a 144716 response n/a n/a response 644 | 565.8671875000 n/a 144862 stimulus n/a n/a standard 645 | 566.9257812500 n/a 145133 stimulus n/a n/a standard 646 | 567.8671875000 n/a 145374 stimulus n/a n/a standard 647 | 568.8906250000 n/a 145636 stimulus n/a n/a standard 648 | 569.8710937500 n/a 145887 stimulus n/a n/a standard 649 | 570.9648437500 n/a 146167 stimulus 387 n/a oddball_with_reponse 650 | 571.3515625000 n/a 146266 response n/a n/a response 651 | 571.8750000000 n/a 146400 stimulus n/a n/a standard 652 | 572.8867187500 n/a 146659 stimulus n/a n/a standard 653 | 573.9765625000 n/a 146938 stimulus 496 n/a oddball_with_reponse 654 | 574.4726562500 n/a 147065 response n/a n/a response 655 | 574.9375000000 n/a 147184 stimulus n/a n/a standard 656 | 575.9414062500 n/a 147441 stimulus n/a n/a standard 657 | 576.9101562500 n/a 147689 stimulus n/a n/a standard 658 | 577.8984375000 n/a 147942 stimulus n/a n/a standard 659 | 578.8945312500 n/a 148197 stimulus n/a n/a noise 660 | 579.9335937500 n/a 148463 stimulus n/a n/a standard 661 | 580.9375000000 n/a 148720 stimulus n/a n/a standard 662 | 581.9453125000 n/a 148978 stimulus n/a n/a standard 663 | 582.9492187500 n/a 149235 stimulus n/a n/a noise 664 | 583.9609375000 n/a 149494 stimulus n/a n/a standard 665 | 585.0156250000 n/a 149764 stimulus n/a n/a standard 666 | 585.9492187500 n/a 150003 stimulus n/a n/a noise 667 | 587.0156250000 n/a 150276 stimulus n/a n/a standard 668 | 587.9804687500 n/a 150523 stimulus 461 n/a oddball_with_reponse 669 | 588.4414062500 n/a 150641 response n/a n/a response 670 | 588.9843750000 n/a 150780 stimulus n/a n/a standard 671 | 590.0273437500 n/a 151047 stimulus n/a n/a noise 672 | 591.0664062500 n/a 151313 stimulus n/a n/a standard 673 | 592.1054687500 n/a 151579 stimulus n/a n/a standard 674 | 593.0390625000 n/a 151818 stimulus n/a n/a standard 675 | 594.0703125000 n/a 152082 stimulus n/a n/a standard 676 | 595.0390625000 n/a 152330 stimulus n/a n/a noise 677 | 596.0273437500 n/a 152583 stimulus n/a n/a standard 678 | 597.0351562500 n/a 152841 stimulus n/a n/a standard 679 | 598.0625000000 n/a 153104 stimulus 441 n/a oddball_with_reponse 680 | 598.5039062500 n/a 153217 response n/a n/a response 681 | 599.0585937500 n/a 153359 stimulus n/a n/a standard 682 | 600.0585937500 n/a 153615 stimulus 422 n/a oddball_with_reponse 683 | 600.4804687500 n/a 153723 response n/a n/a response 684 | 601.0820312500 n/a 153877 stimulus n/a n/a standard 685 | 602.1289062500 n/a 154145 stimulus n/a n/a standard 686 | 603.0585937500 n/a 154383 stimulus n/a n/a standard 687 | 604.0468750000 n/a 154636 stimulus n/a n/a standard 688 | 605.0937500000 n/a 154904 stimulus n/a n/a noise 689 | 606.0507812500 n/a 155149 stimulus n/a n/a standard 690 | 607.0546875000 n/a 155406 stimulus 414 n/a oddball_with_reponse 691 | 607.4687500000 n/a 155512 response n/a n/a response 692 | 608.0781250000 n/a 155668 stimulus n/a n/a standard 693 | 609.0742187500 n/a 155923 stimulus n/a n/a standard 694 | 610.1171875000 n/a 156190 stimulus 391 n/a oddball_with_reponse 695 | 610.5078125000 n/a 156290 response n/a n/a response 696 | 611.1132812500 n/a 156445 stimulus n/a n/a standard 697 | 612.1054687500 n/a 156699 stimulus n/a n/a noise 698 | 613.1015625000 n/a 156954 stimulus n/a n/a standard 699 | 614.1132812500 n/a 157213 stimulus n/a n/a standard 700 | 615.0820312500 n/a 157461 stimulus n/a n/a standard 701 | 616.0742187500 n/a 157715 stimulus 363 n/a oddball_with_reponse 702 | 616.4375000000 n/a 157808 response n/a n/a response 703 | 617.1093750000 n/a 157980 stimulus n/a n/a standard 704 | 618.1210937500 n/a 158239 stimulus n/a n/a standard 705 | 619.1328125000 n/a 158498 stimulus n/a n/a standard 706 | 620.1054687500 n/a 158747 stimulus n/a n/a standard 707 | 621.0898437500 n/a 158999 stimulus 441 n/a oddball_with_reponse 708 | 621.5312500000 n/a 159112 response n/a n/a response 709 | 622.1210937500 n/a 159263 stimulus n/a n/a standard 710 | 623.1210937500 n/a 159519 stimulus n/a n/a standard 711 | 624.1210937500 n/a 159775 stimulus n/a n/a standard 712 | 625.1289062500 n/a 160033 stimulus n/a n/a standard 713 | 626.1289062500 n/a 160289 stimulus n/a n/a standard 714 | 627.1328125000 n/a 160546 stimulus n/a n/a noise 715 | 628.1289062500 n/a 160801 stimulus n/a n/a standard 716 | 629.1679687500 n/a 161067 stimulus n/a n/a noise 717 | 630.1328125000 n/a 161314 stimulus n/a n/a standard 718 | 631.1328125000 n/a 161570 stimulus n/a n/a standard 719 | 632.1328125000 n/a 161826 stimulus n/a n/a standard 720 | 633.1328125000 n/a 162082 stimulus 453 n/a oddball_with_reponse 721 | 633.5859375000 n/a 162198 response n/a n/a response 722 | 634.2265625000 n/a 162362 stimulus n/a n/a standard 723 | 635.1328125000 n/a 162594 stimulus n/a n/a standard 724 | 636.1992187500 n/a 162867 stimulus n/a n/a standard 725 | 637.1523437500 n/a 163111 stimulus n/a n/a standard 726 | 638.1757812500 n/a 163373 stimulus 430 n/a oddball_with_reponse 727 | 638.6054687500 n/a 163483 response n/a n/a response 728 | 639.1328125000 n/a 163618 stimulus n/a n/a standard 729 | 640.1289062500 n/a 163873 stimulus n/a n/a standard 730 | 641.1328125000 n/a 164130 stimulus n/a n/a standard 731 | 642.1328125000 n/a 164386 stimulus n/a n/a noise 732 | 643.1328125000 n/a 164642 stimulus n/a n/a standard 733 | 644.1289062500 n/a 164897 stimulus n/a n/a noise 734 | 645.1679687500 n/a 165163 stimulus n/a n/a standard 735 | 646.1328125000 n/a 165410 stimulus 391 n/a oddball_with_reponse 736 | 646.5234375000 n/a 165510 response n/a n/a response 737 | 647.1328125000 n/a 165666 stimulus n/a n/a standard 738 | 648.1367187500 n/a 165923 stimulus n/a n/a standard 739 | 649.2500000000 n/a 166208 stimulus 383 n/a oddball_with_reponse 740 | 649.6328125000 n/a 166306 response n/a n/a response 741 | 650.1484375000 n/a 166438 stimulus n/a n/a standard 742 | 651.2500000000 n/a 166720 stimulus n/a n/a standard 743 | 652.2265625000 n/a 166970 stimulus n/a n/a standard 744 | 653.2148437500 n/a 167223 stimulus n/a n/a noise 745 | 654.2656250000 n/a 167492 stimulus n/a n/a standard 746 | 655.1992187500 n/a 167731 stimulus n/a n/a standard 747 | 656.3007812500 n/a 168013 stimulus n/a n/a noise 748 | 657.2070312500 n/a 168245 stimulus n/a n/a standard 749 | 658.2382812500 n/a 168509 stimulus n/a n/a standard 750 | 659.3398437500 n/a 168791 stimulus n/a n/a standard 751 | 660.2187500000 n/a 169016 stimulus n/a n/a noise 752 | 661.2265625000 n/a 169274 stimulus n/a n/a standard 753 | 662.2343750000 n/a 169532 stimulus n/a n/a standard 754 | 663.2343750000 n/a 169788 stimulus n/a n/a standard 755 | 664.2812500000 n/a 170056 stimulus n/a n/a standard 756 | 665.3242187500 n/a 170323 stimulus n/a n/a standard 757 | 666.3476562500 n/a 170585 stimulus n/a n/a standard 758 | 667.3398437500 n/a 170839 stimulus 453 n/a oddball_with_reponse 759 | 667.7929687500 n/a 170955 response n/a n/a response 760 | 668.3203125000 n/a 171090 stimulus n/a n/a standard 761 | 669.3398437500 n/a 171351 stimulus n/a n/a noise 762 | 670.3632812500 n/a 171613 stimulus n/a n/a standard 763 | 671.3359375000 n/a 171862 stimulus 426 n/a oddball_with_reponse 764 | 671.7617187500 n/a 171971 response n/a n/a response 765 | 672.3710937500 n/a 172127 stimulus n/a n/a standard 766 | 673.3867187500 n/a 172387 stimulus n/a n/a noise 767 | 674.3515625000 n/a 172634 stimulus n/a n/a standard 768 | 675.3515625000 n/a 172890 stimulus n/a n/a noise 769 | 676.3750000000 n/a 173152 stimulus n/a n/a standard 770 | 677.3945312500 n/a 173413 stimulus n/a n/a noise 771 | 678.4062500000 n/a 173672 stimulus n/a n/a standard 772 | 679.4179687500 n/a 173931 stimulus n/a n/a standard 773 | 680.4648437500 n/a 174199 stimulus n/a n/a standard 774 | 681.3671875000 n/a 174430 stimulus n/a n/a standard 775 | 682.4375000000 n/a 174704 stimulus n/a n/a standard 776 | 683.4726562500 n/a 174969 stimulus n/a n/a standard 777 | 684.3710937500 n/a 175199 stimulus 457 n/a oddball_with_reponse 778 | 684.8281250000 n/a 175316 response n/a n/a response 779 | 685.3984375000 n/a 175462 stimulus n/a n/a standard 780 | 686.4179687500 n/a 175723 stimulus 402 n/a oddball_with_reponse 781 | 686.8203125000 n/a 175826 response n/a n/a response 782 | 687.3906250000 n/a 175972 stimulus n/a n/a standard 783 | 688.4687500000 n/a 176248 stimulus n/a n/a standard 784 | 689.4375000000 n/a 176496 stimulus n/a n/a standard 785 | 690.4570312500 n/a 176757 stimulus n/a n/a standard 786 | 691.4531250000 n/a 177012 stimulus n/a n/a standard 787 | 692.4414062500 n/a 177265 stimulus n/a n/a standard 788 | 693.5117187500 n/a 177539 stimulus 383 n/a oddball_with_reponse 789 | 693.8945312500 n/a 177637 response n/a n/a response 790 | 694.4765625000 n/a 177786 stimulus n/a n/a standard 791 | 695.5039062500 n/a 178049 stimulus 391 n/a oddball_with_reponse 792 | 695.8945312500 n/a 178149 response n/a n/a response 793 | 696.5273437500 n/a 178311 stimulus n/a n/a standard 794 | 697.4765625000 n/a 178554 stimulus n/a n/a noise 795 | 698.4609375000 n/a 178806 stimulus n/a n/a standard 796 | 699.4882812500 n/a 179069 stimulus n/a n/a standard 797 | 700.4960937500 n/a 179327 stimulus 375 n/a oddball_with_reponse 798 | 700.8710937500 n/a 179423 response n/a n/a response 799 | 701.4765625000 n/a 179578 stimulus n/a n/a standard 800 | 702.4804687500 n/a 179835 stimulus 379 n/a oddball_with_reponse 801 | 702.8593750000 n/a 179932 response n/a n/a response 802 | 703.4804687500 n/a 180091 stimulus n/a n/a standard 803 | 704.5546875000 n/a 180366 stimulus 316 n/a oddball_with_reponse 804 | 704.8710937500 n/a 180447 response n/a n/a response 805 | 705.6015625000 n/a 180634 stimulus n/a n/a standard 806 | 706.5117187500 n/a 180867 stimulus n/a n/a noise 807 | 707.5273437500 n/a 181127 stimulus n/a n/a standard 808 | 708.5507812500 n/a 181389 stimulus n/a n/a standard 809 | 709.5195312500 n/a 181637 stimulus n/a n/a standard 810 | 710.5390625000 n/a 181898 stimulus 414 n/a oddball_with_reponse 811 | 710.9531250000 n/a 182004 response n/a n/a response 812 | 711.5234375000 n/a 182150 stimulus n/a n/a standard 813 | 712.5312500000 n/a 182408 stimulus n/a n/a noise 814 | 713.6015625000 n/a 182682 stimulus n/a n/a standard 815 | 714.5156250000 n/a 182916 stimulus n/a n/a noise 816 | 715.5273437500 n/a 183175 stimulus n/a n/a standard 817 | 716.5078125000 n/a 183426 stimulus n/a n/a noise 818 | 717.5156250000 n/a 183684 stimulus n/a n/a standard 819 | 718.5273437500 n/a 183943 stimulus 359 n/a oddball_with_reponse 820 | 718.8867187500 n/a 184035 response n/a n/a response 821 | 719.5078125000 n/a 184194 stimulus n/a n/a standard 822 | 720.5273437500 n/a 184455 stimulus n/a n/a standard 823 | 721.5976562500 n/a 184729 stimulus n/a n/a standard 824 | 722.5742187500 n/a 184979 stimulus n/a n/a standard 825 | 723.5312500000 n/a 185224 stimulus n/a n/a standard 826 | 724.5507812500 n/a 185485 stimulus n/a n/a standard 827 | 725.5117187500 n/a 185731 stimulus 434 n/a oddball_with_reponse 828 | 725.9453125000 n/a 185842 response n/a n/a response 829 | 726.5156250000 n/a 185988 stimulus n/a n/a standard 830 | 727.6015625000 n/a 186266 stimulus 348 n/a oddball_with_reponse 831 | 727.9492187500 n/a 186355 response n/a n/a response 832 | 728.5898437500 n/a 186519 stimulus n/a n/a standard 833 | 729.5625000000 n/a 186768 stimulus 387 n/a oddball_with_reponse 834 | 729.9492187500 n/a 186867 response n/a n/a response 835 | 730.5156250000 n/a 187012 stimulus n/a n/a standard 836 | 731.5234375000 n/a 187270 stimulus n/a n/a standard 837 | 732.6054687500 n/a 187547 stimulus n/a n/a standard 838 | 733.5234375000 n/a 187782 stimulus n/a n/a standard 839 | 734.5351562500 n/a 188041 stimulus n/a n/a standard 840 | 735.5937500000 n/a 188312 stimulus n/a n/a standard 841 | 736.6640625000 n/a 188586 stimulus n/a n/a standard 842 | 737.6250000000 n/a 188832 stimulus n/a n/a noise 843 | 738.6250000000 n/a 189088 stimulus n/a n/a standard 844 | 739.6445312500 n/a 189349 stimulus n/a n/a standard 845 | 740.6093750000 n/a 189596 stimulus n/a n/a noise 846 | 741.6367187500 n/a 189859 stimulus n/a n/a standard 847 | 742.7031250000 n/a 190132 stimulus n/a n/a standard 848 | 743.6835937500 n/a 190383 stimulus n/a n/a standard 849 | 744.6406250000 n/a 190628 stimulus 410 n/a oddball_with_reponse 850 | 745.0507812500 n/a 190733 response n/a n/a response 851 | 745.6445312500 n/a 190885 stimulus n/a n/a standard 852 | 746.6835937500 n/a 191151 stimulus n/a n/a standard 853 | 747.6445312500 n/a 191397 stimulus n/a n/a standard 854 | 748.7226562500 n/a 191673 stimulus n/a n/a standard 855 | 749.6757812500 n/a 191917 stimulus n/a n/a standard 856 | 750.6562500000 n/a 192168 stimulus n/a n/a noise 857 | 751.7421875000 n/a 192446 stimulus n/a n/a standard 858 | 752.8046875000 n/a 192718 stimulus n/a n/a standard 859 | 753.7148437500 n/a 192951 stimulus n/a n/a standard 860 | 754.7187500000 n/a 193208 stimulus 418 n/a oddball_with_reponse 861 | 755.1367187500 n/a 193315 response n/a n/a response 862 | 755.7265625000 n/a 193466 stimulus n/a n/a standard 863 | 756.7187500000 n/a 193720 stimulus n/a n/a standard 864 | -------------------------------------------------------------------------------- /eeglab/process_eeglab_template.m: -------------------------------------------------------------------------------- 1 | % This script is part of the code used to generate the results presented in: 2 | % Delorme A. EEG is better left alone. Sci Rep. 2023 Feb 9;13(1):2372. doi: 10.1038/s41598-023-27528-0. PMID: 36759667; PMCID: PMC9911389. 3 | % https://pubmed.ncbi.nlm.nih.gov/36759667/ 4 | % 5 | % This contains the code for the optimal EEGLAB pipeline in the paper above. 6 | % An example dataset is provided in the data folder. 7 | % Simple plotting for one channel for the two conditions is provided at the end of the script. 8 | % 9 | % Requires to have EEGLAB installed and to install the Picard plugin 10 | % Tested successfuly with EEGLAB 2023.0 11 | % 12 | % Arnaud Delorme, 2022 13 | 14 | % Difference with the version show on YOUTUBE at https://www.youtube.com/watch?v=yaA1wq2nSIc 15 | % - removed plotting 16 | % - removed STUDY section and perform simpler plotting of one channel 17 | 18 | % beginning of parameters ************ 19 | 20 | % You may select your own file and conditions below 21 | clear 22 | fileName = fullfile('..', 'data', 'sub-001_task-P300_run-2_eeg.set'); % data file 23 | conditions = { 'oddball_with_reponse' 'standard' }; % conditions to extract 24 | removeChans = {'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8','GSR1','GSR2','Erg1','Erg2','Resp','Plet','Temp' }; % channels to ignore 25 | 26 | % end of parameters ************ 27 | 28 | % load data 29 | if ~exist('pop_loadset'), eeglab; end 30 | EEG = pop_loadset('filename',fileName); 31 | 32 | % filter data 33 | EEG = pop_eegfiltnew(EEG, 'locutoff',0.5); 34 | EEG = pop_select( EEG, 'nochannel',removeChans); % list here channels to ignore 35 | chanlocs = EEG.chanlocs; 36 | 37 | % remove bad channels and bad portions of data 38 | EEG = pop_clean_rawdata(EEG, 'FlatlineCriterion',4,'ChannelCriterion',0.85,'LineNoiseCriterion',4,'Highpass','off',... 39 | 'BurstCriterion',20,'WindowCriterion',0.25,'BurstRejection','on','Distance','Euclidian','WindowCriterionTolerances',[-Inf 7] ); 40 | 41 | % Run ICA and IC Label 42 | EEG = pop_runica(EEG, 'icatype', 'picard', 'maxiter', 500); % Use mode standard for Infomax 43 | EEG = pop_iclabel(EEG, 'default'); 44 | EEG = pop_icflag(EEG, [NaN NaN;0.9 1;0.9 1;NaN NaN;NaN NaN;NaN NaN;NaN NaN]); 45 | EEG = pop_subcomp( EEG, [], 0); 46 | 47 | % Interpolate removed channels 48 | EEG = pop_interp(EEG, chanlocs); 49 | 50 | % epoch extraction and saving of datasets 51 | [~,fileBase] = fileparts(EEG.filename); 52 | EEGcond1 = pop_epoch( EEG, { conditions{1} }, [-0.3 0.7], 'newname', 'Cond1', 'epochinfo', 'yes'); 53 | EEGcond1 = pop_saveset( EEGcond1, 'filename',[fileBase '_cond1_eeglab.set'],'filepath',EEG.filepath); 54 | 55 | EEGcond2 = pop_epoch( EEG, { conditions{2} }, [-0.3 0.7], 'newname', 'Cond2', 'epochinfo', 'yes'); 56 | EEGcond2 = pop_saveset( EEGcond2, 'filename',[fileBase '_cond2_eeglab.set'],'filepath',EEG.filepath); 57 | 58 | % plot difference between conditions for channel 2 59 | figure; 60 | plot(mean(EEGcond1.data(2,:,:),3)); hold on; 61 | plot(mean(EEGcond2.data(2,:,:),3),'r'); 62 | title('ERP for each condition for channel 2'); 63 | h = legend(conditions{:}); set (h, 'Interpreter', 'none') 64 | -------------------------------------------------------------------------------- /fieldtrip/ft_trialfun_withevents.m: -------------------------------------------------------------------------------- 1 | function [trl, event] = ft_trialfun_eeglabdemo(cfg) 2 | 3 | % FT_TRIALFUN_GENERAL reads events from the dataset using FT_READ_EVENT and 4 | % constructs a trial definition. This function should in general not be called 5 | % directly, it will be called by FT_DEFINETRIAL. 6 | % 7 | % Use this function by calling 8 | % [cfg] = ft_definetrial(cfg) 9 | % where the configuration structure should contain 10 | % cfg.dataset = string with the filename 11 | % cfg.trialdef = structure with the details of trial definition, see below 12 | % cfg.trialfun = 'ft_trialfun_general' 13 | % 14 | % The cfg.trialdef structure can contain the following specifications 15 | % cfg.trialdef.eventtype = string, or cell-array with strings 16 | % cfg.trialdef.eventvalue = number, string, or list with numbers or strings 17 | % cfg.trialdef.prestim = number, latency in seconds (optional) 18 | % cfg.trialdef.poststim = number, latency in seconds (optional) 19 | % 20 | % You can specify these options that are passed to FT_READ_EVENT for trigger detection 21 | % cfg.trialdef.detectflank = string, can be 'up', 'updiff', 'down', 'downdiff', 'both', 'any', 'biton', 'bitoff' 22 | % cfg.trialdef.trigshift = integer, number of samples to shift from flank to detect trigger value 23 | % cfg.trialdef.chanindx = list with channel numbers for the trigger detection, specify -1 in case you don't want to detect triggers 24 | % cfg.trialdef.threshold = threshold for analog trigger channels 25 | % cfg.trialdef.tolerance = tolerance in samples when merging analogue trigger channels, only for Neuromag 26 | % 27 | % If you want to read all data from a continuous file in segments, you can specify 28 | % cfg.trialdef.length = duration of the segments in seconds (can be Inf) 29 | % cfg.trialdef.ntrials = number of trials (optional, can be 1) 30 | % cfg.trialdef.overlap = single number (between 0 and 1 (exclusive)) specifying the fraction of overlap between snippets (0 = no overlap) 31 | % 32 | % See also FT_DEFINETRIAL, FT_TRIALFUN_GUI, FT_TRIALFUN_SHOW 33 | 34 | % Copyright (C) 2005-2021, Robert Oostenveld 35 | % 36 | % This file is part of FieldTrip, see http://www.fieldtriptoolbox.org 37 | % for the documentation and details. 38 | % 39 | % FieldTrip is free software: you can redistribute it and/or modify 40 | % it under the terms of the GNU General Public License as published by 41 | % the Free Software Foundation, either version 3 of the License, or 42 | % (at your option) any later version. 43 | % 44 | % FieldTrip is distributed in the hope that it will be useful, 45 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 46 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 47 | % GNU General Public License for more details. 48 | % 49 | % You should have received a copy of the GNU General Public License 50 | % along with FieldTrip. If not, see . 51 | % 52 | % $Id$ 53 | 54 | % most defaults are in trialdef 55 | cfg.trialdef = ft_getopt(cfg, 'trialdef', struct()); 56 | 57 | % check if the input cfg is valid for this function 58 | cfg.trialdef = ft_checkconfig(cfg.trialdef, 'renamed', {'triallength', 'length'}); 59 | cfg.trialdef = ft_checkconfig(cfg.trialdef, 'renamedval', {'ntrials', inf, []}); 60 | 61 | % set the defaults 62 | cfg.trialdef.eventtype = ft_getopt(cfg.trialdef, 'eventtype'); 63 | cfg.trialdef.eventvalue = ft_getopt(cfg.trialdef, 'eventvalue'); 64 | cfg.trialdef.prestim = ft_getopt(cfg.trialdef, 'prestim'); 65 | cfg.trialdef.poststim = ft_getopt(cfg.trialdef, 'poststim'); 66 | 67 | % these options are similar to those in FT_REDEFINETRIALS 68 | cfg.trialdef.length = ft_getopt(cfg.trialdef, 'length'); 69 | cfg.trialdef.overlap = ft_getopt(cfg.trialdef, 'overlap', 0); % between 0 and 1 70 | cfg.trialdef.ntrials = ft_getopt(cfg.trialdef, 'ntrials'); 71 | 72 | % these options get passed to FT_READ_EVENT 73 | cfg.trialdef.detectflank = ft_getopt(cfg.trialdef, 'detectflank'); 74 | cfg.trialdef.trigshift = ft_getopt(cfg.trialdef, 'trigshift'); 75 | cfg.trialdef.chanindx = ft_getopt(cfg.trialdef, 'chanindx'); 76 | cfg.trialdef.threshold = ft_getopt(cfg.trialdef, 'threshold'); 77 | cfg.trialdef.tolerance = ft_getopt(cfg.trialdef, 'tolerance'); 78 | cfg.trialdef.combinebinary = ft_getopt(cfg.trialdef, 'combinebinary'); 79 | 80 | % specify the default file formats 81 | cfg.eventformat = ft_getopt(cfg, 'eventformat'); 82 | cfg.headerformat = ft_getopt(cfg, 'headerformat'); 83 | cfg.dataformat = ft_getopt(cfg, 'dataformat'); 84 | 85 | % get the header, this is among others for the sampling frequency 86 | if isfield(cfg, 'hdr') 87 | ft_info('using the header from the configuration structure\n'); 88 | hdr = cfg.hdr; 89 | else 90 | % read the header, contains the sampling frequency 91 | ft_info('reading the header from ''%s''\n', cfg.headerfile); 92 | hdr = ft_read_header(cfg.headerfile, 'headerformat', cfg.headerformat); 93 | end 94 | 95 | % get the events 96 | if isfield(cfg, 'event') 97 | ft_info('using the events from the configuration structure\n'); 98 | event = cfg.event; 99 | else 100 | ft_info('reading the events from ''%s''\n', cfg.headerfile); 101 | event = ft_read_event(cfg.headerfile, 'headerformat', cfg.headerformat, 'eventformat', cfg.eventformat, 'dataformat', cfg.dataformat, 'detectflank', cfg.trialdef.detectflank, 'trigshift', cfg.trialdef.trigshift, 'chanindx', cfg.trialdef.chanindx, 'threshold', cfg.trialdef.threshold, 'tolerance', cfg.trialdef.tolerance, 'combinebinary', cfg.trialdef.combinebinary); 102 | end 103 | 104 | if ~isempty(cfg.trialdef.length) && ~isinf(cfg.trialdef.length) 105 | % make as many trials as possible with the specified length and offset 106 | begsample = 1; 107 | endsample = round(hdr.nSamples*hdr.nTrials); 108 | offset = 0; 109 | nsmp = round(cfg.trialdef.length*hdr.Fs); 110 | nshift = round((1-cfg.trialdef.overlap)*nsmp); 111 | alltrl = (begsample:nshift:(endsample+1-nsmp))'; 112 | alltrl(:,2) = alltrl(:,1) + nsmp - 1; 113 | alltrl(:,3) = alltrl(:,1) + offset - alltrl(1,1); 114 | % trim to the requested number of trials 115 | if ~isempty(cfg.trialdef.ntrials) 116 | trl = alltrl(1:cfg.trialdef.ntrials,:); 117 | else 118 | trl = alltrl; 119 | end 120 | return 121 | 122 | elseif isscalar(cfg.trialdef.ntrials) || isequal(cfg.trialdef.length, inf) 123 | % construct a single trial 124 | if isscalar(cfg.trialdef.ntrials) && cfg.trialdef.ntrials~=1 125 | ft_error('this is only supported for a single trial'); 126 | end 127 | begsample = 1; 128 | endsample = round(hdr.nSamples*hdr.nTrials); 129 | offset = 0; 130 | trl = [begsample endsample offset]; 131 | return 132 | 133 | else 134 | % select events on basis of event types and values 135 | sel = true(1, length(event)); % this should be a row vector 136 | 137 | % select all events of the specified type 138 | if isfield(cfg.trialdef, 'eventtype') && ~isempty(cfg.trialdef.eventtype) 139 | for i=1:numel(event) 140 | sel(i) = sel(i) && ismatch(event(i).type, cfg.trialdef.eventtype); 141 | end 142 | elseif isempty(cfg.trialdef.eventtype) 143 | % search for trial events 144 | for i=1:numel(event) 145 | sel(i) = sel(i) && ismatch(event(i).type, 'trial'); 146 | end 147 | end 148 | 149 | % select all events with the specified value 150 | if isfield(cfg.trialdef, 'eventvalue') && ~isempty(cfg.trialdef.eventvalue) 151 | for i=1:numel(event) 152 | sel(i) = sel(i) && ismatch(event(i).value, cfg.trialdef.eventvalue); 153 | end 154 | end 155 | 156 | % convert from boolean vector into a list of indices 157 | sel = find(sel); 158 | 159 | % start with an empty list 160 | trl = []; 161 | 162 | for i=sel 163 | % catch empty fields in the event table and interpret them meaningfully 164 | if isempty(event(i).offset) 165 | % time axis has no offset relative to the event 166 | event(i).offset = 0; 167 | end 168 | if isempty(event(i).duration) 169 | % the event does not specify a duration 170 | event(i).duration = 0; 171 | end 172 | 173 | % determine where the trial starts with respect to the event 174 | if isempty(cfg.trialdef.prestim) 175 | trloff = event(i).offset; 176 | trlbeg = event(i).sample; 177 | else 178 | % override the offset of the event 179 | trloff = round(-cfg.trialdef.prestim*hdr.Fs); 180 | % also shift the begin sample with the specified amount 181 | trlbeg = event(i).sample + trloff; 182 | end 183 | % determine the number of samples that has to be read (excluding the begin sample) 184 | if isempty(cfg.trialdef.poststim) 185 | trldur = max(event(i).duration - 1, 0); 186 | else 187 | % this will not work if prestim was not defined, the code will then crash 188 | trldur = round((cfg.trialdef.poststim+cfg.trialdef.prestim)*hdr.Fs) - 1; 189 | end 190 | trlend = trlbeg + trldur; 191 | 192 | if isnumeric(event(i).value) && ~isempty(event(i).value) 193 | trlval = event(i).value; 194 | elseif ischar(event(i).value) && numel(event(i).value)>1 && (event(i).value(1)=='S'|| event(i).value(1)=='R') 195 | % on brainvision these are called 'S 1' for stimuli or 'R 1' for responses 196 | trlval = str2double(event(i).value(2:end)); 197 | elseif ischar(event(i).value) && numel(event(i).value)>1 && ~isempty(cfg.trialdef.eventvalue) 198 | trlval = strmatch(event(i).value, cfg.trialdef.eventvalue); 199 | else 200 | trlval = nan; 201 | end 202 | 203 | % add the trial only if all samples are in the dataset 204 | if trlbeg>0 && trlend<=hdr.nSamples*hdr.nTrials 205 | thistrl = [trlbeg trlend trloff trlval]; 206 | trl = cat(1, trl, thistrl); 207 | end 208 | end 209 | 210 | if ~isempty(trl) && all(isnan(trl(:,4))) 211 | % the values are not informative, remove them 212 | trl = trl(:,1:3); 213 | end 214 | 215 | end 216 | 217 | function s = ismatch(x, y) 218 | 219 | % ISMATCH returns true if x is a member of array y, regardless of the class 220 | % of x and y, if y is a string, or a cell-array of strings, it can contain 221 | % the wildcard '*' 222 | 223 | if isempty(x) || isempty(y) 224 | s = false; 225 | 226 | elseif ischar(x) && ischar(y) 227 | y = sprintf('%s%s%s', '^', regexptranslate('wildcard',y), '$'); 228 | s = ~isempty(regexp(x, y, 'once')); 229 | 230 | elseif isnumeric(x) && isnumeric(y) 231 | s = ismember(x, y); 232 | 233 | elseif ischar(x) && iscellstr(y) 234 | y = y(strcmp(class(x), cellfun(@class, y, 'UniformOutput', false))); 235 | s = ismember(x, y); 236 | % one or more of the elements in y can contain a wildcard, only proceed if s=false 237 | if ~s && any(contains(y, '*')) 238 | y = y(contains(y, '*')); 239 | for i = 1:numel(y) 240 | tmpy = sprintf('%s%s%s', '^', regexptranslate('wildcard',y{i}), '$'); 241 | s = ~isempty(regexp(x, tmpy, 'once')); 242 | if s, return; end 243 | end 244 | end 245 | 246 | elseif isnumeric(x) && iscell(y) 247 | % this works if y contains both numbers and strings 248 | s = false; 249 | for i=1:numel(y) 250 | s = s || ismember(x, y{i}); 251 | end 252 | 253 | elseif ischar(x) && iscell(y) 254 | % this works if y contains both numbers and strings 255 | s = false; 256 | for i=1:numel(y) 257 | s = s || strcmp(x, y{i}); 258 | end 259 | 260 | else 261 | s = false; 262 | end 263 | 264 | -------------------------------------------------------------------------------- /fieldtrip/process_fieldtrip_template.m: -------------------------------------------------------------------------------- 1 | % This script is part of the code used to generate the results presented in: 2 | % Delorme A. EEG is better left alone. Sci Rep. 2023 Feb 9;13(1):2372. doi: 10.1038/s41598-023-27528-0. PMID: 36759667; PMCID: PMC9911389. 3 | % https://pubmed.ncbi.nlm.nih.gov/36759667/ 4 | % 5 | % This contains the code for the optimal Fieldtrip pipeline in the paper above. 6 | % An example dataset is provided in the data folder. 7 | % Simple plotting for one channel for the two conditions is provided at the end of the script. 8 | % 9 | % Requires to have Fieldtrip installed 10 | % Tested successfuly with Fieldtrip version of Dec 6, 2023 11 | % Arnaud Delorme, 2022 12 | 13 | % Difference with version of the script shown on YOUTUBE 14 | % - PERFORM 2-step trial processing instead of a single step (which filters data trials instead of continuous data) 15 | % - Fixed high-pass filtering bug (set the frequency but forgot to turn it on on the YOUTUBE video) 16 | % - changed channel for rejection 17 | % - add removing channel section 18 | % - removed detrending 19 | % - Perform simpler plotting 20 | 21 | % beginning of parameters ************ 22 | 23 | % You may select your own file and conditions below, and change other parameters as well 24 | clear 25 | fileName = fullfile('..', 'data', 'sub-001_task-P300_run-2_eeg.set'); 26 | conditions = { 'oddball_with_reponse' 'standard' }; 27 | triggers = { 'trigger' 'stimulus' }; 28 | removeChans = {'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8','GSR1','GSR2','Erg1','Erg2','Resp','Plet','Temp' }; % channels to ignore 29 | frontalChannelsLowFreq = { 'AF7' 'AF3' 'Fp1' 'Fp2' 'Fpz' }; % for artifact rejection 30 | temporalChannelsHiFreq = { 'T7' 'T8' 'TP7' 'TP8' 'P9' 'P10' }; % for artifact rejection 31 | 32 | % end of paramters ************ 33 | 34 | % filtering 35 | cfg = []; 36 | cfg.dataset = fileName; 37 | cfg.hpfreq = 0.5; 38 | cfg.hpfilter = 'yes'; 39 | data_clean = ft_preprocessing(cfg); 40 | 41 | % select channels 42 | cfg = []; 43 | cfg.channel = setdiff(data_clean.elec.label, removeChans); % keep only selected channels 44 | data_clean = ft_preprocessing(cfg,data_clean); 45 | 46 | % redefine trials 47 | cfg = []; 48 | cfg.dataset = fileName; 49 | cfg.trialfun = 'ft_trialfun_withevents'; 50 | cfg.trialdef.eventtype = triggers; % the values of the stimulus trigger for the conditions 51 | cfg.trialdef.eventvalue = conditions; % the values of the stimulus trigger for the conditions 52 | cfg.trialdef.prestim = 0.3; % in seconds 53 | cfg.trialdef.poststim = 0.7; % in seconds 54 | cfg = ft_definetrial(cfg); 55 | data2 = ft_redefinetrial(cfg, data_clean); 56 | 57 | % check that all trials have the same length (Fieldtrip occasionally crashes otherwise) 58 | tlen = cellfun(@length, data2.time'); 59 | if length(unique(tlen)) > 1 60 | error('Wrong size'); 61 | end 62 | 63 | % round values to avoid ft_artifact_zvalue crash 64 | if isfield(data2, 'sampleinfo') 65 | data2.sampleinfo = round(data2.sampleinfo); 66 | end 67 | 68 | % Low-frequency data rejection 69 | cfg = []; 70 | cfg.artfctdef.zvalue.channel = frontalChannelsLowFreq; 71 | cfg.artfctdef.zvalue.cutoff = 4; 72 | cfg.artfctdef.zvalue.trlpadding = 0; 73 | cfg.artfctdef.zvalue.artpadding = 0.1; 74 | cfg.artfctdef.zvalue.fltpadding = 0; 75 | cfg.artfctdef.zvalue.bpfilter = 'yes'; 76 | cfg.artfctdef.zvalue.bpfilttype = 'but'; 77 | cfg.artfctdef.zvalue.bpfreq = [0.5 2]; 78 | cfg.artfctdef.zvalue.bpfiltord = 4; 79 | cfg.artfctdef.zvalue.hilbert = 'yes'; 80 | cfg.artfctdef.zvalue.interactive = 'no'; 81 | [~, artifact_EOG] = ft_artifact_zvalue(cfg, data2); 82 | 83 | % High-frequency data rejection 84 | cfg = []; 85 | cfg.artfctdef.zvalue.channel = temporalChannelsHiFreq; 86 | cfg.artfctdef.zvalue.cutoff = 4; 87 | cfg.artfctdef.zvalue.trlpadding = 0; 88 | cfg.artfctdef.zvalue.fltpadding = 0; 89 | cfg.artfctdef.zvalue.artpadding = 0.1; 90 | cfg.artfctdef.zvalue.bpfilter = 'yes'; 91 | cfg.artfctdef.zvalue.bpfreq = [100 110]; 92 | cfg.artfctdef.zvalue.bpfiltord = 9; 93 | cfg.artfctdef.zvalue.bpfilttype = 'but'; 94 | cfg.artfctdef.zvalue.hilbert = 'yes'; 95 | cfg.artfctdef.zvalue.boxcar = 0.2; 96 | cfg.artfctdef.zvalue.interactive = 'no'; 97 | [~,artifact_muscle] = ft_artifact_zvalue(cfg, data2); 98 | 99 | % this rejects complete trials, use 'partial' if you want to do partial artifact rejection 100 | cfg=[]; 101 | cfg.artfctdef.reject = 'complete'; 102 | cfg.artfctdef.eog.artifact = artifact_EOG; % 103 | cfg.artfctdef.muscle.artifact = artifact_muscle; 104 | data_no_artifacts = ft_rejectartifact(cfg,data2); 105 | 106 | % plot difference between conditions for channel 2 107 | dataCond1 = [ data_no_artifacts.trial{data_no_artifacts.trialinfo == 1} ]; 108 | dataCond2 = [ data_no_artifacts.trial{data_no_artifacts.trialinfo == 2} ]; 109 | dataCond1 = reshape(dataCond1, size(data_no_artifacts.trial{1}, 1), size(data_no_artifacts.trial{2},2), []); 110 | dataCond2 = reshape(dataCond2, size(data_no_artifacts.trial{1}, 1), size(data_no_artifacts.trial{2},2), []); 111 | figure; 112 | plot(mean(dataCond1(2,:,:),3)); hold on; 113 | plot(mean(dataCond2(2,:,:),3),'r'); 114 | title('ERP for each condition for channel 2'); 115 | h = legend(conditions{:}); set (h, 'Interpreter', 'none') 116 | -------------------------------------------------------------------------------- /happe/README.md: -------------------------------------------------------------------------------- 1 | See repository https://github.com/arnodelorme/happe 2 | and use HAPPE_pipeline_v2_0.m (this pipeline contains 3 | demo data which is the same data as in the other pipelines) 4 | -------------------------------------------------------------------------------- /mne/process_mne_template.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # This script is part of the code used to generate the results presented in: 4 | # Delorme A. EEG is better left alone. Sci Rep. 2023 Feb 9;13(1):2372. doi: 10.1038/s41598-023-27528-0. PMID: 36759667; PMCID: PMC9911389. 5 | # https://pubmed.ncbi.nlm.nih.gov/36759667/ 6 | # 7 | # This contains the code for the optimal MNE pipeline in the paper above. 8 | # An example dataset is provided in the data folder. 9 | # Simple plotting for one channel for the two conditions is provided at the end of the script. 10 | # 11 | # Requires to have Python installed, with mne, autoreject libraries 12 | # Tested successfuly with Python 3.8 and MNE 1.1.0, and autoreject 0.3.1 13 | # 14 | # Arnaud Delorme, 2022 15 | 16 | # Difference with the version shown on YOUTUBE 17 | # - read EEGLAB file directly instead of using BIDS (so the local file to the BIDS repo can be used) 18 | # - removed montage (this was not necessary) 19 | # - removing ICA (did nothing) 20 | # - remove some plotting 21 | # - export two files to EEGLAB format, one for oddball and one for standard 22 | # - remove jupyter notebook sections 23 | 24 | # ----------------- 25 | # Parameters 26 | # ----------------- 27 | 28 | filename = '../data/sub-001_task-P300_run-2_eeg.set' 29 | rmChans = ['EXG1', 'EXG2', 'EXG3', 'EXG4', 'EXG5', 'EXG6', 'EXG7', 'EXG8', 'GSR1', 'GSR2', 'Erg1', 'Erg2', 'Resp', 'Plet', 'Temp'] 30 | cond1 = 'oddball_with_reponse' 31 | cond2 = 'standard' 32 | epochLowLim = -0.3; 33 | epochHiLim = 0.7; 34 | 35 | # ----------------- 36 | # End of parameters (no edits below) 37 | # ----------------- 38 | 39 | import mne 40 | import os 41 | import matplotlib.pyplot as plt 42 | from mne.datasets import sample 43 | import autoreject 44 | 45 | # Import, channel removal, reference and filtering 46 | raw = mne.io.read_raw_eeglab(filename) 47 | 48 | # Remove channels which are not needed 49 | raw.drop_channels(rmChans) 50 | 51 | # Filter teh data 52 | raw.filter(l_freq=0.5, h_freq=None) 53 | 54 | # Extract epochs 55 | events_from_annot, event_dict = mne.events_from_annotations(raw) 56 | epochs_all = mne.Epochs(raw, events_from_annot, tmin=epochLowLim, tmax=epochHiLim, event_id=event_dict, preload=True, event_repeated='drop') 57 | epochs = epochs_all[cond1, cond2] 58 | 59 | # Automated epoch rejection 60 | ar = autoreject.AutoReject(n_interpolate=[1, 2, 3, 4], random_state=11,n_jobs=1, verbose=True) 61 | ar.fit(epochs[:20]) # fit on a few epochs to save time 62 | epochs_ar, reject_log = ar.transform(epochs, return_log=True) 63 | 64 | # Export to EEGLAB format if needed 65 | fileout = os.path.splitext(filename)[0]; 66 | fileout_cond1 = fileout + '_cond1_mne.set' 67 | fileout_cond2 = fileout + '_cond2_mne.set' 68 | epochs_ar[cond1].export(fileout_cond1, overwrite=True) 69 | epochs_ar[cond2].export(fileout_cond2, overwrite=True) 70 | 71 | # Plot one of the channels 72 | plt.plot(epochs_ar[0].times, epochs_ar[0].get_data()[0,1,:].transpose()) 73 | plt.plot(epochs_ar[1].times, epochs_ar[1].get_data()[0,1,:].transpose()) 74 | plt.legend([cond1,cond2]) 75 | plt.show() 76 | --------------------------------------------------------------------------------