QSIPrep, why the native images have the same dimension across participants?

Summary of what happened:

Hello all,

I am very very new to DTI data processing and analysis, so sorry if my question is very naive.
I am using QSIPrep and QSIRecon to get the VOF bundles of subjects. I will attach the snippets that I am running. As my main question involves the individual variability and its consequences, it is very important that I get the segmented bundles residing in the native spaces of individuals.

My pipeline(attached), using IFOD outputs one .tck file containing all the bundles of the brain. QSIprep outputs preproc_T1w nifti. When I visualize the track file overlayed on the preproc_T1w nifti file, it is clear that the track file is aligned to this preproc_T1w file. However, this preproc_T1w nifti file has the same dimension (193,229,193) and affine transformation[[-1. 0. 0. 96.0] [0 -1 0 96.] [0 0 1 -78] [0 0 0 1]] across all participants. I know that the QSIPrep outputs are aligned to ACPC space, but why they share the same dimension? Most importantly, given this, are my track files in the native space?

Also, QSI recon outputs a nifti file that is labeled as desc-preproc_desc-hsvs_5tt and it has different dimensions compared to both T1 scan (176,256,256) and QSIPrep T1(135,173,137,5). What are the differences between the spaces of these nifti files? Are they in native space?
Please note that the T1 scans have the same dimension across participants too.

Thanks a lot.

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

QSIPrep Command

docker run -it --rm \
  --memory "48g" \
  --volume "$HOME/Desktop/my_projects:/data" \
  --volume "$HOME/Desktop/my_projects/work:/work" \
  --volume "$HOME/Desktop/licenses.txt:/license.txt" \
  pennbbl/qsiprep:0.18.1 \
  /data /data/derivatives participant \
  --output-resolution 1.2 \
  --fs-license-file /license.txt \
  --work-dir /work \
  --nthreads 4 \
  --omp-nthreads 3 \
  -v -v

QSIRecon command

docker run -it --rm \
  --memory "48g" \
  --volume "$HOME/Desktop/my_projects:/data" \
  --volume "$HOME/Desktop/license.txt:/license.txt" \
  --volume "$HOME/derivatives/qsiprep:/derivatives" \
  --volume "$HOME/freesurfer/subjects:/freesurferResults" \
  --volume "$PWD:/recon_spec" \
  pennbbl/qsiprep:0.18.1 \
  /data/bids /data/derivatives participant \
  --fs-license-file /license.txt \
  --recon_input /derivatives \
  --recon_spec /recon_spec/msmt_hsvs_pyafq.json \
  --recon-only \
  --freesurfer-input /freesurferResults \
  --nthreads 4 \
  --omp-nthreads 3 \
  -v -v

QSIRecon pipeline parameters

  "name": "mrtrix_msmt_pyafq",
  "space": "T1w",
  "atlases": [],
  "anatomical": [
    "mrtrix_5tt_hsvs"
  ],
  "nodes": [
    {
      "name": "msmt_csd",
      "software": "MRTrix3",
      "action": "csd",
      "output_suffix": "msmtcsd",
      "input": "qsiprep",
      "parameters": {
        "mtnormalize": true,
        "response": {
          "algorithm": "dhollander"
        },
        "fod": {
          "algorithm": "msmt_csd",
          "max_sh": [
            8,
            8,
            8
          ]
        }
      }
    },
    {
      "name": "track_ifod2",
      "software": "MRTrix3",
      "action": "tractography",
      "output_suffix": "ifod2",
      "input": "msmt_csd",
      "parameters": {
        "use_5tt": true,
        "method_5tt": "hsvs",
        "use_sift2": true,
        "tckgen": {
          "algorithm": "iFOD2",
          "select": 1000000,
          "max_length": 250,
          "min_length": 30,
          "power": 0.33,
          "crop_at_gmwmi": true,
          "backtrack": true,
          "quiet": true
        },
        "sift2": {}
      }
    },
    {
        "name": "pyafq_tractometry",
        "software": "pyAFQ",
        "action": "pyafq_tractometry",
        "input": "track_ifod2",
        "output_suffix": "PYAFQ_TRACTOMETRY_ET",
        "parameters": {
            "use_external_tracking": true,
            "export": "all",
            "directions": "prob",
            "max_angle": 30.0,
            "sphere": "",
            "seed_mask": "",
            "seed_threshold": 0,
            "n_seeds": 1,
            "random_seeds": false,
            "rng_seed": "",
            "stop_mask": "",
            "stop_threshold": 0,
            "step_size": 0.5,
            "min_length": 50,
            "max_length": 250,
            "odf_model": "CSD",
            "tracker": "local",
            "nb_points": false,
            "nb_streamlines": false,
            "seg_algo": "AFQ",
            "reg_algo": "",
            "clip_edges": false,
            "parallel_segmentation": "{'n_jobs': -1, 'engine': 'joblib', 'backend': 'loky'}",
            "progressive": true,
            "greater_than": 50,
            "rm_small_clusters": 50,
            "model_clust_thr": 1.25,
            "reduction_thr": 25,
            "refine": false,
            "pruning_thr": 12,
            "b0_threshold": 50,
            "prob_threshold": 0,
            "roi_dist_tie_break": false,
            "dist_to_waypoint": "",
            "rng": "",
            "return_idx": false,
            "presegment_bundle_dict": "",
            "presegment_kwargs": "{}",
            "filter_by_endpoints": true,
            "dist_to_atlas": 4,
            "save_intermediates": "",
            "n_points": 100,
            "clean_rounds": 5,
            "distance_threshold": 3,
            "length_threshold": 4,
            "min_sl": 20,
            "stat": "mean",
            "min_bval": "",
            "max_bval": "",
            "filter_b": true,
            "robust_tensor_fitting": false,
            "csd_response": "",
            "csd_sh_order": "",
            "csd_lambda_": 1,
            "csd_tau": 0.1,
            "gtol": 0.01,
            "brain_mask_definition": "",
            "bundle_info": "",
            "reg_template_spec": "mni_T1",
            "mapping_definition": "",
            "reg_subject_spec": "power_map",
            "profile_weights": "gauss",
            "scalars": "['dti_fa', 'dti_md']",
            "import_tract": "",
            "sbv_lims_bundles": "[None, None]",
            "volume_opacity_bundles": 0.3,
            "n_points_bundles": 40,
            "sbv_lims_indiv": "[None, None]",
            "volume_opacity_indiv": 0.3,
            "n_points_indiv": 40,
            "viz_backend_spec": "plotly_no_gif",
            "virtual_frame_buffer": false
        }
    }
  ]
}

Version:

0.18.1

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

Docker

Data formatted according to a validatable standard? Please provide the output of the validator:

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

PASTE LOG OUTPUT HERE

Screenshots / relevant information:


Hi @Elaheh and welcome to neurostars!

In the future, please use the software support post template, and provide code as formatted text (i.e., use the </> button in the text editor or surround with tickmarks) instead of using screenshots. You can see I have edited your post for you this time.

This is an old version. I would recommend updating and seeing if the behavior changes.

Because, as you mentioned before:

Your bundles are in subject-specific ACPC space.

The 5TT image is a derivative of MRtrix3 5ttgen using the FreeSurfer outputs, then registered to ACPC space. The dimensions are based off the FreeSurfer outputs. The original T1 is in native space, and the QSIPrep T1 is also in ACPC alignment.

Best,
Steven