Skip to content

Some ANTs interfaces will be broken #1014

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

Closed
armaneshaghi opened this issue Jan 1, 2015 · 10 comments
Closed

Some ANTs interfaces will be broken #1014

armaneshaghi opened this issue Jan 1, 2015 · 10 comments

Comments

@armaneshaghi
Copy link
Contributor

I'm documenting changes I need to make for ANTs interfaces, as a new built has broken some Nipype interfaces. Unfortunately, ANTs versioning and its backward compatibility are not the best.

  • N4BiasFieldCorrection:

     --image-dimension needs to be changed to --image-dimensionality 
    

I think there are some changes we need to make for the registration interface, please add below as you find any broken interface.

@armaneshaghi
Copy link
Contributor Author

  • antsRegistration

collapse-linear-transforms-to-fixed-image-header

and

transformRigid

are no longer available.

@lsqshr
Copy link
Contributor

lsqshr commented Jan 10, 2015

An open pull request in Nov.14 has fixed the problem of collapse-linear-transforms-to-fixed-image-header #999. However it has not been merged?

@JDWarner
Copy link
Contributor

I'll update #999 with the N4 bias correction change, and look into transformRigid.

@armaneshaghi
Copy link
Contributor Author

Thanks. @satra do you suggest anything for backward compatibility? Shall we add a new input, such as version, so that the final output command line will change. For example an input for ants version may work like this:

antsRegistration.inputs.version = (a float)

But I do not like this solution, because it will complicate the life of new users. The the other (smarter way) would be to use Python subprocess to quickly scan the help of ants binary each time and set the flags.

@JDWarner
Copy link
Contributor

👍 for the subprocess solution. Changing the flags is easy, adding robust logic to select the right one a little tricky. Unit testing that requires multiple ANTs versions ends up being hard, though, mainly thanks to Travis timeouts. Unfortunately I'm away right now and my laptop doesn't have ANTs built, so it's difficult for me to play with the parsing necessary.

I didn't bother with backwards compatibility for the collapse-linear-transforms-to-fixed-image-header change, as it was not doing anything previously for over 2 years.

@satra
Copy link
Member

satra commented Jan 11, 2015

@armaneshaghi - there are a few things to consider.

  • ants rarely comes out with versions and we often end up running a git version of ants. if we can convince the ants folks to at least create versions every month, then versioning can be used.
  • there is a PR ENH: Adding new ants command line feature. #1004 by @hjmjohnson which reflects many of the changes, but merging that PR will break anyone without the latest version of ants.

so without having versions our only options might be to move some of these older interfaces to ants.legacy, but it will break some people's scripts.

@armaneshaghi - would you be willing to start a conversation on the ants thread about versioning? that would actually be most helpful, as nipype has support for versions through the min_ver and max_ver metadata flags. but this would also mean that we can resolve the version on an installation of ants. as far as i know, no version information is stored with the binaries.

@armaneshaghi
Copy link
Contributor Author

I close this as the issue will be resolved by regular ANTs releases.

@blakedewey
Copy link
Contributor

I know this is closed, but I just ran into this with ANTs and wanted to suggest an idea. The short CLI tag -d is used for both inputs even though the long tag has changed. At least for N4BiasFieldCorrection this might be a good reverse compatibility option until versioning can be worked out.

@oesteban
Copy link
Contributor

👍 @blakedewey

@blakedewey
Copy link
Contributor

Great! I'll put in a PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants