Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Positional arguments which mandate all previous ones to be present #2847

Copy link
Copy link
Closed
@yarikoptic

Description

@yarikoptic
Issue body actions

Summary

This is a supplement to #2846 fixing up ANTs LaplacianSmoothness interface. The main issue is that the cmdline call description

$> LaplacianThickness 
Usage:   LaplacianThickness WM.nii GM.nii   Out.nii  {smoothparam=3} {priorthickval=5}  {dT=0.01}  use-sulcus-prior optional-laplacian-tolerance=0.001

is not saying that smoothparam is a keyword to use on the command line -- it is just a "description" for that positional field. So if I wanted to just change the optional-laplacian-tolerance to 0.999 (and assuming that all those =value correspond to defaults I would need to call

LaplacianThickness WM.nii GM.nii   Out.nii 3 5 0.01 0 0.999

Actual behavior

ATM, Nipype interface, if I just specify \.opt_tolerance=0.999 (and none of the other prior optional positional arguments) then it would produce (do not have a nipype test, only an integration test result observation):

LaplacianThickness WM.nii GM.nii   Out.nii 0.999

which would place that 0.999 into where ANTs expects (and consumes) the smoothparam.

Expected behavior

If nipype to not carry the defaults for all those fields (which might change etc within ANTs, so not a good idea I guess), then at least I expect it to blow stating that specification of some later positional argument requires specification (or a default value) for all preceding it arguments.

Here is the unittest on top of #2846

def test_LaplacianThickness_wrongargs(change_dir, create_lt):
    lt = create_lt
    lt.inputs.prior_thickness = 5.9
    # 500 must not be placed as smooth_param
    assert lt.cmdline != 'LaplacianThickness functional.nii diffusion_weighted.nii functional_thickness.nii 5.9'
    # probably should have just raised an exception that "smooth_param"
    # should also be defined

which currently would fail!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.