Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brainstorming potential IQMs (image quality metrics) for DWI #1216

Closed
7 of 9 tasks
oesteban opened this issue Mar 22, 2024 · 13 comments
Closed
7 of 9 tasks

Brainstorming potential IQMs (image quality metrics) for DWI #1216

oesteban opened this issue Mar 22, 2024 · 13 comments
Labels

Comments

@oesteban
Copy link
Member

oesteban commented Mar 22, 2024

I'd like to tap on the hive mind to figure out some potential summary metrics that may reflect quality aspects of DWI data. The idea is to build from the basis being set in #1131.

At this moment, I have the following thoughts:

/cc @arokem @yasseraleman @edickie

@oesteban
Copy link
Member Author

One more:

  • Signal drift delta and speed (over the TR)

@oesteban
Copy link
Member Author

One or more:

  • Outputs from dwidenoise about the noise floor

@oesteban
Copy link
Member Author

Just discussed with @yasseraleman:

  • Directional derivative along Z to find slices with global signal drop
  • (probably not for MRIQC but for dMRIPrep) Use eddymotion to filter the directional derivative and identify global drop-out slices more safely.

@araikes
Copy link
Contributor

araikes commented Mar 22, 2024

I know it's not an IQM, but how about a DEC map in addition to the FA and ADC images. Would help to diagnose vector files that haven't been written with correct ordering.

@oesteban
Copy link
Member Author

From #1221:

Some head-motion metrics from fMRI can be directly applied (e.g., framewise displacement), but in the case of dMRI I think it would be interesting to have a metric reporting the differences between the b-vectors before b-matrix rotation (with head-motion realignment matrices) and the original (nominal) b-vectors.

The rationale behind this metric is that some large head motions do not affect the b-vector (translations), while FD and other head motion metrics are more volume-to-volume absolute measurements.

Another +1 for this is the ease of computation (once you've estimated head motion, of course).

@oesteban
Copy link
Member Author

I know it's not an IQM, but how about a DEC map in addition to the FA and ADC images. Would help to diagnose vector files that haven't been written with correct ordering.

@araikes could you open an issue for this? - I'd be happy to add the DEC map to the visual reports

@oesteban
Copy link
Member Author

oesteban commented Apr 1, 2024

Proposed by @mattcieslak (#1131 (comment)):

@oesteban
Copy link
Member Author

oesteban commented Apr 1, 2024

Delayed from #1131 and prioritized with #1222.

  • global and slice-wise spike percentages

@araikes
Copy link
Contributor

araikes commented Apr 1, 2024

Ok.. I have a question and I think here is about a good a place as any to ask. I recognize that rodent data is not super well supported in MRIQC (rats currently are, but not mice). However, perhaps the general discussion on IQMs can help.

We collect ex-vivo diffusion data on our mice and we have some older datasets from when I first started work in rodent imaging. It's 3D diffusion acquisitions and one of the challenges which we didn't know we were running into until later was cradle motion. So, in a full dataset (n = 140-216 directions), we have a variable number of directions that end up looking like this:
image

or even worse, this:
image

I don't really want to have drop entire acquisitions nor do I really want to spend the tedium of manually (and subjectively) identifying which volumes are the "bad" ones (e.g., how bad is too bad, visually? If the ghosting appears to be only outside the brain, is that ok or is any ghosting bad... those are the things I think about). Is there a plausible quantitative IQM (maybe that z-direction derivative referenced above) that might be useful in identifying volumes with this kind of artifact so that thresholding could be done to remove volumes above/below some study-defined threshold value?

Thoughts @oesteban, @arokem, or @mattcieslak?

@oesteban
Copy link
Member Author

@araikes

maybe that z-direction derivative referenced above

I don't think that would actually tell you much in this case. Maybe something like GSR along z (we have it for functional, and only along x and y for humans: https://mriqc.readthedocs.io/en/latest/iqms/bold.html#measures-for-artifacts-and-other) or some adaptation of metrics like the ones proposed in #673.

@oesteban
Copy link
Member Author

Let's close this issue as done and continue with your issue in a separate thread @araikes.

@jhlegarreta
Copy link
Contributor

Sorry to chime in a little late here. I've seen that issues have been open for unchecked items. Maybe some of these are already available, but just in case:

  • Plot of gradient vectors across shells and checks (uncorrected/corrected, correlation/coverage of surface, etc.) [3,5]
  • Volume-to-volume motion (avg abs, avg rel motion (mm); avg x, y, z translation (mm); avg x, y, z rotation (deg) [1]
  • Within-volume motion (avg std x, y, z translation (mm); avg std x, y, z rotation (deg)) [1]
  • Displacement, translation, rotation (x,y,z) after eddy/motion correction wrt to original [5]
  • Slices corrected per volume after eddy
  • Total outliers (%); per-shell; outliers per PE direction [1]
  • SNR per volume vs b0 [1]
  • Stats on volumes of tissue maps (would only make sense in a multi-subject setting)
  • FA, MD, residuals [2], etc. mean/stddevs, etc. in e.g. in tissues/across subjects
  • Chi-squared goodness-of-fit analysis (?) [5]

Refs:
[1] Bastiani, Automated quality control for within and between studies diffusion MRI data using a non-parametric framework for movement and distortion correction. Nimg 2019
[2] Tournier, Diffusion Tensor Imaging and Beyond. MRM 2011
[3] Schilling, A fiber coherence index for quality control of B-table orientation in diffusion MRI scans. MRI 2019
[4] Dubos, Dmriprep: open-source diffusion MRI quality control framework with graphical user interface. SPIE 2023
[5] Cai, PreQual: An automated pipeline for integrated preprocessing and quality assurance of diffusion weighted MRI images, MRM 2021

@oesteban
Copy link
Member Author

Thanks for chiming in!

  • Plot of gradient vectors across shells and checks (uncorrected/corrected, correlation/coverage of surface, etc.) [3,5]

This was on my mind, thanks for putting it into writing :)

  • Volume-to-volume motion (avg abs, avg rel motion (mm); avg x, y, z translation (mm); avg x, y, z rotation (deg) [1]

We have "framewise displacement" copied from BOLD for this. Instead of motion parameters, FD calculates the motion of four corners of a cube along time. That makes the measure more generalizable across subjects, and does not rely on arbitrary implementation decisions such as where the origin of rotations is set.

Within-volume motion (avg std x, y, z translation (mm); avg std x, y, z rotation (deg)) [1]

How's this estimated? (I guess I have to read the reference, right?)

  • Displacement, translation, rotation (x,y,z) after eddy/motion correction wrt to original [5]
  • Slices corrected per volume after eddy

I'd be skeptical that we want to address eddy within MRIQC (which should be quick and dirty).

Total outliers (%); per-shell; outliers per PE direction

We have this, but in parts-per-million rather than %. It's called "spikes".

SNR per volume vs b0 [1]

We have this, calculated within a mask of a small portion of the CC. We will expand over other mask with time.

Stats on volumes of tissue maps (would only make sense in a multi-subject setting)

How do you segment tissues? If it is with the data, it really requires a fast method. If it is brought from an atlas, that kind of defeats the purpose.

FA, MD, residuals [2], etc. mean/stddevs, etc. in e.g. in tissues/across subjects

Happy to add. For now we only have degenerate FA voxels in ppm.

Chi-squared goodness-of-fit analysis

We do this with T1w and T2w, but it is a bit of a rabbit hole because most often you don't have enough metadata to make sure the dataset has no scanner preprocessing (e.g., stuff like SENSE).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants