Data Quality Question

22 views
Skip to first unread message

Steven J Granger

unread,
Mar 30, 2026, 8:02:20 PM (14 days ago) Mar 30
to DSI Studio
Hi Frank,

I am using a dataset with unique parameters (see below)

The result seems to be low R2 values after qsdr and relatively poor tract quality (augmented tractography). 

Would it be possible to upload an example src (sz) file to get your feedback on the sequence and any modifiable ways internally to improve reconstruction and tractography?

A multishell diffusion scheme was used, and the b-values were 1000 ,2000 and 3000 s/mm². The number of diffusion sampling directions were 21, 15, and 60, respectively. The in-plane resolution was 1.714 mm. The slice thickness was 1.71 mm. The bias field was corrected using b0 image. The diffusion data were reconstructed in the MNI space using q-space diffeomorphic reconstruction (Yeh et al., Neuroimage, 58(1):91-9, 2011) to obtain the spin distribution function (Yeh et al., IEEE TMI, ;29(9):1626-35, 2010). A diffusion sampling length ratio of 1.25 was used. The output resolution in diffeomorphic reconstruction was 1.71429 mm isotropic. The restricted diffusion was quantified using restricted diffusion imaging (Yeh et al., MRM, 77:603–612 (2017)). The tensor metrics were calculated using DWI with b-value lower than 1750 s/mm².





Frank Yeh

unread,
Mar 30, 2026, 8:06:10 PM (14 days ago) Mar 30
to gran...@uci.edu, DSI Studio
Hi Steven,

I have checked the data and found that the b-table is flipped in the bx direction.

Flipping it back should resolve the issue and provide you with good tractography results.

Best regards,
Frank


--
You received this message because you are subscribed to the Google Groups "DSI Studio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dsi-studio/ed7f76d3-e6c8-4b63-8667-c8591d926178n%40googlegroups.com.

Steven J Granger

unread,
Mar 31, 2026, 10:47:38 AM (13 days ago) Mar 31
to Frank Yeh, DSI Studio
Thank you Frank! 

Is there another command line argument that I am missing to perform this flip? I had through that --check_btable would have caught this? 

/home/DSI_Studio_2_26_2026/dsi_studio --action=src --source=$main1 --output=$path --bvec=$path/eddy_corrected_data.eddy_rotated_bvecs --bval=/data/bval


/home/DSI_Studio_2_26_2026/dsi_studio --action=rec --source=$path/*.sz --check_btable --method=7 --param0=1.25 --output=$output

--
Steven J. Granger | Graduate Student Researcher
Center for the Neurobiology of Learning and Memory
Department of Neurobiology and Behavior
University of California, Irvine

Frank Yeh

unread,
Mar 31, 2026, 10:47:45 AM (13 days ago) Mar 31
to Steven J Granger, DSI Studio
Hi Steven,

To use the automated check, you should use the argument --check_btable=1.

Please note that I do not recommend applying --check_btable uniformly to all files, as it may not correctly flip or swap the b-table if the SNR is low. The best approach is to perform a quality check first on all .src files using:

--action=qc --source=*.sz --check_btable=1

The resulting qc.tsv file will indicate if the b-table needs to be adjusted for each file. Based on those results, you can apply the necessary flips or swaps during --action=rec using the --cmd argument.

For example, if the QC shows "021fx" for the majority of files, you would need to swap yz to get "012" and then flip bx to fix "fx". The command would look like this:

--cmd="[Step T2][B-table][swap bybz]+[Step T2][B-table][flip bx]"

Other available commands include:

- [Step T2][B-table][flip bx]
- [Step T2][B-table][flip by]
- [Step T2][B-table][flip bz]
- [Step T2][B-table][swap bxby]
- [Step T2][B-table][swap bybz]
- [Step T2][B-table][swap bxbz]

Best regards,
Frank

Steven J Granger

unread,
Mar 31, 2026, 11:53:14 AM (13 days ago) Mar 31
to Frank Yeh, DSI Studio
Hi Frank, 

Thanks for the info! 

I performed the following: /home/DSI_Studio_2_26_2026/dsi_studio --action=qc --source=su*/day2/out*/*sz --check_btable=1

Does this function overwrite or correct the .sz files or only create the qc file? 

There is some output that indicates it might:  [thread 129261901952576]📂open /data/Diffusion/CDA/sub1099/day2/output/eddy_corrected_data.sz

      [thread 129261935523392]📟checking b_table

      [thread 129261935523392]📟pre-reconstruction

      [thread 129261935523392]11ReadDWIData

      [thread 129261935523392]10Dwi2Tensor

      [thread 129261935523392]📟checking b-table

      [thread 129261918737984]src ver: 202408

      [thread 129261918737984]dim: 140 140 81 vs: 1.71429 1.71429 1.7 

      [thread 129261918737984]trans: -1.71429 0 0 118.047; 0 -1.71429 0 108.622; 0 0 1.7 -51.4917; 0 0 0 1; 

      [thread 129261918737984]dwi count: 102

      [thread 129261918737984]📟reading data

      [thread 129261901952576]src ver: 202408

      [thread 129261901952576]dim: 140 140 81 vs: 1.71429 1.71429 1.7 

      [thread 129261901952576]trans: -1.71429 0 0 122.943; 0 -1.71429 0 136.643; 0 0 1.7 -47.95; 0 0 0 1; 

      [thread 129261901952576]dwi count: 102

      [thread 129261901952576]📟reading data

      [thread 129261918737984]📟create mask from dwi sum

      [thread 129261918737984]📟compute bias field

      [thread 129261901952576]📟create mask from dwi sum

      [thread 129261901952576]📟compute bias field

      [thread 129261782431296]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261782431296]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261782431296]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261782431296]b-table corrected by .012fx for /data/Diffusion/CDA/sub1015/day2/output/eddy_corrected_data.sz

      [thread 129261935523392]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261935523392]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261935523392]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261935523392]b-table corrected by .012fx for /data/Diffusion/CDA/sub1033/day2/output/eddy_corrected_data.sz

      [thread 129261893559872]📟checking b_table

      [thread 129261893559872]📟pre-reconstruction

      [thread 129261893559872]11ReadDWIData

      [thread 129261893559872]10Dwi2Tensor

      [thread 129261893559872]📟checking b-table

      [thread 129261910345280]📟checking b_table

      [thread 129261910345280]📟pre-reconstruction

      [thread 129261910345280]11ReadDWIData

      [thread 129261910345280]10Dwi2Tensor

      [thread 129261910345280]📟checking b-table

      [thread 129261901952576]📟checking b_table

      [thread 129261901952576]📟pre-reconstruction

      [thread 129261901952576]11ReadDWIData

      [thread 129261901952576]10Dwi2Tensor

      [thread 129261901952576]📟checking b-table

      [thread 129261918737984]📟checking b_table

      [thread 129261918737984]📟pre-reconstruction

      [thread 129261918737984]11ReadDWIData

      [thread 129261918737984]10Dwi2Tensor

      [thread 129261918737984]📟checking b-table

      [thread 129261893559872]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261893559872]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261893559872]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261893559872]b-table corrected by .012fx for /data/Diffusion/CDA/sub1031/day2/output/eddy_corrected_data.sz

      [thread 129261918737984]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261918737984]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261918737984]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261918737984]b-table corrected by .012fx for /data/Diffusion/CDA/sub1017/day2/output/eddy_corrected_data.sz

      [thread 129261901952576]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261901952576]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261901952576]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261901952576]b-table corrected by .012fx for /data/Diffusion/CDA/sub1099/day2/output/eddy_corrected_data.sz

      [thread 129261910345280]012=-0%,012fx=BEST,012fy=-0%,012fz=-0%,021=-0%,021fx=-0%,021fy=-0%,021fz=-0%

      [thread 129261910345280]102=-0%,102fx=-0%,102fy=-0%,102fz=-0%,120=-0%,120fx=-0%,120fy=-0%,120fz=-0%

      [thread 129261910345280]210=-0%,210fx=-0%,210fy=-0%,210fz=-0%,201=-0%,201fx=-0%,201fy=-0%,201fz=-0%

      [thread 129261910345280]b-table corrected by .012fx for /data/Diffusion/CDA/sub1060/day2/output/eddy_corrected_data.sz

    └──⏱2.6809m



I have attached the QC file here which looks like the files are now .012fx?
 

srcqc.xlsx

Frank Yeh

unread,
Mar 31, 2026, 11:55:44 AM (13 days ago) Mar 31
to Steven J Granger, DSI Studio
The qc won't overwrite the existing .sz file. You may need to run another command to save them to new one

e.g. --action=rec --source=*.sz --cmd="[Step T2][B-table][flip bx]" --save_src=../*.sz

Steven J Granger

unread,
Mar 31, 2026, 12:14:06 PM (13 days ago) Mar 31
to Frank Yeh, DSI Studio
Hi Frank,

Ok that is good to know, although it is confusing to see the following output in what I sent previously ([thread 129261910345280]b-table corrected by .012fx for /data/Diffusion/CDA/sub1060/day2/output/eddy_corrected_data.sz)

So now in the qc file I have .021fx, .012fx, .210fz, .210fx each of these will need to be corrected for separately? 

To correct for .012fx I would have --action=rec --source=*.sz --cmd="[Step T2][B-table][flip bx]" --save_src=../*.sz

What about the others? 


Frank Yeh

unread,
Mar 31, 2026, 12:14:16 PM (13 days ago) Mar 31
to Steven J Granger, DSI Studio
Hi Steven,

To clarify, the QC action only checks the b-table on the spot and does not save a new .sz file.

The fact that you are seeing many different suggested corrections suggests that some files may have low SNR or NDC. In most cases, a single, uniform b-table correction should apply to the entire dataset. I recommend checking the files with the highest NDC to identify the most reliable correction and then applying that uniformly to all files.

If the b-table issues truly differ from one .sz file to another, it would imply the data was collected in a very inconsistent manner. Ultimately, you will need to visually inspect the results to confirm whether the b-table correction was applied correctly.

Best regards,

Frank

Steven J Granger

unread,
Apr 2, 2026, 11:48:08 AM (11 days ago) Apr 2
to DSI Studio
Hi Frank,

The QC file shows that most contain .012fx. 

Can I confirm that the correct command is -action=rec --source=*.sz --cmd="[Step T2][B-table][flip bx]" --save_src=../*.sz ? 

Frank Yeh

unread,
Apr 2, 2026, 11:49:10 AM (11 days ago) Apr 2
to gran...@uci.edu, DSI Studio
yes
> --
> You received this message because you are subscribed to the Google Groups "DSI Studio" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to dsi-studio+...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/dsi-studio/2d9121c8-2a96-4175-9853-c5afa257ec89n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages