Error processing infant data with QSIRecon

Summary of what happened:

I’m trying to process infant data with QSIRecon using my own custom workflow. Originally I was using hbcd_scalar_maps but ran into errors with DKI because my subject only had two b values (0 and 1000). I created my own workflow that does everything in hbcd_scalar_maps except DKI, but I ran into another error with tractography. Specifically: “no tractography atlas in dHCP_neonate template at {root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk/sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gze”

Command used (and if a helper script was used, a link to the helper script or the command generated):

/opt/conda/envs/qsiprep/bin/qsirecon {root_dir}/QSI/preproc/qsiprep_output {root_dir}/QSI/recon/qsirecon_output participant --participant-label Subject1 --fs-license-file /opt/freesurfer/license.txt --recon-spec {root_dir}/QSI/recon/hie_scalar_maps.yaml --infant --nthreads 8 --omp-nthreads 8 --notrack -w {root_dir}/QSI/recon/qsirecon_work -v -v

Version:

1.2.0

Environment (Docker, Singularity / Apptainer, custom installation):

Apptainer

Relevant log outputs (up to 20 lines):

--Traceback (most recent call last):
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 66, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 525, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_interface
    return self._run_command(execute)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 769, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node actual_trk.
Cmdline:
	dsi_studio_chen --action=atk --export_trk=1 --source={root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk/sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz --thread_count=8 --output={root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk --template=0 --tolerance=22,26,30 --track_id=Association,Projection,Commissure,Cerebellum --track_voxel_ratio=2.00 --trk_format=trk.gz --yield_rate=0.0000010000
Stdout:
	e[1;34mDSI Studio version: Chen"陳" Jan 14 2026e[0m
	│ DSI Studio version: Chen"陳"
	│ action=atk
	│ source={root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-PBI006_hbcd_postproc_beta/Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk/sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz
	│ loop={root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk/sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gz
	├─e[1;34mrun atke[0m
	│ │ tolerance=22,26,30
	│ │ track_voxel_ratio=2.00
	│ │ yield_rate=0.0000010000
	│ │ export_stat=1
	│ │ export_trk=1
	│ │ overwrite=0
	│ │ export_template_trk=0
	│ │ check_ending=1
	│ │ thread_count=8
	│ │ trk_format=trk.gz
	│ │ stat_format=stat.txt
	│ │ track_id=Association,Projection,Commissure,Cerebellum
	│ │ output={root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk
	│ ├─e[1;34mautomatic fiber trackinge[0m
	│ │ │ processing sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi
	│ │ │ template 0:"ICBM152_adult.QA.nii"
	│ │ │ template 1:"C57BL6_mouse.QA.nii"
	│ │ │ template 2:"dHCP_neonate.QA.nii"
	│ │ │ template 3:"INDI_rhesus.QA.nii"
	│ │ │ template 4:"Pitt_marmoset.QA.nii"
	│ │ │ template 5:"WHS_SD_rat.QA.nii"
	│ │ │ template=0
	│ │ ├─e[1;34mtracking pathwayse[0m
	│ │ │ │ Association_ArcuateFasciculusL
	│ │ │ ├─e[1;34mopen FIB file sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gze[0m
	│ │ │ │ │ loading fiber and image data
	│ │ │ │ ├─e[1;34mloading image volumese[0m
	│ │ │ │ │ └─7 ms
	│ │ │ │ │ initiating data
	│ │ │ │ │ FIB file loaded
	│ │ │ │ └─586 ms
	│ │ │ ├─e[1;34mloading tractography atlase[0m
	│ │ │ │ └─0 ms
	│ │ │ └─604 ms
	│ │ └─625 ms
	│ │ e[1;31mERROR:no tractography atlas in dHCP_neonate template at {root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk/sub-Subject1_ses-1_acq-PA_run-001_space-ACPC_desc-preproc_dwi.src.gz.odf.gqi.1.25.fib.gze[0m
	│ └─642 ms
	└─645 ms
Stderr:
Traceback:
	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 404, in run
	    outputs = self.aggregate_outputs(runtime)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 433, in aggregate_outputs
	    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/interfaces/dsi_studio.py", line 845, in _list_outputs
	    raise Exception("No map files found in " + str(cwd.absolute()))
	Exception: No map files found in {root_dir}/QSI/recon/qsirecon_work/qsirecon_1_2_wf/sub-Subject1_hbcd_postproc_beta/sub_Subject1_ses_1_acq_PA_run_001_space_ACPC_desc_preproc_recon_wf/autotrackgqi/actual_trk
>

Screenshots / relevant information:


Hi @scchung,

May you please share your recon spec?

Best,

Steven

@Steven

anatomical: []
name: hbcd_postproc_beta
description: |
    hbcd_postproc_beta is the pipeline used by the HEALthy Brain and Child Development Study
    to process diffusion MRI data [@cieslak2025diffusion].
space: T1w
nodes:

-   action: estimate
    input: qsirecon
    name: tortoise_dtmapmri
    parameters:
        big_delta: null
        estimate_mapmri:
            map_order: 4
        estimate_tensor:
            bval_cutoff: 1200
            write_cs: true
        estimate_tensor_separately: true
        small_delta: null
    qsirecon_suffix: TORTOISE_model-MAPMRI
    software: TORTOISE

-   action: estimate
    input: qsirecon
    name: tortoise_fullshell_tensor
    parameters:
        big_delta: null
        estimate_tensor:
            bval_cutoff: 4000
            write_cs: true
        estimate_tensor_separately: true
        small_delta: null
    qsirecon_suffix: TORTOISE_model-tensor
    software: TORTOISE

-   action: reconstruction
    input: qsirecon
    name: dsistudio_gqi
    parameters:
        method: gqi
    qsirecon_suffix: DSIStudio
    software: DSI Studio

-   action: autotrack
    input: dsistudio_gqi
    name: autotrackgqi
    parameters:
        dsi_studio_version: chen
        tolerance: 22,26,30
        track_id: Association,Projection,Commissure,Cerebellum
        track_voxel_ratio: 2.0
        yield_rate: 1.0e-06
    qsirecon_suffix: DSIStudio
    software: DSI Studio

-   action: export
    input: dsistudio_gqi
    name: gqi_scalars
    qsirecon_suffix: DSIStudio
    software: DSI Studio

-   action: bundle_map
    input: autotrackgqi
    name: bundle_means
    scalars_from:
    - gqi_scalars
    - tortoise_fullshell_tensor
    - tortoise_dtmapmri
    software: qsirecon

-   action: template_map
    input: qsirecon
    name: template_map
    parameters:
        interpolation: NearestNeighbor
    scalars_from:
    - gqi_scalars
    - tortoise_fullshell_tensor
    - tortoise_dtmapmri
    software: qsirecon

This is super strange: the log says we picked adult (which we do) but then it’s looking for streamlines in dHCP neonate. Was autotrack working in hbcd_scalar_maps? It’s also very strange that the version is reported as Chen"陳" Jan 14 2026e, which is way after we ran it successfully on hbcd

@mattcieslak No, I got the same errors with autotrack even when I ran the original hbcd_scalar_maps

Hi @scchung,

While we figure this out, you should be able to get outputs rolling back to QSIRecon 1.0.1 (the same version used for HBCD).

Best,

Steven

1 Like