Closed fiona2996 closed 1 year ago
Currently python 3.9 is not stable due to ITK and VTK version issue. Can you try with python 3.8.6
Hello @scalphunters,
Sorry to open this up again, but following your conda install instructions, which installed Python 3.8.16, I am also receiving the same "sitk::ERROR: Unable to convert vector to ITK type"; "Expected vector of length 4 but only got 3 elements." errors.
I have attached the full log.txt file. Error excerpt posted below. Please let me know if you need any additional information. Thank you.
UPDATE: Note that even when explicitly setting the python version in the dtiplayground/dmriprep environment to 3.8.6, I get the same error.
[2023-03-22-12-22-09] Source Image (Previous output) loaded from memory (object id): 140383974799392 [2023-03-22-12-22-09] [DTIPlaygroundModule.initialize] Processed time : 0.13s [2023-03-22-12-22-09] [DTIPlaygroundModule.run] begins ... [2023-03-22-12-22-11] Exception occurred in runPipeline Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:94: [2023-03-22-12-22-11] sitk::ERROR: Unable to convert vector to ITK type [2023-03-22-12-22-11] Expected vector of length 4 but only got 3 elements. [2023-03-22-12-22-11] Traceback (most recent call last): [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/pipeline.py", line 428, in runPipeline [2023-03-22-12-22-11] outres=m.run(opts,global_vars=self.global_variables) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/init.py", line 83, in wrapper [2023-03-22-12-22-11] res=func(*args,*kwargs) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/module.py", line 400, in run [2023-03-22-12-22-11] res=self.process(args,**kwargs) ## main computation for user implementation [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 36, in process [2023-03-22-12-22-11] global_report = self.AddExcludedGradientsImagesToReport(global_report, excluded_gradients) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 132, in AddExcludedGradientsImagesToReport [2023-03-22-12-22-11] images = self.CreateImagesOfExcludedGradients(image_path[image_index], excluded_gradients[image_index]) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 234, in CreateImagesOfExcludedGradients [2023-03-22-12-22-11] axial_image = self.AxialView(iter_gradients, input_size, input_image) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 281, in AxialView [2023-03-22-12-22-11] extracted_slice = slice_extractor.Execute(input_image) [2023-03-22-12-22-11] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/SimpleITK/SimpleITK.py", line 9947, in Execute [2023-03-22-12-22-11] return _SimpleITK.ExtractImageFilter_Execute(self, image1) [2023-03-22-12-22-11] RuntimeError: Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:94: [2023-03-22-12-22-11] sitk::ERROR: Unable to convert vector to ITK type [2023-03-22-12-22-11] Expected vector of length 4 but only got 3 elements. [2023-03-22-12-22-11]
no worries. thanks for reporting. can you try with new version?
$ pip install dtiplayground==0.5.7b10
Hi @scalphunters,
Apologies in the delay for getting to this.
I followed your update instructions, reinitialized dmriprep using the 0.5.7b10 version, recreated default/template protocol, and ran the same images using this default protocol.
Unfortunately, receiving the same error. Log file attached. Specific error excerpt pasted below. If you require any additional materials or information for troubleshooting, let me know. Thank you.
[2023-03-28-12-34-17]
[2023-03-28-12-34-17] Source Image (Previous output) loaded from memory (object id): 140354911011312
[2023-03-28-12-34-17] [DTIPlaygroundModule.initialize] Processed time : 0.09s
[2023-03-28-12-34-17] [DTIPlaygroundModule.run] begins ...
[2023-03-28-12-34-19] Exception occurred in runPipeline Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:94:
[2023-03-28-12-34-19] sitk::ERROR: Unable to convert vector to ITK type
[2023-03-28-12-34-19] Expected vector of length 4 but only got 3 elements.
[2023-03-28-12-34-19] Traceback (most recent call last):
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/pipeline.py", line 450, in runPipeline
[2023-03-28-12-34-19] outres=m.run(opts,global_vars=self.global_variables)
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/init.py", line 83, in wrapper
[2023-03-28-12-34-19] res=func(*args,*kwargs)
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/common/module.py", line 400, in run
[2023-03-28-12-34-19] res=self.process(args,**kwargs) ## main computation for user implementation
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 36, in process
[2023-03-28-12-34-19] global_report = self.AddExcludedGradientsImagesToReport(global_report, excluded_gradients)
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 132, in AddExcludedGradientsImagesToReport
[2023-03-28-12-34-19] images = self.CreateImagesOfExcludedGradients(image_path[image_index], excluded_gradients[image_index])
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 234, in CreateImagesOfExcludedGradients
[2023-03-28-12-34-19] axial_image = self.AxialView(iter_gradients, input_size, input_image)
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 281, in AxialView
[2023-03-28-12-34-19] extracted_slice = slice_extractor.Execute(input_image)
[2023-03-28-12-34-19] File "/export/apps/kkiehl/R_anaconda/anaconda3/envs/dtipg-py38/lib/python3.8/site-packages/SimpleITK/SimpleITK.py", line 9947, in Execute
[2023-03-28-12-34-19] return _SimpleITK.ExtractImageFilter_Execute(self, image1)
[2023-03-28-12-34-19] RuntimeError: Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:94:
[2023-03-28-12-34-19] sitk::ERROR: Unable to convert vector to ITK type
[2023-03-28-12-34-19] Expected vector of length 4 but only got 3 elements.
[2023-03-28-12-34-19]
Can you share your protocols.yml file?
Here is the file for the most recent run
This seems to happen when the input image is nifti in SimpleITK extractor. I need to see more into this.
There was some bug in SITK in loading NIFTI. The work-around was applied to new version. Pls try new version
$ pip install dtiplayground==0.5.7b11
Let me know if you have further trouble.
Closing this issue. Pls reopen if you have same issue again.
Hello,
When I run dmriprep the QC report module errors on any subject were gradients have been excluded. It cannot calculate the indices for the excluded gradients for these subjects and dmriprep errors and performs no further processing after the error occurs.
Here is the error in the log file:
Source Image (Previous output) loaded from memory (object id): 140168519171376 [2022-10-27-03-13-47] [DTIPlaygroundModule.initialize] Processed time : 0.42s [2022-10-27-03-13-47] [DTIPlaygroundModule.run] begins ... [2022-10-27-03-14-44] Exception occurred in runPipeline Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:96: [2022-10-27-03-14-44] sitk::ERROR: Unable to convert vector to ITK type [2022-10-27-03-14-44] Expected vector of length 4 but only got 3 elements. [2022-10-27-03-14-44] Traceback (most recent call last): [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/common/pipeline.py", line 411, in runPipeline [2022-10-27-03-14-44] outres=m.run(opts,global_vars=self.global_variables) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/common/init.py", line 80, in wrapper [2022-10-27-03-14-44] res=func(*args,*kwargs) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/common/module.py", line 395, in run [2022-10-27-03-14-44] res=self.process(args,**kwargs) ## main computation for user implementation [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 38, in process [2022-10-27-03-14-44] global_report = self.AddExcludedGradientsImagesToReport(global_report, excluded_gradients) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 133, in AddExcludedGradientsImagesToReport [2022-10-27-03-14-44] images = self.CreateImagesOfExcludedGradients(image_path[image_index], excluded_gradients[image_index]) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 235, in CreateImagesOfExcludedGradients [2022-10-27-03-14-44] axial_image = self.AxialView(iter_gradients, input_size, input_image) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/dtiplayground/dmri/preprocessing/modules/QC_Report/QC_Report.py", line 282, in AxialView [2022-10-27-03-14-44] extracted_slice = slice_extractor.Execute(input_image) [2022-10-27-03-14-44] File "/proj/NIRAL/tools/Anaconda/anaconda3_DTIPlayground/lib/python3.9/site-packages/SimpleITK/SimpleITK.py", line 9508, in Execute [2022-10-27-03-14-44] return _SimpleITK.ExtractImageFilter_Execute(self, image1) [2022-10-27-03-14-44] RuntimeError: Exception thrown in SimpleITK ExtractImageFilter_Execute: /tmp/SimpleITK/Code/Common/include/sitkTemplateFunctions.h:96: [2022-10-27-03-14-44] sitk::ERROR: Unable to convert vector to ITK type [2022-10-27-03-14-44] Expected vector of length 4 but only got 3 elements. [2022-10-27-03-14-44]
[2022-10-27-03-14-44] [Pipeline.runPipeline] Processed time : 64331.66s