Summary of what happened:
Hi all, I applied SDC, both synb0 and pe-polar , on my data but it doesn’t fix the distortion that much. Is there something I am doing wrong, or is there another method I can try out? Our functional data contains both AP and PA.
For the pe-polar case I took the average of the first 4 volumes (after x amount of dummy volumes) of the AP and PA, and used those as references for SDC. I created a JSON file for each average that looked like this:
{
"PhaseEncodingDirection": "j", (or j-)
"TotalReadoutTime": 0.0392704,
"EffectiveEchoSpacing": 0.000510005,
"EchoTime": 0.03,
"IntendedFor": [
"ses-1/func/sub-01_ses-1_task-rest_run-001_bold.nii.gz",
"ses-1/func/sub-01_ses-1_task-rest_dir-PA_run-001_bold.nii.gz"
],
"B0FieldIdentifier": "pepolar_fmap0"
}
Command used (and if a helper script was used, a link to the helper script or the command generated):
fMRIPrep (averaged AP/PA vols):
/app/.pixi/envs/fmriprep/bin/fmriprep \
{root_dir}/BIDS/Nifti {root_dir}/fMRI/fmriprep_output participant \
--participant-label 01 \
--fs-license-file /opt/freesurfer/license.txt \
--omp-nthreads 8 --dummy-scans 4 \
--bids-filter-file {root_dir}/BIDS/Nifti/bids_filter.json \
--skip-bids-validation \
-w {root_dir}/fMRI/fmriprep_work
fMRIPrep (synb0):
/app/.pixi/envs/fmriprep/bin/fmriprep \
{root_dir}/BIDS/Nifti {root_dir}/fMRI_synb0/fmriprep_output participant \
--participant-label 01 \
--fs-license-file /opt/freesurfer/license.txt \
--omp-nthreads 8 --dummy-scans 4 \
--use-syn-sdc --ignore fieldmaps --force syn-sdc \
--bids-filter-file {root_dir}/BIDS/Nifti/bids_filter.json \
--skip-bids-validation \
-w {root_dir}/fMRI_synb0/fmriprep_work
Version:
25.2.5
Environment (Docker, Singularity / Apptainer, custom installation):
Apptainer
Screenshots / relevant information:
Average AP/PA vols
AP - Distorted
AP - Corrected
PA - Distorted
PA - Corrected
synb0
AP - Distorted
AP - Corrected
PA - Distorted
PA - Corrected







