QSIPrep Metrics

Hi all,
I have some questions about some of the outputs QSIPrep outputs.

  1. How does QSIPrep create the carpetplot for eddy outlier slices? I would like to take note of these specific slice/volumes.
  2. In *image_qc.tsv, what is raw_num_bad_slices, t1_num_bad_slices, and t1post_num_bad_slices? Are these actually slices or volumes? What metric does QSIPrep use to determine whether or not a slice is bad or not and is there another output that tells me which slices these are?

Thanks!

Hi @scchung,

I believe the carpet plot intensity is inverse CNR (i.e. higher noise is more intense), with x-axis being time, and y-axis being slice index. EDIT: see answer below.

It is slices. raw is on the raw data, t1 on the preprocessed data before b1 bias correction, t1post is after b1 bias correction. A bad slice was defined as a slice for which the sum of its voxel-wise intensity differences to the immediately preceding and following slices exceeds twice the voxel-wise intensity difference between those two neighboring slices.

You can try to parse the *desc-slice_qc.json file to find the high CNR stdev slices, but that may be difficult. We do not return the specific indices identified as bad by DSI Studio.

Best,
Steven

1 Like

The carpet plot is using the “stdevs” output from eddy, which is available in the slice_qc json file.

the bad slices variables from from DSI Studio, which calculates the correlation coefficient between the neighboring slices to determine if a slice is bad. We don’t keep a record of which slices were determined to be bad by DSI Studio, but I believe that information can be recreated if you run the DSI Studio QC on your raw data. The slicewise stdevs in the slice_qc json file will tell you which slices eddy will replace with interpolated data if you have outlier replacement enabled.

1 Like