aramis-lab/clinica

The clinical `DXSUM_PDXCONV_ADNIALL` file from ADNI has been renamed to `DXSUM_PDXCONV`

Closed this issue · 2 comments

While working on #1142 I downloaded some subjects from ADNI with the clinical data, and ran the ADNI-to-BIDS converter on them with Clinica v0.8.0.

The converter crashed at the end with the following error message:

Traceback (most recent call last):
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/bin/clinica", line 6, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/nicolas.gensollen/GitRepos/clinica-fork/clinica/cmdline.py", line 92, in main
    cli()
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/opt/anaconda3/envs/clinica-t/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/GitRepos/clinica-fork/clinica/iotools/converters/adni_to_bids/adni_to_bids_cli.py", line 79, in cli
    adni_to_bids.convert_clinical_data(
  File "/Users/nicolas.gensollen/GitRepos/clinica-fork/clinica/iotools/converters/adni_to_bids/adni_to_bids.py", line 132, in convert_clinical_data
    participants_df = adni_utils.correct_diagnosis_sc_adni3(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/GitRepos/clinica-fork/clinica/iotools/converters/adni_to_bids/adni_utils.py", line 634, in correct_diagnosis_sc_adni3
    dxsum_df = load_clinical_csv(clinical_data_dir, "DXSUM_PDXCONV_ADNIALL").set_index(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nicolas.gensollen/GitRepos/clinica-fork/clinica/iotools/converters/adni_to_bids/adni_utils.py", line 1642, in load_clinical_csv
    raise IOError(
OSError: Expecting to find exactly one file in folder /Users/nicolas.gensollen/test_dwi/clinical matching pattern DXSUM_PDXCONV_ADNIALL(_\d{1,2}[A-Za-z]{3}\d{4})?.csv. 0 files were found instead :
[- ]

Inspecting the clinical folder I downloaded, it seems indeed that there is no file DXSUM_PDXCONV_ADNIALL, but there is a DXSUM_PDXCONV file:

...
├── DESIKANLAB_22Apr2024.csv
├── DIAMEM_V2_08_30_22_22Apr2024.csv
├── DXSUM_PDXCONV_22Apr2024.csv
├── EBISU_22Apr2024.csv
├── ECOG12PT_22Apr2024.csv
...

This might be a recent change to the naming conventions as I don't think this bug has been reported before.

A quick and backward-compatible fix would be to try reading the DXSUM_PDXCONV_ADNIALL file and default to reading the DXSUM_PDXCONV file if the former is missing.

@AliceJoubert did you notice that too ?

I noticed the same kind of naming convention with files downloaded today. The files are updated with the day of download as follows :

...
├── DIAMEM_V2_08_30_22_23Apr2024.csv
├── DXSUM_PDXCONV_23Apr2024.csv
├── EBISU_23Apr2024.csv
...

Thanks @AliceJoubert
Closing the issue as being solved by #1144
Running the ADNI-to-BIDS converter with clinica 0.8.0 should give you the same error.