Closed samuelholly closed 3 weeks ago
Does the crash file contain any more information?
Hi, please see the attachment crash-20241018-113939-root-calc_connectivity-a8780de8-dfa9-4579-bc35-aa391e15d81b.txt
I think this might end up resolved by #123.
Hi, thanks for your time. I tried to run the current unstable docker image (as I thought it contains the fix for the original bug) but I got another error, right after processing started - see below:
Traceback (most recent call last):
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/workflow.py", line 136, in build_workflow
retval["workflow"] = init_qsirecon_wf()
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/base.py", line 44, in init_qsirecon_wf
single_subject_wf = init_single_subject_recon_wf(subject_id=subject_id)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/base.py", line 252, in init_single_subject_recon_wf
dwi_recon_wfs[dwi_file] = init_dwi_recon_workflow(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/recon/build_workflow.py", line 58, in init_dwi_recon_workflow
new_node = workflow_from_spec(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/recon/build_workflow.py", line 209, in workflow_from_spec
raise ValueError("Connectivity requires atlases.")
ValueError: Connectivity requires atlases
Thanks in advance for any help. I'm wondering however, how is it possible that other people run qsirecon
without problems... Could my out-of-date Docker Desktop be to blame?
What command did you use with the new version?
this one:
docker run -ti --rm \
-v H:\qsiprep_out\qsiprep:/data \
-v H:\qsirecon_out:/out \
-v W:\license.txt:/opt/freesurfer/license.txt \
pennlinc/qsirecon:unstable /data /out participant \
--fs-license-file /opt/freesurfer/license.txt \
--output-resolution 2 \
--recon-spec dsi_studio_gqi \
-vv \
--n_cpus 8 \
--resource-monitor \
--write-graph \
--notrack \
--participant-label 019
The new version uses an --atlases
parameter instead of defining the atlases in the recon spec. The documentation has information about this new behavior: https://qsirecon.readthedocs.io/en/latest/connectivity_matrices.html#atlases. Can you try updating your command to use the new parameter and re-running?
Thank you. I tried:
docker run -ti --rm \
-v H:\qsiprep_out\qsiprep:/data \
-v H:\qsirecon_out:/out \
-v W:\license.txt:/opt/freesurfer/license.txt \
pennlinc/qsirecon:unstable /data /out participant \
--fs-license-file /opt/freesurfer/license.txt \
--output-resolution 2 \
--recon-spec dsi_studio_gqi \
-vv --n_cpus 8 \
--resource-monitor \
--write-graph \
--notrack \
--participant-label 019 \
--atlases AAL116
But I'm still getting an error:
Process Process-2:
Traceback (most recent call last):
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/workflow.py", line 136, in build_workflow
retval["workflow"] = init_qsirecon_wf()
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/base.py", line 44, in init_qsirecon_wf
single_subject_wf = init_single_subject_recon_wf(subject_id=subject_id)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/base.py", line 252, in init_single_subject_recon_wf
dwi_recon_wfs[dwi_file] = init_dwi_recon_workflow(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/recon/build_workflow.py", line 58, in init_dwi_recon_workflow
new_node = workflow_from_spec(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/recon/build_workflow.py", line 220, in workflow_from_spec
return init_dsi_studio_connectivity_wf(**kwargs)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/recon/dsi_studio.py", line 539, in init_dsi_studio_connectivity_wf
workflow.connect([
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/workflows.py", line 178, in connect
for source, dest in connects:
ValueError: too many values to unpack (expected 2)
That's progress. I think it's a problem with the recon spec then. @mattcieslak @smeisler is this something you could help debug? It doesn't look like the dsi_studio_gqi
workflow is being tested in our CI.
Back before the split we used to test the dsi_studio_gqi
spec as the recon workflow in our preprocess-and-recon test. We should add a standalone test in this repo
Summary
QSIrecon throwing errors when calculating connectivity from pre-installed atlases and hanging
Additional details
What were you trying to do?
I tried to run the
dsi_studio_gqi
recon pipeline on my data preprocessed with qsiprep (v 0.19.1).What did you expect to happen?
That the pipeline will complete succesfully.
What actually happened?
Started getting errors and even after a few hours, there was no progress.
Reproducing the bug
This is the command I ran from my Powershell:
This is the output in my PS window:
the same happend with other atlases. Thanks for any help.