raidionics / Raidionics

Software for automatic segmentation and generation of standardized clinical reports of brain tumors from MRI volumes
https://raidionics.github.io/
BSD 2-Clause "Simplified" License
34 stars 4 forks source link

AttributeError: 'NoneType' object has no attribute '_fixed_uid' #65

Open remogg opened 11 months ago

remogg commented 11 months ago

First off, thank you very much for providing this tool as an open-source solution. I am a radiologist and must admit that i have little programming knowledge regarding python. Thats why i am struggeling a bit trying to set this up. I already progressed getting the tool to run (didnt want to start segmenting in the beginning) but with this issue i dont seem to make any progress:

Describe the bug When running the Reporting tool using direct DICOM import of T1, T2, FLAIR and T1-ce i get an error message (see below Nr 1) When running it with compressed niftii (even the ones provided as test data) i get a different error message (see below Nr 2)

Computer settings (please complete the following information):

Scanner-Data

Error message 1 20/11/2023 15.50 ; root ; INFO ; LOG: Pipeline - Registration from T1w (T0) to T1CE (T0) - Runtime: 43.97487211227417 seconds. 20/11/2023 15.50 ; root ; INFO ; LOG: Pipeline - Registration from T1w (T0) to T1CE (T0) - End (5/15) 20/11/2023 15.50 ; root ; INFO ; LOG: Pipeline - Apply registration from T1w (T0) to T1CE (T0) - Begin (6/15) 20/11/2023 15.50 ; root ; ERROR ; [RegistrationDeployerStep] Step setup failed with: Traceback (most recent call last): File "raidionicsrads\Pipelines\RegistrationDeployerStep.py", line 52, in setup AttributeError: 'NoneType' object has no attribute '_fixed_uid'

Error message 2 20/11/2023 16.42 ; root ; ERROR ; [SegmentationStep] setup failed with: Traceback (most recent call last): File "raidionicsrads\Pipelines\SegmentationStep.py", line 71, in setup ValueError: No radiological volume for {'timestamp': 0, 'sequence': 'T1-w', 'labels': None, 'space': {'timestamp': 0, 'sequence': 'T1-w'}}.

my assumption I assume this is an issue with the DICOM headers but i wasnt really able to trace it down to what.

Thank you very much. LS

andreped commented 11 months ago

Hello, @remogg!

I noticed that you closed the Issue. Did you mean to do that? If yes, could you report how you solved the issue, as it might be of interest to others.

Do you have an MRI in NIfTI format we could get access to in order to reproduce the issue?

Regardless, @dbouget should be able to assist you further.

remogg commented 11 months ago

Hello @andreped, i accidentally opened 2 tickets with the same content so decided to close this one.

"Do you have an MRI in NIfTI format we could get access to in order to reproduce the issue?" - yes, i could send you an example.

andreped commented 11 months ago

i accidentally opened 2 tickets with the same content so decided to close this one.

Oh, OK. In that case, to keep the conversation, I closed the other one and reopened this one :)

"Do you have an MRI in NIfTI format we could get access to in order to reproduce the issue?" - yes, i could send you an example.

You can see my email from my GitHub user profile if you wish to send me a NIfTI file over email. If it is a public dataset, you could upload it to a google drive and give us access through a URL here. That way @dbouget who likely will debug this further, can get access directly. Otherwise, I can redirect the sample file to him.


EDIT: Perhaps @dbouget can follow this up.

dbouget commented 11 months ago

Hi @remogg, which pipeline were you trying to run and for which tumor type?

If you can try to use the test data provided in Raidionics, and run either Preoperative reporting or Preoperative segmentation from the Actions tab and select glioblastoma as tumor type?

From the error message, it looks like a T1-w MR image is expected for timestamp 0 (which is assumed to be preoperatively), but hasn't been provided. It is unlikely an issue with DICOM headers, as long as you can see all the images you've loaded into Raidionics appearing inside the right-hand side, each tagged with the proper sequence type.

remogg commented 11 months ago

Thank you for the fast reply @dbouget.

From the error message, it looks like a T1-w MR image is expected for timestamp 0 [...].

I provided T1w, T2w, FLAIR, T1ce. All Sequences were recognized correctly, except the T1ce, so I selected the correct sequence type manually for it. Then i ran preopreative reporting and selected Gliobloastoma.

If you can try to use the test data provided in Raidionics, and run either Preoperative reporting or Preoperative segmentation from the Actions tab and select glioblastoma as tumor type?

When trying to run the test data provided i get error message 2 with ValueError: No radiological volume for {'timestamp': 0, 'sequence': 'T1-w', 'labels': None, 'space': {'timestamp': 0, 'sequence': 'T1-w'}}.

This is the same error message i get when using my DICOM-data converted into niftii using mricron.

dbouget commented 11 months ago

Tumor sub-compartments segmentation

I am assuming that you are trying to get the segmentation for the tumor sub-compartments (i.e., tumor, necrosis, and edema), which is the reason why you would need to provide a T1w MRI as input, right? So you have selected Tumor, Necrosis, Edema as Output classes in the Settings under Settings > Preferences > Processing - Segmentation?

As it stands right now, and as I might have hastily released a new version of the software to support the segmentation of sub-compartments, the reporting pipeline should be executed only when running a model that segments just the tumor (i.e., Output classes settings set as Tumor).

That being said, the glioblastoma segmentation that you attempted with your own data should have worked, and it seems that the issue is being triggered during the co-registration of the T1-w MR scan to the T1-CE MR scan. I will look into this issue further as I have so far used only data that were already co-registered, which is a bit lazy of me!

Running the test data

The provided test data are just compatible with the tumor segmentation only models, hence the lack of all four input MR sequences, which explains the error message when trying to run a tumor sub-compartments segmentation model. I have made a new tutorial video showcasing how to use the test data to generate a glioblastoma segmentation, which assumes that the Output classes settings is set as Tumor.