populse / mia_processes

The default processes repository for mia
Other
1 stars 2 forks source link

[requirements] ANTs v2.4.2 does not work with nipype V1.8.5 #14

Closed servoz closed 1 year ago

servoz commented 1 year ago

antsRegistration process stop after only few secs. No output calculated. No clear message error returned from populse.

standard output in soma_workflow: stderr 2022-11-14T17:01:14.017959:ERROR: Invalid command line flags found! Aborting execution.

Quick and dirty: downgrading ANTs to V2.3.5 solves the problem (keeping nipype to V1.8.5)

It might be useful to see what is wrong with the command generation, certainly in nipype and propose a PR to nipype, ... when we have some time.

servoz commented 1 year ago

Today the current release is v2.5.0.

We should test whether this latest version is compatible with the latest version of nipype (antsRegistration work or not) .

In the documentation, we advise users of the MRIQC pipeline in Mia to use v2.3.4. We should check whether the metrics calculated in MRIQC are really different between v2.3.4 and v2.5.0. Depending on the result, update the documentation. This is not trivial, as v2.5.0 can be installed from binaries, whereas v2.3.4 has to be compiled from source. For users, it's obvious that the first solution is simpler and faster.

Finally, close this ticket.

servoz commented 1 year ago

Tested with ANTs v2.5.0 and nipype v1.8.7.dev. Once again, it doesn't work ... We can't stick to V2.3.5... To be investigated ASAP.

Standard output in soma_workflow:

230921-15:34:24,26 nipype.interface INFO:

     stdout 2023-09-21T15:34:24.026142:ERROR:  Invalid flag provided use-estimate-learning-rate-once

230921-15:34:24,26 nipype.interface INFO:

     stdout 2023-09-21T15:34:24.026142:ERROR:  Invalid flag provided use-estimate-learning-rate-once

230921-15:34:24,26 nipype.interface INFO:

     stderr 2023-09-21T15:34:24.026559:ERROR:  Invalid command line flags found! Aborting execution.
servoz commented 1 year ago

Since the V2.4.1, ANTs team kicked out the use-estimate-learning-rate-once parameter (flag) ...

servoz commented 1 year ago

Just tested with ANTs V2.3.5 and the MRIQC pipeline on functional : Using the current value of use-estimate-learning-rate-once ([True, True, True]) or not (Undefined) does not change the final result of the metrics. output_iqms.csv

Currently, if use-estimate-learning-rate-once is not set, it is automatically set to [True] * number of metrics at the start of execution.

This sets use-estimate-learning-rate-once to [True, True, True] for the MRIQC pipeline, but I'm not sure this is a good idea in all cases. I think the best solution for the user is to set the exact value of use-estimate-learning-rate-once (True or False), in this case it will be used in antsRegistration, or not to set the value (Undefined), in this case it will not be used in anstRegistration. By the way, this fixes the issue in this ticket ...

We know now that we observe the same result with the current value for use-estimate-learning-rate-once ([True, True, True]) and no value (Undefined) with MRIQC pipeline and ANTs V2.3.5.

We still need to test the results of MRIQC with use-estimate-learning-rate-once undefined, for ANTs 2.3.5 and 2.5.0 (latest version) before closing this ticket.

servoz commented 1 year ago

No change between versions 2.3.4 and 2.5.0! output_iqms.csv

All tests were performed using MRIQC with functional data (faster than for anatomical data). Should we also test the MRIQC pipeline with anatomical data?

manuegrx commented 1 year ago

@servoz Ants Registration is also used in the mriqc anat pipeline, so yes maybe it is a good idea to check for anatomical data !

servoz commented 11 months ago

With anat, as expected ! output_iqms.csv