Summary of what happened:
I am trying to run NODDI reconstruction using QSIrecon v0.23.1. It appears that the error (upstream_outputnode is ‘NoneType’ instead of the correct object) occurs in initializing the workflow, but I don’t understand what is causing the error. Any help with troubleshooting this would be much appreciated.
As far as I know, I am mounting the necessary directories correctly. The output says QSIRecon is able to locate the QSIPrep outputs (QSIPrep-preprocessed T1w image and mask as well as high-res anatomical data in preprocessed inputs). The mounting lines have been used to successfully run recon with QSIprep v0.19.1 and preprocessing with QSIprep v0.21.4.
Thank you in advance!
Command used (and if a helper script was used, a link to the helper script or the command generated):
docker run --rm -it \
-v ~/Documents/license.txt:/opt/freesurfer/license.txt:ro \
-v ~/Documents/ADNI_Multishell_SCD_2024/ADNI_bids/bidsconvertr/derivatives/qsiprep:/data:ro \
-v ~/Documents/Docker_Commands/amico_noddi_cortex.json:/sngl/spec/spec.json:ro \
-v ~/Documents/ADNI_Multishell_SCD_2024/ADNI_bids/bidsconvertr/derivatives/qsirecon:/out \
-v ~/Documents/ADNI_Multishell_SCD_2024/ADNI_bids/bidsconvertr/derivatives/work/qsirecon_wf:/scratch \
pennlinc/qsirecon:0.23.1 /data /out participant \
--recon-spec /sngl/spec/spec.json \
--participant_label 941S6333 \
--output-resolution 1 \
--nthreads 24 \
-w /scratch
Version:
QSIRecon 0.23.1
Environment (Docker, Singularity / Apptainer, custom installation):
Docker
Data formatted according to a validatable standard? Please provide the output of the validator:
Using bids-validator v1.14.14, I get 0 errors and 2 types of warning:
1: [WARN] Not all subjects contain the same files. Each subject should contain the same number of files with the same naming unless some files are known to be missing. (code: 38 - INCONSISTENT_SUBJECTS)
2: [WARN] Not all subjects/sessions/runs have the same scanning parameters. (code: 39 - INCONSISTENT_PARAMETERS)
Relevant log outputs (up to 20 lines):
241022-18:59:57,611 nipype.workflow INFO:
Anatomical (T1w) available for recon: {'has_qsiprep_5tt_hsvs': False, 'has_freesurfer_5tt_hsvs': False, 'has_freesurfer': False, 'has_qsiprep_t1w': True, 'has_qsiprep_t1w_transforms': True}
[{'bids_dwi_file': '/data/sub-941S6333/ses-01/dwi/sub-941S6333_ses-01_space-T1w_desc-preproc_dwi.nii.gz'}]
{'has_qsiprep_5tt_hsvs': False, 'has_freesurfer_5tt_hsvs': False, 'has_freesurfer': False, 'has_qsiprep_t1w': True, 'has_qsiprep_t1w_transforms': True}
241022-18:59:57,614 nipype.workflow INFO:
Transforming ODF ROIs into DWI space for visual report.
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 139, in build_workflow
retval["workflow"] = init_qsirecon_wf()
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/workflows/base.py", line 43, 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 193, 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 118, in init_dwi_recon_workflow
upstream_outputs = set(upstream_outputnode.outputs.get().keys())
AttributeError: 'NoneType' object has no attribute 'outputs'