Cannot run fMRIPrep. Missing dependencies:
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
3dQwarp -prefix Qwarp.nii.gz -plusminus (Interface: QwarpPlusMinus)
Full log here
Container was built from dockerhub using Singularity 2.4.5 and 2.5.1
singularity build fmriprep.simg docker://poldracklab/fmriprep:1.1.3
Are you able to singularity exec fmriprep.simg 3dQwarp (or however one tries to execute a command in a Singularity container)? That will help narrow down whether it's a container issue or a dependency check issue.
Also, check whether /usr/lib/afni/bin is in your PATH inside the container.
Should have also specified that /usr/lib/afni/bin is in the PATH.
And 3dQwarp command shows documentation.
This may be a singularity issue, but I'll try building with the latest version (2.6.0) and let you know.
FWIW, fmriprep-1.1.1 runs fine when built with singularity 2.5.1
Ah. I see the problem:
class QwarpPlusMinus(CommandLine):
...
_cmd = '3dQwarp -prefix Qwarp.nii.gz -plusminus'
In #1044, we make sure every _cmd can be found in the PATH, but I guess what we should be doing is making sure that every _cmd.split()[0] can be found.
Or QwarpPlusMinus should be fixed to provide a more normal _cmd.
It'll be quick to update the which check, so I'll do that and we can get a release out. But I'd appreciate opinions on whether that's the appropriate long-term solution, or what would be better.
IMO, Nipype interfaces' _cmd should only include the executable, not include any flags or additional parameters (those can be set as defaults in the inputspec).
I can rework afni.QwarpPlusMinus to resemble fsl.ApplyXFM, which is just a wrapper of FLIRT + parameter set by default
That sounds like a good long-term fix to me. And we should check the nipype docs to make sure that we specify that _cmd should only be the name of the executable.