iotools - Merge-TSV Error

22 views
Skip to first unread message

Aira Fatima

unread,
Jul 5, 2025, 12:14:33 PMJul 5
to Clinica
Hi, Dear Clinica Team, 
I am working with clinica and trying to use clinica iotools to merge tsv files generated from different clinica pipelines. However, I am getting error.
  • Clinica 0.9.* produced merge-tsv file for BIDS only however, gives error for BIDS+CASPS fiels (and the file contains information same as for BIDS only).
  • Clinica 0.10 didn't produce any file and give error for both BIDS only and BIDS+CASPS fiels.
Detail of errors is below:
  1. BIDS Only: clinica iotools merge-tsv BIDS_Dir merged_tsv.tsv 
output using clincia 0.9.1 | 0.9.4:

/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/data_handling/_merging.py:180: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.

 df = pd.concat([df, full_row], axis=0)

output using clincia 0.10:

Traceback (most recent call last):

 File "/Users/user/miniconda3/envs/clinicaEnv10/bin/clinica", line 8, in <module>

    sys.exit(main())

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/cmdline.py", line 113, in main

    cli()

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1442, in __call__

    return self.main(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1363, in main

    rv = self.invoke(ctx)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1830, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1830, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1226, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 794, in invoke

    return callback(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/iotools/cli.py", line 234, in merge_tsv

    merge_tsv_(

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/iotools/merge_tsv.py", line 60, in merge_tsv

    from clinica.utils.inputs import check_bids_folder

ImportError: cannot import name 'check_bids_folder' from 'clinica.utils.inputs' (/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/utils/inputs.py)


  1. BIDS + CAPS: clinica iotools merge-tsv BIDS_Dir merged_tsv.tsv -caps CAPS_DIR -p t1-volume -vas AAL2

output using clincia 0.9.1 | 0.9.4:
/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/data_handling/_merging.py:180: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.

  df = pd.concat([df, full_row], axis=0)

2025-07-05 15:52:45,645:INFO:Extracting from CAPS pipeline output: t1-volume...

Traceback (most recent call last):

  File "/Users/user/miniconda3/envs/clinicaEnv/bin/clinica", line 8, in <module>

    sys.exit(main())

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/cmdline.py", line 113, in main

    cli()

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 1161, in __call__

    return self.main(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 1082, in main

    rv = self.invoke(ctx)

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 1697, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 1697, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 1443, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/click/core.py", line 788, in invoke

    return __callback(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/cli.py", line 232, in merge_tsv

    merge_tsv_(

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/merge_tsv.py", line 75, in merge_tsv

    create_merge_file(

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/data_handling/_merging.py", line 72, in create_merge_file

    merged_df, merged_summary_df = _add_data_to_merge_file_from_caps(

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/data_handling/_merging.py", line 324, in _add_data_to_merge_file_from_caps

    merged_df, summary_df = metric_extractor(caps_dir, merged_df, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/pipeline_handling.py", line 87, in _extract_metrics_from_pipeline

    records = _get_records(

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/pipeline_handling.py", line 208, in _get_records

    records_of_group = [

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/pipeline_handling.py", line 209, in <listcomp>

    _get_single_record(

  File "/Users/user/miniconda3/envs/clinicaEnv/lib/python3.10/site-packages/clinica/iotools/utils/pipeline_handling.py", line 271, in _get_single_record

    **reduce(

TypeError: reduce() of empty iterable with no initial value

output using clincia 0.10:

Traceback (most recent call last):

  File "/Users/user/miniconda3/envs/clinicaEnv10/bin/clinica", line 8, in <module>

    sys.exit(main())

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/cmdline.py", line 113, in main

    cli()

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1442, in __call__

    return self.main(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1363, in main

    rv = self.invoke(ctx)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1830, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1830, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 1226, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/click/core.py", line 794, in invoke

    return callback(*args, **kwargs)

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/iotools/cli.py", line 234, in merge_tsv

    merge_tsv_(

  File "/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/iotools/merge_tsv.py", line 60, in merge_tsv

    from clinica.utils.inputs import check_bids_folder

ImportError: cannot import name 'check_bids_folder' from 'clinica.utils.inputs' (/Users/user/miniconda3/envs/clinicaEnv10/lib/python3.10/site-packages/clinica/utils/inputs.py)

I checked the BIDS+CAPS for t1-volume and t1-freesurfer pipelines for different atlases as well without any option for pipeline and atlas (means just BIDS and -caps CAPS).

Coule you please help me in resolving this error.

Thank you.

sincerely, Aira

Alice Joubert

unread,
Aug 6, 2025, 5:32:28 AMAug 6
to Clinica
Hello Aira,

Sorry for the late reply. We recently just fixed this in our latest release 0.10.1. Don't hesitate to test it and tell us if it works as it should for you.

Best,

Alice

Reply all
Reply to author
Forward
0 new messages