aramis-lab / clinicadl

Framework for the reproducible processing of neuroimaging data with deep learning methods
https://clinicadl.readthedocs.io/
MIT License
160 stars 53 forks source link

Issue with `get-labels` when finding the output of `clinica iotools missing-modalities` #421

Closed 14thibea closed 1 year ago

14thibea commented 1 year ago

Dear ClinicaDL team,

I ran clinicadl tsvtools get-labels data/bids data/labels.tsv and obtained the following log:

14:44:20 - output of clinica iotools check-missing-modalities: data/missing_mods
INFO:clinicadl.tsvtools.get_labels:output of clinica iotools check-missing-modalities: data/missing_mods
14:44:20 - create merge tsv
INFO:clinicadl.tsvtools.get_labels:create merge tsv
14:44:22 - output of clinica iotools merge-tsv: data/merged.tsv
INFO:clinicadl.tsvtools.get_labels:output of clinica iotools merge-tsv: data/merged.tsv
14:44:22 - Missing diagnoses: 0
INFO:clinicadl:Missing diagnoses: 0
14:44:22 - Missing diagnoses not found: 0
INFO:clinicadl:Missing diagnoses not found: 0
Traceback (most recent call last):
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/bin/clinicadl", line 8, in <module>
    sys.exit(cli())
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/clinicadl/tsvtools/get_labels/get_labels_cli.py", line 76, in cli
    get_labels(
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/clinicadl/tsvtools/get_labels/get_labels.py", line 395, in get_labels
    missing_mods_df = pd.read_csv(missing_mods_directory / file, sep="\t")
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/util/_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/util/_decorators.py", line 331, in wrapper
    return func(*args, **kwargs)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 950, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 605, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1442, in __init__
    self._engine = self._make_engine(f, self.engine)
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1735, in _make_engine
    self.handles = get_handle(
  File "/opt/miniconda3/envs/miccai-reproducibility-tutorial/lib/python3.9/site-packages/pandas/io/common.py", line 856, in get_handle
    handle = open(
FileNotFoundError: [Errno 2] No such file or directory: 'data/missing_mods/data/missing_mods/missing_mods_ses-M000.tsv'

My repo structure before running the command is:

data
└── bids

After running the command:

data
├── bids
├── labels.json
├── merged.tsv
└── missing_mods

The content of data/missing_mods is correct, but the ClinicaDL is trying to find data/missing_mods/data/missing_mods.

Could you please fix this issue?

Best regards,

ravih18 commented 1 year ago

Hello @14thibea

Thanks for the bug report. We will have a look a it. A patch with a few bug correction should be released end of next week.

See you soon, Ravi