Skip to content

Quality Check Stream

heffjos edited this page Oct 12, 2012 · 27 revisions

Simplified Quality Stream

Scan quality stream

The above image depicts a very simplified version of quality checks. The quality checks to be added will be the "bad" slice detection and "bad" scan detection. The output of the "bad" slice detection will be a PostScript (PS) file in each run directory, a .mat file in each run directory that stores all the output to create the figures in the PS, and one text that lists all "bad" detected slices. The user can check the "bad" slices in an image viewer and decide what to do with them. Do you think any user would view the PS? Maybe make a gui to progressively go through each run and display metrics in gui. User can select the threshold in gui.

Metrics used for bad slice detection:

  • mean of slices z-scored across time - default threshold 4
  • MSE between slices across time - supplementary for the user

Figures printed in PS:

  • SNR as defined by Tor Wager histogram (mean divided by standard deviation across time at each voxel)
  • z-score of mean slices across time
  • MSE between slices across time
  • Whole scan means vs whole scan STD
  • MSE between whole volumes across time

The output of the "bad" scan detection will be a .txt (or .csv?) file in the run directory if and only if a "bad" scan is detected in a run. The text file will contain regressors for each "bad" scan in the run. The user decides whether to use the regressors at the first level stage.

Metrics used for bad scan detection:

  • mean of whole scans z-scored across time and then temporal difference - default threshold TBD
  • maybe just used art toolbox for this which also does motion detection. It may be cumbersome to use because it requires an SPM.mat and is easiest to use with SPM motion parameter text files. Our preprocessing text files can be used, but we would have to edit some of the code.

Why split the quality checks into "bad" slice and scan detection?

Slice detection will use the untouched run_##.nii. Detected slices can then be "corrected" by methods of interpolation if the user decides to choose to do so. If "bad" scans are detected at this stage, can anything be done? Scan detection will use the final smoothed normalized images, because these are the files that should be used in the first level analysis.

Why output a PS instead of a PDF or html file?

The easiest way to output a PDF is through the publish function. The publish function seems to have memory leaks, so it is not useful for batch processing. I have always seen "out of memory error" after the seventh run processed. Outputting an html file is cumbersome, because each figure has to be separately saved; however, it could be useful if there was some sort of database.

  • We should probably run the command-line ps2pdf at the end to provide a PDF file for the user to view as many users will not know how to view a postscript file.

Should really distorted time series runs be checked?

The best way to do this may be just briefly checking over each run.

Semi-Automated Quality Stream (not final)

Scan quality stream

The above image depicts a decision making tree when using the semi-automated quality stream.

Preprocessing stream with quality checks (incomplete)

Preprocessing quality stream

Art toolbox

Art toolbox

References

www.cbi.nyu.edu/Downloads/dataQuality.pdf (defines SNR, SFNR, and SGR)