[RESOLVED] Hcp icafix issue

Hi I am having an issue with hcp_icafix with qunex version 0.98.6a (see below).

HOWEVER, all works fine with version 0.96.2a.

# Generated by QuNex 0.98.6 on 2024-01-12_02.26.03.642298

============================= LOG ================================

# Generated by QuNex 0.98.6 on 2024-01-12_02.26.03.545158#
gmri hcp_icafix \
  --sessionsfolder="XXXXXXXXXXXXX" \
  --parsessions="1" \
  --parelements="1" \
  --overwrite="no" \
  --hcp_icafix_bolds="rfMRI_REST1_AP" \
  --hcp_icafix_deleteintermediates="FALSE" \
  --hcp_icafix_threshold="5" \
  --hcp_icafix_domotionreg="FALSE" \
  --hcp_icafix_traindata="XXXXXXXXX" \
  --sessions="XXXXXXXX" \
  --sessionids="XXXXXXXX_MR" \

Starting multiprocessing sessions in XX/batch.txt with a pool of 1 concurrent process

Session id: XXXXXXXXXX_MR 
[started on Friday, 12. January 2024 02:26:03]
Running HCP ICAFix pipeline [HCPStyleData] ...

Comparing bolds with those specifed via parameters
     ... skipping rfMRI_REST1_PA: it is not specified in hcp_icafix_bolds
     ... skipping rfMRI_REST2_AP: it is not specified in hcp_icafix_bolds
     ... skipping rfMRI_REST2_PA: it is not specified in hcp_icafix_bolds

Single-run HCP ICAFix on 1 bolds

Processing 1 ICAFix images in parallel

---> Processing BOLD image rfMRI_REST1_AP
     ... bold image rfMRI_REST1_AP present
 --- Failed during processing of bold rfMRI_REST1_AP with error:
 Traceback (most recent call last):
  File "/opt/qunex/python/qx_utilities/hcp/process_hcp.py", line 4825, in executeHCPSingleICAFix
    'deleteintermediates': delete_intermediates}
TypeError: %d format: a number is required, not str

HCP ICAFix completed on Friday, 12. January 2024 02:26:03

===> Final report for command hcp_icafix
... HCA6002236_V1_MR ---> HCP ICAFix: bolds rfMRI_REST1_AP failed
===> Not all tasks completed fully!

Hi Niels,

I think I know what the issue might be, I think hcp_icafix_threshold is passed as a string:


Can you try providing it without the quotes, as an integer:


I fixed this to be more robust now, so string should also work. A fix will be released next week (in the 0.99.2 patch).


I am not sure. In my call there are no quotes around the number:

qunex_container hcp_icafix \
	  --sessionsfolder="XXXXXXXX" \
	  --sessions="${id}" \
	  --bind="XXX" \
	  --batchfile="XXX" \
	  --parjobs=1 \
	  --parsessions=1 \
	  --parelements=1 \
	  --overwrite="no" \
	  --hcp_icafix_bolds="${bb}" \
	  --hcp_icafix_threshold=5 \
	  --hcp_icafix_domotionreg="FALSE" \
	  --hcp_icafix_traindata="XXX.RData" \
	  --container="/xxxx/singularity_containers/qunex/qunex_suite-0.98.6a.sif" \

Also, note the issue seems to be with the ‚Äúdeleteintermediates‚ÄĚ parameter. Finally, as I mentioned before, the call executes without problems on 0.96.2a.

Yes, I saw that it complains about deleteintermediates. But this is really weird as deleteintemedias is parsed as a string. But all parameter parsing happens within the same line of code and the only int (%d) parameter there was the highpass one.

Anyhow, this should be fixed in 0.99.2. Glad it works with another version.