Error bids validation after dcm2bids conversion: 'RepetitionTime' and 'AcquisitionDuration' are mutually exclusive

Hello,

we used dcm2bids to convert our MRI pilot data to BIDS (Data acquired on Siemens MAGNETOM Prisma). I upload my BIDS folder in the BIDS validator I keep getting the error below. I am afraid there might be something wrong with the export at the scanner (we choose ‘image conversion - enhanced’ and exported both in ‘create DICOM file system’ mode and with the box unchecked) . Note that I collected data two summers ago with siemens and I had no issues with the conversion.

error bids validator:

The fields ‘RepetitionTime’ and ‘AcquisitionDuration’ for this file are mutually exclusive. To specify acquisition duration, use ‘SliceTiming’ or ‘DelayTime’ (RepetitionTime - AcquisitionDuration).

  • /sub-01/anat/sub-01_T1w.nii.gz
  • /sub-01/fmap/sub-01_magnitude1.nii.gz
  • /sub-01/fmap/sub-01_magnitude2.nii.gz
  • /sub-01/fmap/sub-01_phasediff.nii.gz
  • /sub-01/func/sub-01_task-WM_run-01_bold.nii.gz
  • /sub-01/func/sub-01_task-WM_run-02_bold.nii.gz
  • /sub-01/func/sub-01_task-WM_run-03_bold.nii.gz

When I run dcm2bids, I get no errors but the following warnings appear (even for my T1 I get a warning for incorrect slicetiming which is weird):

I am not able to attach a json file so I pasted the content below (this is for one of the functional fmri runs).

anyone with experience with this? Thank you in advance for your help!

Nina

{
    "Modality": "MR",
    "MagneticFieldStrength": 3,
    "ImagingFrequency": 123.241502,
    "Manufacturer": "Siemens",
    "ManufacturersModelName": "MAGNETOM Prisma Fit",
    "BodyPartExamined": "BRAIN",
    "PatientPosition": "HFS",
    "ProcedureStepDescription": "Sequence Region Customer Sequences",
    "SoftwareVersions": "syngo MR XA60",
    "MRAcquisitionType": "2D",
    "SeriesDescription": "FUNC_RUN1",
    "ProtocolName": "FUNC_RUN1",
    "ScanningSequence": "EP",
    "SequenceVariant": "SK",
    "ScanOptions": "FS",
    "PulseSequenceName": "*epfid2d1_104",
    "ImageType": [
        "ORIGINAL",
        "PRIMARY",
        "FMRI",
        "NONE"
    ],
    "ImageTypeText": [
        "ORIGINAL",
        "PRIMARY",
        "M",
        "ND",
        "NORM"
    ],
    "NonlinearGradientCorrection": false,
    "SeriesNumber": 8,
    "AcquisitionTime": "15:01:28.515000",
    "AcquisitionNumber": 1,
    "SliceThickness": 2,
    "SpacingBetweenSlices": 2,
    "EchoTime": 0.03,
    "RepetitionTime": 1.5,
    "MTState": false,
    "FlipAngle": 65,
    "PartialFourier": 1,
    "BaseResolution": 104,
    "ShimSetting": [
        5091,
        -7539,
        -7718,
        335,
        -182,
        -70,
        61,
        51
    ],
    "TxRefAmp": 260.906,
    "PhaseResolution": 1,
    "ReceiveCoilName": "HeadNeck_64",
    "ReceiveCoilActiveElements": "HC1-7",
    "CoilString": "HeadNeck_64",
    "PulseSequenceDetails": "%SiemensSeq%\\ep2d_bold",
    "RefLinesPE": 24,
    "CoilCombinationMethod": "Sum of Squares",
    "MultibandAccelerationFactor": 3,
    "PercentPhaseFOV": 100,
    "PercentSampling": 100,
    "EchoTrainLength": 51,
    "PhaseEncodingSteps": 104,
    "FrequencyEncodingSteps": 104,
    "AcquisitionMatrixPE": 104,
    "ReconMatrixPE": 104,
    "BandwidthPerPixelPhaseEncode": 34.341,
    "ParallelReductionFactorInPlane": 2,
    "ParallelAcquisitionTechnique": "SMS",
    "EffectiveEchoSpacing": 0.000279997,
    "DerivedVendorReportedEchoSpacing": 0.000559994,
    "AcquisitionDuration": 916.417,
    "TotalReadoutTime": 0.0288397,
    "PixelBandwidth": 2090,
    "DwellTime": 2.3e-06,
    "PhaseEncodingDirection": "j",
    "SliceTiming": [
        1.11,
        0,
        0.74,
        0.0625,
        0.8025,
        0.125,
        0.865,
        0.185,
        0.925,
        0.2475,
        0.9875,
        0.31,
        1.05,
        0.4325,
        1.1725,
        0.495,
        1.235,
        0.555,
        1.295,
        0.6175,
        1.3575,
        0.68,
        1.42,
        0.37,
        1.11,
        0,
        0.74,
        0.0625,
        0.8025,
        0.125,
        0.865,
        0.185,
        0.925,
        0.2475,
        0.9875,
        0.31,
        1.05,
        0.4325,
        1.1725,
        0.495,
        1.235,
        0.555,
        1.295,
        0.6175,
        1.3575,
        0.68,
        1.42,
        0.37,
        1.11,
        0,
        0.74,
        0.0625,
        0.8025,
        0.125,
        0.865,
        0.185,
        0.925,
        0.2475,
        0.9875,
        0.31,
        1.05,
        0.4325,
        1.1725,
        0.495,
        1.235,
        0.555,
        1.295,
        0.6175,
        1.3575,
        0.68,
        1.42,
        0.37
    ],
    "ImageOrientationPatientDICOM": [
        0.999455,
        -0.00309175,
        0.0328565,
        0.00610544,
        0.995738,
        -0.0920225
    ],
    "InPlanePhaseEncodingDirectionDICOM": "COL",
    "BidsGuess": [
        "func",
        "_acq-epfid2p2m3_dir-PA_run-8_bold"
    ],
    "ConversionSoftware": "dcm2niix",
    "ConversionSoftwareVersion": "v1.0.20240202",
    "Dcm2bidsVersion": "3.2.0",
    "TaskName": "WM"
}

edited your post to “prettify” the json rendering

OK first you are doing the good thing to run the validator after converting your data: using a converter is not enough to make your dataset a valid BIDS dataset

some more info on that error

Relevant part of the spec: Magnetic Resonance Imaging - Brain Imaging Data Structure 1.10.1-dev

Especially see the table right above this section: Magnetic Resonance Imaging - Brain Imaging Data Structure 1.10.1-dev

fix

I am pretty sure that the “AcquisitionDuration” can be deleted from your json file: it seems to reflect more the total duration of your scan than the duration of the acquisition of one volume.

how many volumes did you acquire?

@abore any suggestion?

Thanks Remi! AcquisitionDuration is the maximum duration of the scan, but we manually stop the acquisition when the task finishes. So it is set to 15min (which is 916s) but we always manually stop the functional epi runs after 8 tot 10 min (depending on the speed of the participant). It seems that the time in the json file still reflects this maximum duration and not the actual duration. This AcquisitionDuration field is new to me, never had this in my json files in previous studies (while I always stop the scan earlier for task runs).

Do you think it also triggers the slicetiming warnings when running dcm2bids?

Nina

OK so defo remove that from the json file as it is just confusing things in any case.

I think the slice timing warning is caused by something else: not sure what.

Hello @NinaD,

Dcm2bids is a wrapper on top of dcm2niix, the expert here would be @Chris_Rorden. It would be nice to have his input. Apart from that (which is not a small thing) do you have any issues with the sorting of you nifti files into a BIDS structure ?

Hope @neurolabusc can help you with this.

Best,
Arnaud

I agree with @Remi-Gau that the short-term fix is to delete AcquisitionDuration from your JSON files.

The larger issue is that the standard is inconsistent in how it defines this field:

Input on resolving the inconsistency would be appreciated.

Thanks everyone! We will remove this parameter manually to prevent the conflict, until there is a more long-term solution.

You can have this done directly in dcm2bids by overwritting the value AcquisitionDuration to something empty (if empty is enough). check this link.

1 Like