PennLINC / qsiprep

Preprocessing of diffusion MRI
http://qsiprep.readthedocs.io
BSD 3-Clause "New" or "Revised" License
139 stars 56 forks source link

no figures included in HTML report #378

Open giulia-berto opened 2 years ago

giulia-berto commented 2 years ago

No figures are included in the HTML report after the preprocessing step. The folder <outdir>/sub-<sub>/figures is in fact empty. This happens with versions 0.14.2, 0.14.3, 0.15.3, but not with version 0.13.0RC1 (with which figures are correctly displayed in the report).

mattcieslak commented 2 years ago

It sounds like something crashed during your run before the figures were created. Were you also running reconstruction workflows?

giulia-berto commented 2 years ago

No, I'm only running the preprocessing workflow. In the report it's written "No errors to report!" and it seems that the process finished correctly. However I get the following error, which maybe it's related to this issue:

[WARNING] This document format requires a nonempty <title> element.
  Please specify either 'title' or 'pagetitle' in the metadata.
  Falling back to 'CITATION'
 file none does not exist . 
 file none does not exist . 
 file none does not exist . 
MovieWriter imagemagick unavailable; using Pillow instead.
 file none does not exist . 
 file none does not exist .
psadil commented 2 years ago

FWIW, I'm encountering the same issue with the similar set of symptoms (supposedly "No errors to report!", and those warnings in the error file). Following an implication of this suggestion, the figures and reports are generated when I specify the working directory as an absolute path (note: using a relative path results in empty <outdir>/sub-<sub>/figures directories).

@giulia-berto , not sure whether the relative vs. absolute path of a working directory applies in your case

mpipoly commented 2 years ago

Hi All,

I am getting a very similar error that appears to be unrelated to the working directory issue others have mentioned from using qsiprep version 0.15.2. The summary report plots are missing and the Figures folder is empty.

Here is the singularity call I made:

singularity run --cleanenv -B /Shared/<PATH>:/mnt \
/Shared/<PATH>/qsiprep-0.15.2.sif \
/Shared/<PATH>/BIDS/ \
/Shared/<PATH>/BIDS/derivatives \
participant --participant_label <SUBJECT_ID> --skip_bids_validation \
--output-resolution 2.0 \
-w /Shared/<PATH>/BIDS/derivatives/work/qsiprep \
--write-graph --mem_mb 35000 --omp-nthreads 14 --nthreads 16 \
--unringing-method mrdegibbs --separate_all_dwis \
--stop-on-first-crash \
--verbose \
--output-space template \
--template MNI152NLin2009cAsym \
--freesurfer-input /Shared/<PATH>/freesurfer/ \
--recon_input /Shared/<PATH>/BIDS/derivatives/qsiprep --recon-spec reorient_fslstd \
--fs-license-file /Shared/<PATH>/freesurfer_license.txt \

Here is the current error.

[WARNING] This document format requires a nonempty <title> element.
  Please specify either 'title' or 'pagetitle' in the metadata.
  Falling back to 'CITATION'
Traceback (most recent call last):
  File "/usr/local/miniconda/bin/qsiprep", line 8, in <module>
    sys.exit(main())
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/run.py", line 680, in main
    errno += generate_reports(subject_list, output_dir, work_dir, run_uuid,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 317, in generate_reports
    report_errors = [
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 318, in <listcomp>
    run_reports(reports_dir, output_dir, subject_label, run_uuid=run_uuid,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 307, in run_reports
    report = Report(reportlet_path, config, out_dir, run_uuid, out_filename,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 74, in __init__
    self._load_config(config)
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 80, in _load_config
    self.index(config['sections'])
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 100, in index
    contents = fp.read().strip()
  File "/usr/local/miniconda/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 37: invalid start byte
mattcieslak commented 2 years ago

I think there might be something going on with the 3 positional arguments that have to be specified

bids_dir output_dir participant

In your command I'm only seeing /Shared/<PATH>/BIDS/derivatives participant

mpipoly commented 2 years ago

@mattcieslak Incredibly embarrassed. When I was cut and pasting chunks of my code to edit for anonymity I seemed to have left behind that very important line. I have now edited my old post to reflect the argument and its position in my actual script. Since that is not the error, any thoughts on what could be the case?

araikes commented 2 years ago

I'll chime in, since 0.15.1 is working without issue for me.

@mpipoly, does it work if you set --output-space T1w instead of --output-space template?

mpipoly commented 2 years ago

@araikes Thanks for the suggestion. I am not sure at first pass why this would prevent the figures from being made when the outputs (e.g. confounds, preproc, bvecs, bvals etc..) are otherwise produced correctly. However, I am giving it try now. I will post back on the outcome.

EDIT: I have run it now and it has made no difference. The error is the same:

[WARNING] This document format requires a nonempty <title> element.
  Please specify either 'title' or 'pagetitle' in the metadata.
  Falling back to 'CITATION'
Traceback (most recent call last):
  File "/usr/local/miniconda/bin/qsiprep", line 8, in <module>
    sys.exit(main())
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/run.py", line 680, in main
    errno += generate_reports(subject_list, output_dir, work_dir, run_uuid,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 317, in generate_reports
    report_errors = [
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 318, in <listcomp>
    run_reports(reports_dir, output_dir, subject_label, run_uuid=run_uuid,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 307, in run_reports
    report = Report(reportlet_path, config, out_dir, run_uuid, out_filename,
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 74, in __init__
    self._load_config(config)
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 80, in _load_config
    self.index(config['sections'])
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/viz/reports.py", line 100, in index
    contents = fp.read().strip()
  File "/usr/local/miniconda/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 37: invalid start byte
mattcieslak commented 2 years ago

@giulia-berto are you using the --output-spaces template argument?

giulia-berto commented 2 years ago

Hi all,

thank you very much for your replies!

@araikes @mattcieslak with version 0.15.1 I am still having this issue. And in all my tests I always used --output-space T1w.

@psadil thank you for your suggestion, indeed specifying the workdir as an absolute path worked!

Maybe this issue can be fixed with the code changes above-mentioned https://github.com/PennLINC/qsiprep/issues/262#issuecomment-878054267

mattcieslak commented 1 year ago

I just ran into this issue myself.

LuuuXG commented 6 months ago

I would like to provide an update on the issue I was experiencing with QSIPrep version 0.19.1 on WSL2 with Ubuntu 22.04. Here's the command I'm using: qsiprep-docker /mnt/e/Neuroimage/BIDS_TestDataSet /mnt/e/Neuroimage/BIDS_TestDataSet/derivatives participant --participant-label Patient0238 \ --fs-license-file /mnt/e/Neuroimage/license.txt \ --output-resolution 1.2 \ --verbose \ --verbose \ --stop-on-first-crash After setting the -w parameter to specify the working directory, it appears that the issue has been resolved. qsiprep-docker /mnt/e/Neuroimage/BIDS_TestDataSet /mnt/e/Neuroimage/BIDS_TestDataSet/derivatives participant --participant-label Patient0238 \ -w /mnt/e/Neuroimage/workdir \ --fs-license-file /mnt/e/Neuroimage/license.txt \ --output-resolution 1.2 \ --verbose \ --verbose \ --stop-on-first-crash However, there is still a warning. I don't know if this matters.

屏幕截图 2024-03-19 221134