Closed rickhooy closed 1 year ago
Hi @rickhooy ! Please, add a parameter "execution_method": "sequential"
in the configuration sections of the problematic steps "BinStacks"
and "DynamoCleanStacks"
for the corresponding datasets, e.g.:
"BinStacks": {
"execution_method": "sequential"
}
and post the new error messages.
P.S. For parallel routines there is no debug mode so that the only way to get the real error message is to switch to sequential processing mode.
Hi Artsemi, thanks for the troubleshooting assistance!
I figured it out, at least for the test project. For some reason I had two 'x_CreateStacks_1' directories in my output folder. When DynamoCleanStacks looks for tilt series stacks, it found two locations, one of which does not have the TS. I somehow created the second CreateStacks output dir without realizing - probably in playing around with the project.json config file. I deleted the erroneous CreateStacks folder. Now the pipeline proceeds as expected. It's possibly a similar issue with the Ribosome tutorial project. I'll look into it next.
Full details below, if interested:
Execute runTomoBear from matlab terminal after changing DynamoCleanStacks steps to 'sequential'
INFO: Skipping pipeline step (DynamoTiltSeriesAlignment) due to availability of a SUCCESS file! INFO: Executing pipeline step 6: DynamoCleanStacks for tomogram 1... Index exceeds the number of array elements. Index must not exceed 0.
Error in DynamoCleanStacks/process (line 38) [path, name, extension] = fileparts(stack_file(1).name);
Error in iteration (line 53) instantiated_class = instantiated_class.process();
Error in LocalPipeline/execution_sequential (line 682) [dynamic_configurations{j}, status{j}] = iteration(merged_configuration, pipeline_definition, tomogram_names{j}, previous_tomogram_status(j));
Error in LocalPipeline/execute (line 400) [dynamic_configuration_out, tomogramstatus{i - 1}] = obj.("execution" + execution_method)(merged_configuration, obj.pipeline_definition{i}, previous_tomogram_status);
Error in runPipeline (line 150) pipeline.execute(starting_tomogram, ending_tomogram, step, gpu);
Error in runTomoBear (line 34) runPipeline(compute_environment, configuration_path, default_configuration_path, starting_tomogram, ending_tomogram, step, gpu);
38 [path, name, extension] = fileparts(stack_file(1).name); K>>
tilt_stack_path =
"/data/tb/processing/output/1_CreateStacks_1/tomogram_001/*.st"
% wrong; CreateStacks should be step 4...
drwxrwxr-x 3 hooy hooy 4.0K Jul 18 16:39 1_CreateStacks_1 drwxrwxr-x 2 hooy hooy 4.0K Jul 18 16:44 1_MetaData_1 drwxrwxr-x 3 hooy hooy 4.0K Jul 18 16:44 2_SortFiles_1 drwxrwxr-x 3 hooy hooy 4.0K Jul 21 10:01 3_MotionCor2_1 drwxrwxr-x 3 hooy hooy 4.0K Jul 21 10:01 4_CreateStacks_1 drwxrwxr-x 3 hooy hooy 4.0K Jul 21 10:06 5_DynamoTiltSeriesAlignment_1 drwxrwxr-x 3 hooy hooy 4.0K Jul 21 10:06 6_DynamoCleanStacks_1
Ah, for some reason there are two CreateStack directories...
line 32 of DynanoCleanStacks: create_stacks_input_path = dir(obj.configuration.processing_path + string(filesep) + obj.configuration.output_folder + string(filesep)...
create_stacks_input_path.name
ans =
'1_CreateStacks_1'
ans =
'4_CreateStacks_1'
No stacks in '1_CreateStacks_1', hence error and pipeline crash.
Hey @rickhooy , thanks for sharing, glad that you resolved that one as well!
P.S. Step folders could be repeated several times, that's acceptable. The only thing which you need to keep in mind, as you already figured out, is to have step folders structure which corresponds to the input json file structure in terms of the sequence and names of the steps.
P.P.S. Additional hint for troubleshooting is to keep the structure of the scratch/
folder as in input json file as well (if you experience any issues, just delete there folders made by errors or from previous runs).
I guess, the issue can be closed. Please, reopen if needed
Describe the bug
While executing Ribosome tutorial and test dataset matlab errors out at parfor loop. For each project the pipeline crashes at distinct steps - see Screenshots
Test Project JSON file
Error message
Error using BinStacks/process Too many input arguments.
Error in iteration (line 53) instantiated_class = instantiated_class.process();
Error in LocalPipeline/execution_parallel (line 560) parfor j = 1:length(indices)
Error in LocalPipeline/execute (line 400) [dynamic_configuration_out, tomogramstatus{i - 1}] = obj.("execution" + execution_method)(merged_configuration, obj.pipeline_definition{i}, previous_tomogram_status);
Error in runPipeline (line 150) pipeline.execute(starting_tomogram, ending_tomogram, step, gpu);
Error in runTomoBear (line 34) runPipeline(compute_environment, configuration_path, default_configuration_path, starting_tomogram, ending_tomogram, step, gpu);
560 parfor j = 1:length(indices)
To Reproduce Steps to reproduce the behavior:
Expected behavior Quick search on mathworks forums did not immediately reveal reason for error
Screenshots Step 26: BinStacks from Ribosome Tutorial![tomoBear_parfor_error_ribosome](https://github.com/KudryashevLab/TomoBEAR/assets/63319417/5fe63efd-bd42-43fb-9d0d-35ef6c04ceca)
Step 6: DynamoCleanStacks from test dataset![tomoBear_parfor_error](https://github.com/KudryashevLab/TomoBEAR/assets/63319417/6664402f-788b-4aa7-85dd-3af0cd34bbc7)
Desktop (please complete the following information):
Additional context Could just be a default or project variable that needs to change. Please advise.