Dimension mismatch error when using field maps (phasediff or 2 phase fmaps) for sdc

Summary of what happened:

Hi, I am trying to run qsiprep on some legacy diffusion data from our lab with 2 phase fieldmaps (and 2 magnitude images) for sdc. I get a dimension mismatch error when it runs the antsApplyTransforms command (see crash log below) and I’m not sure how to resolve the issue. I also tried running qsiprep on the phasediff fieldmap calculated from the 2 phase images (using scripts provided by our imaging center) and I get the same error. My dwi and fmap images have the same spatial resolution and dimensions. Any advice would be appreciated!

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

qsiprep-docker <input_dir> <output_dir> participant --output-resolution 1.875 --fs-license-file <freesurfer_home/license.txt>


qsiprep v0.19.1

Environment (Docker, Singularity, custom installation):


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

This dataset appears to be BIDS compatible.

Relevant log outputs (up to 20 lines):

	antsApplyTransforms --default-value 0 --dimensionality 3 --float 1 --input /tmp/work/qsiprep_wf/single_subject_02_wf/dwi_preproc_dir_PA_wf/hmc_sdc_wf/sdc_wf/phdiff_wf/compfmap/sub-02_phasediff_rads_unwrapped_filt_demean_maths_fmap.nii.gz --interpolation BSpline --output sub-02_phasediff_rads_unwrapped_filt_demean_maths_fmap_trans.nii.gz --reference-image /tmp/work/qsiprep_wf/single_subject_02_wf/dwi_preproc_dir_PA_wf/hmc_sdc_wf/b0_ref_to_lps/topup_imain_LPS.nii.gz --transform /tmp/work/qsiprep_wf/single_subject_02_wf/dwi_preproc_dir_PA_wf/hmc_sdc_wf/sdc_wf/sdc_unwarp_wf/fmap2ref_reg/transformComposite.h5


	Traceback (most recent call last):
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 398, in run
	    runtime = self._post_run_hook(runtime)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/niworkflows/interfaces/registration.py", line 106, in _post_run_hook
	    return super(ANTSApplyTransformsRPT, self)._post_run_hook(runtime)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/mixins/reporting.py", line 50, in _post_run_hook
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/niworkflows/interfaces/report_base.py", line 61, in _generate_report
	    cuts = cuts_from_bbox(mask_nii, cuts=n_cuts)
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/niworkflows/viz/utils.py", line 215, in cuts_from_bbox
	    ras_coords.append(apply_affine(mask_nii.affine, cross).tolist())
	  File "/usr/local/miniconda/lib/python3.8/site-packages/nibabel/affines.py", line 97, in apply_affine
	    pts = pts @ rzs.T + trans[None, :]
	ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 3 is different from 4)

Screenshots / relevant information: