Does "direct field mapping" for field map require magnitude.nii.gz?

We’ve been seeing a few “BIDS” datasets containing fmap data with only the fieldmap.nii.gz files. I believe this format is called “direct field mapping” according to the BIDS specification (used to be called “real” fieldmap?) > Magnetic Resonance Imaging - Brain Imaging Data Structure v1.6.0

It says,

In some cases (for example GE), the scanner software will directly reconstruct a B0 field map along with a magnitude image used for anatomical reference.

I interpret this to mean that such fieldmaps should always be accompanied by magnitude.nii.gz. Our question is… what should we do with datasets that only contain fieldmap.nii.gz? Is that no longer valid fieldmap data? Or can we treat them as “direct” fieldmap without magnitude.nii.gz? If the magnitude.nii.gz is optional, could you update the specification to state that?

@oesteban I’d appreciate if you could comment on this.

I believe the validator will fail if run on a dataset with fieldmap.nii.gz without corresponding magnitude.nii.gz.

The reason being that the magnitude file is a necessary anatomical reference. Applying the fieldmap without such a reference is, at the very least, risky.

I’m curious about this, because if there’s a fieldmap, there has to be a corresponding magnitude as it is part of the same MR scheme.

Thanks @oesteban
We’ve seen this with the dataset we obtained from CARE consortium, and and another one that my colleague recently obtained… I will ask what it was.

I also see CAM-CAN fmap that looks like this. I am not sure what this is.

hayashis@bigred3(elogin2):/N/project/plab/camcan/cc700/mri/pipeline/release004/BIDS_20190411/fmap_rest/sub-CC110033/fmap(disabled) $ ls
sub-CC110033_fmap.json  
sub-CC110033_fmap.nii.gz  
sub-CC110033_run-01_fmap.json  
sub-CC110033_run-01_fmap.nii.gz  
sub-CC110033_run-02_fmap.json  
sub-CC110033_run-02_fmap.nii.gz

I am guessing “fmap” means “fieldmap” here, which makes it more like the “direct field mapping”, but it might be PEpolar? I am not sure…

Tools like FSL’s FUGUE undistort EPI data using gradient echo fieldmaps. Depending on the setup of the scanner, these can be saved as magnitude, phase, real, imaginary or calculated fieldmap (the last option is not available on Siemens. You can discriminate these with visual inspection.

Tools like FSL’s TOPUP undistort EPI images using a pair of spin echo images where the phase encoding polarity is reversed. These are not really fieldmaps, though they get this label with the BIDS specification. You can recognize these with visual inspection as they exhibit the EPI distortion.

If you used dcm2niix to convert your data, the json file will typically include details to allow you to discriminate these images (though the crucial tags vary between manufacturers)…

1 Like

Hi @Chris_Rorden this is helpful thank you. Am I understanding correctly that this means the fmap has two (ambiguous) meanings in the BIDS standard at the moment?

I am sorry if I am being slow, just trying to clarify.

Kind regards,
Franco

The standard describes the different options. There are different techniques (gradient echo field map vs spin echo pepolar), and different manufacturers provide different options for saving Gradient Echo fieldmaps.

The pepolar option is well suited for diffusion images, since these are spin echo sequences. For Gradient Echo T2* fMRI/resting state you could use either method.

I personally think that the “fieldmap” term used in the series description for a spin echo EPI with a phase-encoding polarity in multi-site studies such as HCP, ABCD, UK Biobank or in the BIDS standard is little confusing or misleading, compared to gradient echo B0 field map.

Regarding gradient echo B0 field map on GE (General Electric) scanners, we offer two type-in PSDs for B0 field map (direct field mapping). 2D version is B0rf, which is a symbolic link to B0map. Recently, we introduced 3D version, type-in PSD 3db0map since DV28. Both PSDs save field map data in the same forms in a single series. The first volume will be a direct field map in Hz. The second volume will be a magnitude image. In the development branch of dcm2niix (v1.0.20210410 or later) will detect GE B0 field map.

So, if it is a GE B0 fieldmap converted to nii using earlier version of dcm2niix, magnitude images may be in the second volume of direct field mapping dataset which can be found with visual inspection.

@mr-jaemin I have edited my previous comment to make explicit where I meant GE to mean Gradient Echo rather than General Electric. I appreciate your additional details.

Like you, others have noted that BIDS requires pepolar data to be labeled as fmap, while these spin echo images are not in fact fieldmaps. Like any evolving format, I think there are several changes that could be made with 20/20 hindsight. However, the tools expect this labeling and the documentation is at least clear about the expectations.

1 Like

Hi! I have a similar problem. I have B0_fieldmap.nii.gz files without magnitude.nii.gz; some of them come from a GE scanner (2 volumes), and others come from a Philips scanner (1 volume). Thanks to @mr-jaemin I now understand how to handle the GE files, but still I don’t know how to treat the single-volume file from Philips. The BIDS validator fails in this case. Any hints? Thank you!

1 Like

Hi @giulia-berto,
How was the B0_fieldmap acquired on the Philips scanner?
Can you tell me the protocol that was used. Typically if one uses something like a ADNI Axial Field Mapping, one gets Magnitude and phase at the two echoes, which can be used to generate the Field map and anatomical mask.
-SG

Hi @sandeepganji, I don’t know the acquisition protocol unfortunately. I don’t have access to the dicom files, but only to the single-volume nifti file.

Without more information or protocol details, it is hard to tell why you have only one volume data from philips.

Hi Franco,

The “traditional” GRadient Echo (GRE) images with different TEs allow you to measure the field map from the phase difference between the two echoes. The “new” EPIs (either GRE-EPI or Spin-Echo-EPI) with opposed phase encoding directions allow you to measure the field from the opposing distortions in the images.

In that regard, they are different ways of mapping the field, and they could be considered “fieldmaps”. But, technically, the only real fieldmap is the processed image (either the phase difference image after re-scaling and unwrapping, or after running topup).

Hi Chris, just wondering if I can ask you about the following…

I have just updated to the latest version of dcm2bids in docker and I am getting the following error…

“ValueError: A field map or phase-difference estimation type was found, but an anatomical reference (magnitude file) is missing”

I am using an EPI image in the opposite phase direction and need these changed into field maps prior to fMRI prep processing. With prior versions of dcm2bids, this error doesn’t appear but wondering if there was some recent change that is not discriminate between an actual field map and an EPI image in the opposite direction that is used to make a fieldmap. If so, how would I amend the json file to fix this?

Thank you in advance for any help you can provide,

Jennifer

I am in the same boat as @giulia-berto, but I do have access to dicom files. Running dcm2niix on an example participant’s dicom directory outputs the following files:

_3D_MPRAGE_SENSE_20171102124929_301.json
_3D_MPRAGE_SENSE_20171102124929_301.nii
_fieldmap_CLEAR_20171102124929_401.json
_fieldmap_CLEAR_20171102124929_401.nii
_Survey_20171102124929_101_i00006.json
_Survey_20171102124929_101_i00006.nii
_Survey_20171102124929_101_i00011.json
_Survey_20171102124929_101_i00011.nii
_Survey_20171102124929_101_i00001.json
_Survey_20171102124929_101_i00001.nii _WIP_BOLD_EPI_725_TR_1900_SENSE_20171102124929_601.json
_WIP_BOLD_EPI_725_TR_1900_SENSE_20171102124929_601.nii _WIP_BOLD_EPI_725_TR_1900_SENSE_20171102124929_701.json
_WIP_BOLD_EPI_725_TR_1900_SENSE_20171102124929_701.nii _WIP_BOLD_EPI_215_TR_1900_SENSE_20171102124929_801.json
_WIP_BOLD_EPI_215_TR_1900_SENSE_20171102124929_801.nii _WIP_BOLD_EPI_215_TR_1900_SENSE_20171102124929_901.json _WIP_BOLD_EPI_215_TR_1900_SENSE_20171102124929_901.nii

Unless the “Survey” files are related to the fieldmapping procedure, it looks like it’s just the one “fieldmap_CLEAR” nifti that I have to work with. Here is the fieldmap json info:

cat _fieldmap_CLEAR_20171102124929_401.json
{
“Modality”: “MR”,
“MagneticFieldStrength”: 3,
“ImagingFrequency”: 127.741,
“Manufacturer”: “Philips”,
“ManufacturersModelName”: “Achieva”,
“InstitutionName”: “”,
“InstitutionalDepartmentName”: “”,
“DeviceSerialNumber”: “17437”,
“StationName”: “PHILIPS-08281EC”,
“BodyPartExamined”: “BRAIN”,
“PatientPosition”: “HFS”,
“ProcedureStepDescription”: “”,
“SoftwareVersions”: “3.2.3\3.2.3.1”,
“MRAcquisitionType”: “2D”,
“SeriesDescription”: “fieldmap”,
“ProtocolName”: “fieldmap CLEAR”,
“ScanningSequence”: “GR”,
“SequenceVariant”: “SS”,
“ScanOptions”: “FS”,
“ImageType”: [“ORIGINAL”, “PRIMARY”, “M”, “FFE”, “M”, “FFE”],
“SeriesNumber”: 401,
“AcquisitionTime”: “13:28:1.430000”,
“AcquisitionNumber”: 4,
“PhilipsRescaleSlope”: 2.81319,
“PhilipsRescaleIntercept”: 0,
“PhilipsScaleSlope”: 0.00835985,
“UsePhilipsFloatNotDisplayScaling”: 1,
“SliceThickness”: 3,
“SpacingBetweenSlices”: 3,
“SAR”: 0.188972,
“EchoTime”: 0.007001,
“RepetitionTime”: 0.72238,
“FlipAngle”: 55,
“CoilString”: “Dual coil”,
“PercentPhaseFOV”: 100,
“PercentSampling”: 100,
“PhaseEncodingSteps”: 80,
“AcquisitionMatrixPE”: 80,
“ReconMatrixPE”: 240,
“WaterFatShift”: 0.131077,
“EstimatedEffectiveEchoSpacing”: 6.31381e-07,
“EstimatedTotalReadoutTime”: 0.0001509,
“PixelBandwidth”: 3313,
“PhaseEncodingAxis”: “j”,
“ImageOrientationPatientDICOM”: [
1,
0,
0,
0,
0.995289,
-0.0969537 ],
“InPlanePhaseEncodingDirectionDICOM”: “COL”,
“ConversionSoftware”: “dcm2niix”,
“ConversionSoftwareVersion”: “v1.0.20210317”
}

I converted the data to BIDS format, and added the “IntendedFor”, “Units”, and “B0FieldIdentifier” fields to the fieldmap json file per the Case 3: Direct field mapping specification, but when I try to run fmriprep (v20.2.6) I get the “code: 91 - _FIELDMAP_WITHOUT_MAGNITUDE_FILE” error.

Any suggestions for how to proceed would be very much appreciated. Thanks!