ismrmrd / ge_to_ismrmrd

GE to ISMRMRD converter
Other
7 stars 10 forks source link

Errors when converting GE Raw data #18

Closed RitiP closed 1 year ago

RitiP commented 2 years ago

Hi,

I have been able to successfully create the setup for GE conversion repo following the steps provided here. However, for some of the files the converter fails with the following error:

Screen Shot 2021-12-31 at 8 28 40 AM

System specifications: Ubuntu 18.04 Orchestra 2.0 openssl 1.0.0

It's be great if anyone can provide any information regarding what could be a possible cause behind this issue. Thanks in advance!

roopchansinghv commented 2 years ago

Hi - I've not come across this error before. Is this error generated when converting a P-file, or a ScanArchive? What pulse sequence was used to generate these data?

From what I can trace through Orchestra's header files, if the Legacy::LxControlSource object (as instantiated here) runs into a Baseline acquisition, it will throw an Exception - which is most likely what you are seeing.

If this is a 2D or EPI scan, you can utilize a LxControlSource::DisableBaselineProcessing() function call to allow you to process baseline data, or if you don't need these and would just want to skip them, then you can check if an acquisition is a Baseline acquisition and skip over it.

I've gleaned this information from the header files in Orchestra's $SDKTOP directory - so I don't have access to any more information (from GE or otherwise) than you have available. You can also run Doxygen over the $SDKTOP/include/recon directory to generate a browsable set of documentation - this is what I've used to develop this converter.

RitiP commented 2 years ago

Hi @roopchansinghv ,

Is it possible to share the data with you over a discrete channel? Also, as far as I know, all of the files are P-files which are a 2D scan created with regular spin echo pulse. However, for most of them it is failing to convert. For a few it was able to read the file but the h5 file created was empty(no data inside it at all). Additionally, if you can let me know where exactly I can make the changes you mentioned, that'd be incredibly helpful! I'm a deep learning researcher trying to work with MRI data but converting them has been a great issue for me. Any kind of help is appreciated. Thanks!

RitiP commented 2 years ago

Hi @roopchansinghv , Can you please guide me where exactly I need to make this change?

" If this is a 2D or EPI scan, you can utilize a LxControlSource::DisableBaselineProcessing() function call to allow you to process baseline data, or if you don't need these and would just want to skip them, then you can check if an acquisition is a Baseline acquisition and skip over it. "

roopchansinghv commented 2 years ago

Hi @RitiP - it should be here that you would want to put a check in for baseline scans.