Closed arnodelorme closed 2 months ago
This is reproducible
This is without using PSOM (even if it mentions it below)
well even with your added debugging section (not needed IMO, because I debug just fine by calling the pipeline) it still relies on psom, the difference being that your version doesn't catch errors and actually stops computing and doesn't parallelise (hence in other thread my cst change to have it on by default)
all my test passed, what data are you using and which version of eeglab (dev?)
I am using EEGLAB dev with this dataset
https://openneuro.org/datasets/ds003061
[STUDY, ALLEEG] = pop_importbids('/System/Volumes/Data/data/matlab/compare_eeg_pipelines/ds003061', 'eventtype','value','bidsevent','on','bidschanloc','on','outputdir','/System/Volumes/Data/data/matlab/compare_eeg_pipelines/ds003061/derivatives/eeglab');
ALLEEG = pop_select( ALLEEG,'nochannel',{'EXG1','EXG2','EXG3','EXG4','EXG5','EXG6','EXG7','EXG8','GSR1','GSR2','Erg1','Erg2','Resp','Plet','Temp'});
ALLEEG = pop_eegfiltnew( ALLEEG,'locutoff',0.5);
ALLEEG = pop_epoch( ALLEEG,{'noise','oddball_with_reponse','standard'},[-0.5 1] ,'epochinfo','yes');
STUDY = std_checkset(STUDY, ALLEEG);
STUDY = std_makedesign(STUDY, ALLEEG, 1, 'name','STUDY.design 1','delfiles','off','defaultdesign','off','variable1','type','values1',{'noise','oddball_with_reponse','standard'},'vartype1','categorical');
CURRENTSTUDY = 1; EEG = ALLEEG; CURRENTSET = [1:length(EEG)];
it fails at EEGLIMO=pop_loadset([LIMO.data.data_dir filesep LIMO.data.data]); because in pop_loadset eegset = EEG.cellArray; but .cellArray doesn't exist
how can doing for ... psom_pipeline_debug work and doing parfor ... psompipeline not work this is the exact same code called, just not using fancy parallel or error catch stuff
Yes, really weird. I cannot debug though. I would need to put a breakpoint in pop_loadset to see why the file is corrupted, but the parallel loop will prevent that.
The error above means that the EEG data is corrupted. It is trying to access EEG.cellArray because it is trying to decode as a very old EEG format. The EEG structure is probably missing the data field.
or it is when calling psom_pipeline - a point break here https://github.com/LIMO-EEG-Toolbox/limo_tools/blob/master/limo_batch.m#L514 then execute subject = 1, limo_batch_import_data(pipeline(subject).import.files_in,pipeline(subject).import.opt.cat,pipeline(subject).import.opt.cont,pipeline(subject).import.opt.defaults) see if this still cause the problem
compare with psom_pipeline_debug(pipeline(subject));
This is the error I get. When I deactivate PSOM in limo_settings_script, the pipeline runs fine. Weird