populse / populse_mia

Multiparametric Image Analysis
Other
10 stars 9 forks source link

[iteration enhancement] Initialising an iterated pipeline seems not to work #245

Closed servoz closed 2 years ago

servoz commented 2 years ago

populse on master and up-to-date, nipype 1.1.9:

~/Git_projects/populse_mia$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   processes/User_processes/__init__.py
    modified:   properties/config.yml
    modified:   properties/saved_projects.yml

no changes added to commit (use "git add" and/or "git commit -a")
(opensource-master-5.0)econdami@irmage-rico:~/Git_projects/populse_mia$ git log
commit 385b0c35b985f4eec744bcd03db37582af183685 (HEAD -> master, origin/master, origin/HEAD)
Author: econdami <econdami@yahoo.fr>
Date:   Thu Nov 25 12:15:09 2021 +0100

    do not allow to save pipeline in iteration mode
~/Git_projects/mia_processes$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
~/Git_projects/mia_processes$ git log
commit a88eee2e9b434a2af2193bccfed99ffeab781448 (HEAD -> master, origin/master, origin/HEAD)
Author: econdami <econdami@yahoo.fr>
Date:   Thu May 27 22:22:50 2021 +0200

    change version for dev
/casa/host/src/populse/populse_db/master/python/populse_db$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
/casa/host/src/populse/populse_db/master/python/populse_db$ git log
commit d28d376df013ddf7b8a505097427ed25ff1befd0 (HEAD -> master, origin/master, origin/HEAD, refs/bv_head)
Author: Eric Condamine <37933899+servoz@users.noreply.github.com>
Date:   Tue Oct 5 17:45:19 2021 +0200

    Update README.md
/casa/host/src/capsul/master/capsul$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
/casa/host/src/capsul/master/capsul$ git log
commit d568b584ab427118c562a244f9e936de17f9f4d7 (HEAD -> master, origin/master, origin/HEAD, refs/bv_head)
Merge: c7ea80e 49b3196
Author: Denis Rivière <denis.riviere.gm@gmail.com>
Date:   Wed Nov 24 13:42:59 2021 +0100

    Merge remote-tracking branch 'origin/brainvisa-5.0'
/casa/host/src/soma/soma-workflow/master$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
/casa/host/src/soma/soma-workflow/master$ git log
commit f213a80818c2e4b7547ba6a02be2b19a3c722c44 (HEAD -> master, origin/master, origin/HEAD, refs/bv_head)
Author: Denis Rivière <denis.riviere.gm@gmail.com>
Date:   Tue Sep 21 17:43:37 2021 +0200

    ensure commandline args are strings
/casa/host/src/soma/soma-base/master$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
/casa/host/src/soma/soma-base/master$ git log
commit f2a4f026712e20765ac6a72b8cca0d3065487354 (HEAD -> master, origin/master, origin/HEAD, refs/bv_head)
Author: sapetnioc <sapetnioc@users.noreply.github.com>
Date:   Tue Oct 5 14:32:46 2021 +0200

    enable compilation without bv_maker
pip3 show nipype
Name: nipype
Version: 1.1.9

Using these data, we observe an initialisation failure by following the Via Input_Filter brick/process/With use of the iteration table iteration method on the mia_processes spatial_preprocessing pipeline.

Screenshot from 2021-11-26 17-38-37

The initialisation of the same non-iterated pipeline works perfectly well.

servoz commented 2 years ago

The problem seems to come from the list_duplicate brick for which the file_name plug remains at <undefined> during initialisation ... I still have no idea why!!!

servoz commented 2 years ago

The issue comes from the 8e9ffe0 commit in capsul. We can look on our side but perhaps it would be more effective for you @denisri to look or give some leads. Otherwise we will look...

denisri commented 2 years ago

I'm looking at it.

denisri commented 2 years ago

OK I think I fixed it. To explain briefly: parameters which receive manual or database inputs are marked with a "forbid_completion" property on their trait in order to prevent reseting the value from a completion. In an iteration this mechanism should work from the iteration pipeline point of view, but in iteration manual values items should be set anyway for each iteration, which was not done.

servoz commented 2 years ago

Ok I didn't know this "forbid_completion" property! Anyway, it works perfectly now! Thanks @denisri . I think this ticket can be closed now, the issue is fixed.