PennLINC / qsiprep

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

No MNI to T1w transform found in anatomical directory #456

Open tpatpa opened 2 years ago

tpatpa commented 2 years ago

Hello,

I am using the qsiprep-docker wrapper version: 0.15.4. I've successfully run the preprocessing for my data with the following command:

qsiprep-docker MY_PATH/data_experiment/ MY_PATH/data_experiment/derivatives/ \
participant --participant_label dMRI01 \
--fs-license-file MY_LICENSE_PATH/license.txt \
--work-dir MY_PATH/data_experiment/derivatives/temp_qsi \
--output-resolution 1.25 \
--hmc-model none \
--separate_all_dwis \
--output-space T1w \
--write-graph \
-vv

and now trying to run reconstruction ('mrtrix_singleshell_ss3t_noACT') with the following command:

qsiprep-docker MY_PATH/data_experiment/ MY_PATH/data_experiment/derivatives/ \
--recon_input MY_PATH/data_experiment/derivatives/qsiprep \
--recon_spec mrtrix_singleshell_ss3t_noACT \
--participant_label dMRI01 \
--separate_all_dwis \
--recon-only \
--fs-license-file MY_LICENSE_PATH/license.txt \
--work-dir MY_PATH/data_experiment/derivatives/temp_qsi \
--output-space T1w \
-vv

But received the following error:

Node: qsirecon_wf.sub-dMRI01_mrtrix_singleshell_ss3t_noACT.sub_dMRI01_ses_compact3T01_acq_diadem17iso_rec_none_dir_AP_run_01_space_T1w_desc_preproc_recon_wf.qsirecon_anat_wf.get_atlases
Working directory: /scratch/qsirecon_wf/sub-dMRI01_mrtrix_singleshell_ss3t_noACT/sub_dMRI01_ses_compact3T01_acq_diadem17iso_rec_none_dir_AP_run_01_space_T1w_desc_preproc_recon_wf/qsirecon_anat_wf/get_atlases

Node inputs:

atlas_names = ['schaefer100x7', 'schaefer100x17', 'schaefer200x7', 'schaefer200x17', 'schaefer400x7', 'schaefer400x17', 'brainnetome246', 'aicha384', 'gordon333', 'aal116', 'power264']
forward_transform = <undefined>
reference_image = /qsiprep-output/sub-dMRI01/ses-compact3T01/dwi/sub-dMRI01_ses-compact3T01_acq-diadem17iso_rec-none_dir-AP_run-01_space-T1w_desc-preproc_dwi.nii.gz
space = T1w

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 344, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
    raise NodeExecutionError(
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node get_atlases.

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 398, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/utils.py", line 51, in _run_interface
    raise Exception("No MNI to T1w transform found in anatomical directory")
Exception: No MNI to T1w transform found in anatomical directory

The suggested fix here is to add --force-spatial-normalization to qsiprep during preprocessing but this was later deprecate and made the default (hence I get qsiprep: error: unrecognized arguments: --force-spatial-normalization)

Any thoughts are very much welcomed!

Originally posted by @tpatpa in https://github.com/PennLINC/qsiprep/issues/146#issuecomment-1216995166

tpatpa commented 2 years ago

I opened a new issue in addition to my comment in a previous issue that is included above since this has happened again with a subject that I was able to analyze (qsiprep + qsirecon) with qsiprep-docker wrapper version 0.14.2.

Is it something with the wrapper command syntax for qsiprep-docker wrapper version 0.15.4 ?

I have, again, successfully ran the preprocessing for my data with the following command:

qsiprep-docker MY_PATH/data_topup/ MY_PATH/data_topup/derivatives/ \
participant --participant_label MSEL02108 \
--fs-license-file MY_LICENSE_PATH/license.txt \
--work-dir MY_PATH/data_topup/derivatives/temp_qsi \
--output-resolution 1.25 \
--unringing-method mrdegibbs \
--separate_all_dwis \
--output-space T1w \
--write-graph \
--resource-monitor \
-vv

and, similarly to the previous subject, I am now trying to run reconstruction ('mrtrix_singleshell_ss3t_noACT') with the following command:

qsiprep-docker MY_PATH/data_topup/ MY_PATH/data_topup/derivatives/ \
--recon_input MY_PATH/data_topup/derivatives/qsiprep \
--recon_spec mrtrix_singleshell_ss3t_noACT \
--participant_label MSEL02108 \
--separate_all_dwis \
--recon-only \
--fs-license-file MY_LICENSE_PATH/license.txt \
--work-dir MY_PATH/data_topup/derivatives/temp_qsi \
--output-space T1w \
--resource-monitor \
-vv

and again received the following error:

Node: qsirecon_wf.sub-MSEL02108_mrtrix_singleshell_ss3t_noACT.sub_MSEL02108_ses_compact3T01_acq_axdti_rec_gncd_dir_PA_run_02_space_T1w_desc_preproc_recon_wf.qsirecon_anat_wf.get_atlases
Working directory: /scratch/qsirecon_wf/sub-MSEL02108_mrtrix_singleshell_ss3t_noACT/sub_MSEL02108_ses_compact3T01_acq_axdti_rec_gncd_dir_PA_run_02_space_T1w_desc_preproc_recon_wf/qsirecon_anat_wf/get_atlases

Node inputs:

atlas_names = ['schaefer100x7', 'schaefer100x17', 'schaefer200x7', 'schaefer200x17', 'schaefer400x7', 'schaefer400x17', 'brainnetome246', 'aicha384', 'gordon333', 'aal116', 'power264']
forward_transform = <undefined>
reference_image = /qsiprep-output/sub-MSEL02108/ses-compact3T01/dwi/sub-MSEL02108_ses-compact3T01_acq-axdti_rec-gncd_dir-PA_run-02_space-T1w_desc-preproc_dwi.nii.gz
space = T1w

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 344, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
    raise NodeExecutionError(
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node get_atlases.

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 398, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/utils.py", line 51, in _run_interface
    raise Exception("No MNI to T1w transform found in anatomical directory")
Exception: No MNI to T1w transform found in anatomical directory
tsalo commented 1 week ago

I think this is probably fixed since we split QSIRecon out of QSIPrep.