Summary of what happened:
Hi,
I’m trying to use spin-echo fieldmaps with opposite phase encoding (AP/PA) for susceptibility distortion correction; however, after making several adjustments, I still get this message:
No fieldmap correction - skipping Stage 3
That I believe means it is not recognizing the files. So far I’ve verified the following:
fieldmap JSONs are under sub-XX/ses-V1/fmap/. Note I have up to three sessions.
sub-XX_ses-V1_dir-AP_epi.nii.gz
sub-XX_ses-V1_dir-AP_epi.json
sub-XX_ses-V1_dir-PA_epi.nii.gz
sub-XX_ses-V1_dir-PA_epi.json
Each JSON includes:
"PhaseEncodingDirection": "j-" (AP)
"PhaseEncodingDirection": "j+" (PA)
"TotalReadoutTime": 0.0484496,
"IntendedFor": ["sub-XX/ses-V1/perf/sub-XX_ses-V1_asl.nii.gz"]
Note: I initially had "PhaseEncodingDirection": "j" in my PA fieldmap JSONs. After reading some discussions, I updated this to "j+" to explicitly indicate the positive phase-encoding direction (to match the "j-" in the AP file). However, I got the same message.
Plus, FYI:
Documentation under the section Susceptibility Distortion Correction (SDC) (Processing pipeline details — aslprep version documentation), has a broken link pointing to " SDCFlows documentation" giving a 404 error.
Any help is appreciated.
-Cindy
Command used (and if a helper script was used, a link to the helper script or the command generated):
# Environment variables
export FS_LICENSE= /FreeSurferLicense/license.txt
export TEMPLATEFLOW_HOME=/analysis/templateflow
export APPTAINERENV_FS_LICENSE=/freesurfer_license/license.txt
export APPTAINERENV_TEMPLATEFLOW_HOME=/templateflow
# Paths
ASLPREP_IMG=/analysis/ASLprep/aslprep-25.1.0.sif
BIDS_DIR=/analysis/ASLprep/test
OUT_DIR=${BIDS_DIR}/output
WORK_DIR=${BIDS_DIR}/work
# Run ASLPrep
apptainer run --cleanenv \
--env TEMPLATEFLOW_HOME=/templateflow \
--bind ${BIDS_DIR}:/data:ro \
--bind ${OUT_DIR}:/out \
--bind ${WORK_DIR}:/work \
--bind /analysis/ASLprep/FreeSurferLicense:/freesurfer_license \
--bind /analysis/templateflow:/templateflow \
${ASLPREP_IMG} \
/data /out participant \
--participant-label XX \
--skip_bids_validation \
--n_cpus 16 \
--output-spaces T1w MNI152NLin2009aSym \
--random-seed 42 \
--basil \
--aggregate-session-reports 3 \
--skull-strip-fixed-seed \
--fs-license-file /freesurfer_license/license.txt \
-vv \
--resource-monitor \
--write-graph \
--work-dir /work
Version:
ASLPrep (v25.1.0)
Environment (Docker, Singularity / Apptainer, custom installation):
Apptainer
Data formatted according to a validatable standard? Please provide the output of the validator:
error: INTENDED_FOR
'IntendedFor' field needs to point to an existing file. Files must be subject-relative paths or BIDS URIs.
/sub-XX/ses-V1/fmap/sub-XX_ses-V1_dir-PA_epi.nii.gz
/sub-XX/ses-V1/fmap/sub-XX_ses-V1_dir-AP_epi.nii.gz
/sub-XX/ses-V2/fmap/sub-XX_ses-V2_dir-AP_epi.nii.gz
/sub-XX/ses-V2/fmap/sub-XX_ses-V2_dir-PA_epi.nii.gz
/sub-XX/ses-V3/fmap/sub-XX_ses-V3_dir-AP_epi.nii.gz
/sub-XX/ses-V3/fmap/sub-XX_ses-V3_dir-PA_epi.nii.gz
error: JSON_SCHEMA_VALIDATION_ERROR (PhaseEncodingDirection)
Invalid JSON sidecar file. The sidecar is not formatted according the schema.
/sub-XX/ses-V1/fmap/sub-XX_ses-V1_dir-PA_epi.json (must be equal to one of the allowed values Field description: The letters `i`, `j`, `k` correspond to the first, second and third axis of the data in the NIFTI file. The polarity of the phase encoding is assumed to go from zero index to maximum index unless `-` sign is present (then the order is reversed - starting from the highest index instead of zero). `PhaseEncodingDirection` is defined as the direction along which phase is was modulated which may result in visible distortions. Note that this is not the same as the DICOM term `InPlanePhaseEncodingDirection` which can have `ROW` or `COL` values. )
/sub-XX/ses-V2/fmap/sub-XX_ses-V2_dir-PA_epi.json (must be equal to one of the allowed values Field description: The letters `i`, `j`, `k` correspond to the first, second and third axis of the data in the NIFTI file. The polarity of the phase encoding is assumed to go from zero index to maximum index unless `-` sign is present (then the order is reversed - starting from the highest index instead of zero). `PhaseEncodingDirection` is defined as the direction along which phase is was modulated which may result in visible distortions. Note that this is not the same as the DICOM term `InPlanePhaseEncodingDirection` which can have `ROW` or `COL` values. )
/sub-XX/ses-V3/fmap/sub-XX_ses-V3_dir-PA_epi.json (must be equal to one of the allowed values Field description: The letters `i`, `j`, `k` correspond to the first, second and third axis of the data in the NIFTI file. The polarity of the phase encoding is assumed to go from zero index to maximum index unless `-` sign is present (then the order is reversed - starting from the highest index instead of zero). `PhaseEncodingDirection` is defined as the direction along which phase is was modulated which may result in visible distortions. Note that this is not the same as the DICOM term `InPlanePhaseEncodingDirection` which can have `ROW` or `COL` values. )
Relevant log outputs (up to 20 lines):
251111-20:48:28,487 nipype.workflow INFO:
No single-band-reference found for sub-XX_ses-VX_asl.nii.gz.
251111-20:48:28,548 nipype.workflow INFO:
Stage 1: Adding HMC aslref workflow
251111-20:48:28,551 nipype.workflow INFO:
Stage 2: Adding motion correction workflow
251111-20:48:28,553 nipype.workflow INFO:
No fieldmap correction - skipping Stage 3
Screenshots / relevant information:
Screenshot from a fieldmap json file (/analysis/ASLprep/test/sub-XX/ses-V1/fmap/sub-XX_ses-V1_dir-AP_epi.json):
