brainlife / ezbids

A web service for semi-automated conversion of raw imaging data to BIDS
https://brainlife.io/ezbids
MIT License
26 stars 13 forks source link

Problem with organising NiFTI files - No objects found #120

Closed joebathelt closed 7 months ago

joebathelt commented 7 months ago

I’m trying to organise a folder of NiFTI files and their associated JSON sidecars using ezBIDS. The files were created using the latest version of dcm2niix like this dcm2niix -b y -ba y -z y.

The NiFTI files look like regular imaging files. They open in FSL and MRIcron and contain the images that I expect, namely a T1 and three runs of BOLD fMRI with the correct number of time points. The JSON sidecars also seem valid:

{
    "Manufacturer": "Philips",
    "PatientPosition": "HFS",
    "SeriesDescription": "ImageMRSERIES",
    "ProtocolName": "T2w_acq-0.8mm-sag",
    "SeriesNumber": 2,
    "AcquisitionNumber": 2,
    "ImageComments": "------",
    "PhilipsRescaleSlope": 2.40098,
    "PhilipsRescaleIntercept": 0,
    "PhilipsScaleSlope": 0.00349943,
    "UsePhilipsFloatNotDisplayScaling": 1,
    "EchoTime": 0.33,
    "RepetitionTime": 2.5,
    "ReconMatrixPE": 320,
    "ImageOrientationPatientDICOM": [
        0.083264,
        0.993682,
        -0.0752491,
        -0.039783,
        -0.0721366,
        -0.996601   ],
    "ConversionSoftware": "dcm2niix",
    "ConversionSoftwareVersion": "v1.0.20190902"
}

The file organisation also seems similar to the examples in the ezBIDS documentation:

└── sub-01 ├── RawData_T2w_acq-0.8mm-sag_20240301133552_2.json ├── RawData_T2w_acq-0.8mm-sag_20240301133552_2.nii.gz ├── RawData_WIPIRTtopup1_20240301133552_3.json ├── RawData_WIPIRTtopup1_20240301133552_3.nii.gz ├── RawData_WIPIRTtopup1_20240301133552_3_ph.json ├── RawData_WIPIRTtopup1_20240301133552_3_ph.nii.gz ├── RawData_WIPIRTtopup2_20240301133552_5.json ├── RawData_WIPIRTtopup2_20240301133552_5.nii.gz ├── RawData_WIPIRTtopup2_20240301133552_5_ph.json ├── RawData_WIPIRTtopup2_20240301133552_5_ph.nii.gz ├── RawData_WIPIRTtopup3_20240301133552_7.json ├── RawData_WIPIRTtopup3_20240301133552_7.nii.gz ├── RawData_WIPIRTtopup3_20240301133552_7_ph.json └── RawData_WIPIRTtopup3_20240301133552_7_ph.nii.gz

However, when I upload the folder, I get an error that “We couldn't find any objects. Please upload data that contains at least 1 object.“. Unfortunately, I do not get much information from the log files to trace the error.

I’d be super helpful if you could help me to figure what why these images are not recognised.

Here are the log and error files: preprocess_log.txt preprocess_err.txt

dlevitas commented 7 months ago

Hi @joebathelt.

Can you click on the "Debug (Download)" section of the page and select the "Dump state" button and send me that downloaded file. Feel free to send it my email (dlevitas@iu.edu).

Additionally, is this occurring on a local installation of ezBIDS that you've set up?

joebathelt commented 7 months ago

Hi @dlevitas,

Thank you for your help.

Yes, it is a local installation. Unfortunately, I'm not allowed to upload the original data to the ezBIDS server because of EU regulations. I tested the local installation with the ezBIDS example data and the conversion worked as expected. It also worked with DICOM files, but not with the converted NiFTIs.

I sent the dump state and log files to you via email.

dlevitas commented 7 months ago

Thanks, @joebathelt. I made a mock-up example of your data and was able to successfully upload it. Since you're using a local installation, did you git clone the repository awhile back? If so, it may need to be updated (cd into your ezBIDS directory and do git pull).

Once updated, you'll need to bring down your current ezBIDS setup with Ctrl + C and docker-compose down and then rebuild, I would suggest docker-compose build --no-cache

Lastly, it's up to you whether or not you want to use dcm2niix to convert the DICOMs to NIfTI beforehand, ezBIDS will accept either.

joebathelt commented 7 months ago

Thank you, it works after updating to the latest version.