New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Singularity build missing dependencies (1.1.3) #1235

Closed
mgxd opened this Issue Aug 5, 2018 · 7 comments

Comments

Projects
None yet
3 participants
@mgxd
Collaborator

mgxd commented Aug 5, 2018

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

@oesteban oesteban added the bug label Aug 5, 2018

@effigies

This comment has been minimized.

Collaborator

effigies commented Aug 6, 2018

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.

@effigies

This comment has been minimized.

Collaborator

effigies commented Aug 6, 2018

Also, check whether /usr/lib/afni/bin is in your PATH inside the container.

@mgxd

This comment has been minimized.

Collaborator

mgxd commented Aug 6, 2018

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

@effigies

This comment has been minimized.

Collaborator

effigies commented Aug 6, 2018

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.

@effigies

This comment has been minimized.

Collaborator

effigies commented Aug 6, 2018

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.

effigies added a commit that referenced this issue Aug 6, 2018

@mgxd

This comment has been minimized.

Collaborator

mgxd commented Aug 6, 2018

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

@effigies

This comment has been minimized.

Collaborator

effigies commented Aug 6, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment