MStarmans91 / WORC

Workflow for Optimal Radiomics Classification
Other
66 stars 19 forks source link

Using multiple ROIs per patient #78

Closed bgielen closed 1 year ago

bgielen commented 1 year ago

I'm trying to run WORC with multiple ROIs per patient, the amount of ROIs per patient range from 1 to 30. When I use the same CT data but only one ROI the experiment works but when using multiple ROIs the experiment does not work. It doesn't create an output file but also does not stop the run, it kind of freezes and is unable to create the config file and feature files.

The error occured during execution of the experiment, this is what the error during the experiment says: Encountered exception (IndexError) during callback fastr.execution.networkrun.job_finished: Traceback (most recent call last): File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/plugins/executionplugin.py", line 613, in _job_finished_body self._finished_callback(result) File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/execution/networkrun.py", line 800, in job_finished node.inputs[input_id][input_argument_element.index].failed_annotations)) File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/execution/inputoutputrun.py", line 147, in getitem value = sub[key] File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/execution/inputoutputrun.py", line 606, in getitem return self.source[0][key] File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/execution/linkrun.py", line 164, in getitem source_sample_data = self.source[sourceindex] File "/nfs/home/clbente/anaconda3/envs/WORC2/lib/python3.7/site-packages/fastr/execution/inputoutputrun.py", line 1420, in getitem return self.linearized[item[0]] IndexError: tuple index out of range

I'm using a BasicWORC object in which the images and segmentations file paths are given using dictionaries as provided in the user manual: images1 = {'patient1_0': '/data/Patient1/image_MR.nii.gz', 'patient1_1': '/data/Patient1/image_MR.nii.gz'}

bgielen commented 1 year ago

Example of a part of the dictionary that works when I'm only using one ROI: image

Example of a part of the dictionary when I'm using mulitple ROIs: image

MStarmans91 commented 1 year ago

Seems to be a cardinality / dimension issue, maybe you provided the data in such a way that WORC things you want to combine the features of multiple ROIs per patient instead of classifying them separately. Can you also share your code with which you run the experiment, especially the part where you feed the ROIs into WORC?