Fieldmap-less (SyN) estimation was requested, but PhaseEncodingDirection information appears to be absent

Summary of what happened:

I am trying to run fMRIPrep with fieldmap‐less SDC using the --use-syn-sdc (and --force-syn) options on my BIDS dataset. Although both my functional and T1w JSON files include the "PhaseEncodingDirection" field (and I added "TotalReadoutTime": 0.0350402 to the T1w JSON), I still encounter the error:

ValueError: Fieldmap-less (SyN) estimation was requested, but PhaseEncodingDirection information appears to be absent.

I originally used a two-step process (an anat-only run followed by a functional run with derivatives) but suspect that this approach might cause some metadata propagation issues. I have now consolidated everything into a single fMRIPrep run per subject, yet the error persists.


Command used (and if a helper script was used, a link to the helper script or the command generated):

I’m running fMRIPrep via Docker with a custom Bash script. The core command used is as follows:

sudo docker run --rm -ti \
  -v "/Volumes/Dragon/wenwu/QC/BIDS_data":/data:ro \
  -v "/Volumes/Dragon/wenwu/QC/fmriprep_output_fieldmaptesting":/out \
  -v "/path/to/tmp_work_dir":/work \
  -v "/Users/wsun40/Downloads/license.txt":/opt/freesurfer/license.txt \
  nipreps/fmriprep:latest \
  /data /out participant \
  --participant-label 506 \
  --fs-license-file /opt/freesurfer/license.txt \
  --fs-no-reconall \
  --output-spaces T1w MNI152NLin2009cAsym \
  --nthreads 8 \
  --omp-nthreads 2 \
  --mem_mb 32000 \
  --use-syn-sdc \
  --force-syn \
  -w /work

Version:

I am using fMRIPrep version 23.02 (via Docker).


Environment (Docker, Singularity / Apptainer, custom installation):

I am running fMRIPrep using Docker.


Data formatted according to a validatable standard? Please provide the output of the validator:

My dataset is organized according to the BIDS standard (BIDSVersion: 1.6.0). I ran the BIDS Validator, and the output was:

All checks passed. Your dataset is BIDS valid.

Relevant log outputs (up to 20 lines):

ValueError: Fieldmap-less (SyN) estimation was requested, but PhaseEncodingDirection information appears to be absent.
Traceback (most recent call last):
  File "/opt/fmriprep/fmriprep/workflow/scripts/fmap_estimation.py", line 123, in <module>
    raise ValueError("Fieldmap-less (SyN) estimation was requested, but PhaseEncodingDirection information appears to be absent.")

Extra information:

I saw this thread on NeuroStars and tried the solution suggested at the end of the thread, but it did not work for me (I don’t have the DatasetType and GeneratedBy fields in my dataset_description.json). You can find the discussion here: NeuroStars Thread

Thanks in advance!

Hi @Wenwu_Sun,

Please return the contents of your BOLD json.

Unrelated, but --fs-no-reconall is not recommended.

Best,
Steven

Hi Steven,

Here is the content of a BOLD json file:

{
“Modality”: “MR”,
“MagneticFieldStrength”: 3,
“ImagingFrequency”: 123.247625,
“Manufacturer”: “Siemens”,
“ManufacturersModelName”: “TrioTim”,
“InstitutionName”: “Emory University”,
“InstitutionalDepartmentName”: “FERN”,
“InstitutionAddress”: “Eagle Row 36,Atlanta,GA,US,30322”,
“DeviceSerialNumber”: “35465”,
“StationName”: “MRC35465”,
“PatientPosition”: “HFS”,
“ProcedureStepDescription”: “FERN - TREADWAY^Inflix”,
“SoftwareVersions”: “syngo MR B17”,
“MRAcquisitionType”: “2D”,
“SeriesDescription”: “mbep2d_AdMID1”,
“ProtocolName”: “mbep2d_AdMID1”,
“ScanningSequence”: “EP”,
“SequenceVariant”: “SK\SS”,
“ScanOptions”: “PFP\FS”,
“SequenceName”: “epfid2d1_74”,
“ImageType”: [“ORIGINAL”, “PRIMARY”, “M”, “MB”, “ND”, “NORM”, “MOSAIC”],
“NonlinearGradientCorrection”: false,
“SeriesNumber”: 11,
“AcquisitionTime”: “10:55:18.772500”,
“AcquisitionNumber”: 1,
“ImageComments”: “Unaliased MB4/PE3 SENSE1”,
“SliceThickness”: 3,
“SpacingBetweenSlices”: 3,
“SAR”: 0.132718,
“EchoTime”: 0.03,
“RepetitionTime”: 1,
“FlipAngle”: 65,
“PartialFourier”: 0.75,
“BaseResolution”: 74,
“ShimSetting”: [
1483,
1888,
4716,
1070,
0,
626,
-1019,
-26 ],
“TxRefAmp”: 340.881,
“PhaseResolution”: 1,
“ReceiveCoilName”: “32Ch_Head”,
“CoilString”: “C:HEA;HEP”,
“PulseSequenceDetails”: “%CustomerSeq%\cmrr_mbep2d_bold”,
“CoilCombinationMethod”: “Sum of Squares”,
“MatrixCoilMode”: “SENSE”,
“MultibandAccelerationFactor”: 4,
“PercentPhaseFOV”: 100,
“PercentSampling”: 100,
“PhaseEncodingSteps”: 56,
“AcquisitionMatrixPE”: 74,
“ReconMatrixPE”: 74,
“BandwidthPerPixelPhaseEncode”: 28.153,
“EffectiveEchoSpacing”: 0.000480003,
“DerivedVendorReportedEchoSpacing”: 0.000480003,
“TotalReadoutTime”: 0.0350402,
“PixelBandwidth”: 2703,
“DwellTime”: 2.5e-06,
“PhaseEncodingDirection”: “j-”,
“SliceTiming”: [
0,
0.54,
0.0775,
0.6175,
0.1525,
0.695,
0.23,
0.7725,
0.3075,
0.8475,
0.385,
0.925,
0.4625,
0,
0.54,
0.0775,
0.6175,
0.1525,
0.695,
0.23,
0.7725,
0.3075,
0.8475,
0.385,
0.925,
0.4625,
0,
0.54,
0.0775,
0.6175,
0.1525,
0.695,
0.23,
0.7725,
0.3075,
0.8475,
0.385,
0.925,
0.4625,
0,
0.54,
0.0775,
0.6175,
0.1525,
0.695,
0.23,
0.7725,
0.3075,
0.8475,
0.385,
0.925,
0.4625 ],
“ImageOrientationPatientDICOM”: [
1,
0,
0,
0,
0.951057,
-0.309017 ],
“ImageOrientationText”: “Tra>Cor(-18.0)”,
“InPlanePhaseEncodingDirectionDICOM”: “COL”,
“BidsGuess”: [“func”,“_acq-epfid2m4_dir-AP_run-11_bold”],
“ConversionSoftware”: “dcm2niix”,
“ConversionSoftwareVersion”: “v1.0.20240202”
}

For the --fs-no-reconall, I got it. Thanks! I‘m using this option to accelerate the debugging processing.

Best,
Wenwu

Hi @Wenwu_Sun,

Can you try the most recent version (24.1.1 at this time)?

Best,
Steven

Hi Steven,

I tried and 24.1.1 still shows the same issue. Do you think it’s worth using earlier version (mentioned in the related thread) ?
Thanks!

Best,
Wenwu

Can you share a subject’s worth of data?

Sorry Steven. Due to the policy, I can’t share the data. However, I managed to run version 21.0.2 with
–use-syn-sdc
–force-syn \
with no error, and the HTML report shows the results of the fieldmap correction. Is it okay to solve it this way? Is there any major concern about using version 21.0.2?
Thank you so much!

Best,
Wenwu

Hi @Wenwu_Sun,

You can see all the changes here and make a decision for yourself if the changes will affect your analysis What’s new — fmriprep version documentation . It also seems like the new 25.0.0 had some changes to Syn if you want to try that.

Best,
Steven

Thanks a lot Steven! :slight_smile:

Best,
Wenwu