Fmriprep: Singularity build missing dependencies (1.1.3)

Created on 5 Aug 2018  路  7Comments  路  Source: nipreps/fmriprep

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

bug

All 7 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jdkent picture jdkent  路  5Comments

oesteban picture oesteban  路  5Comments

jdkent picture jdkent  路  4Comments

tib-sim picture tib-sim  路  4Comments

jawaltz picture jawaltz  路  4Comments