-
Notifications
You must be signed in to change notification settings - Fork 29
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
Clarify and correct b-vector format and orientation #97
Comments
@jeremie-fouquet do you have a current workaround/solution to generate the appropriate bval/bvec files in the correct space to continue an analysis in FSL? this issue has been haunting me for a while! |
My current workaround is a homemade script that reorders the x-y-z components of the .bvec file to match my acquisition orientation (plus I don't rotate the acquisition FOV so I don't have to apply extra rotations). I confirmed the reordering was right by checking the orientation of the tractography fibers in a white matter tract. This script is specific to our acquisition orientation. A general solution would be much better... |
@jeremie-fouquet et al, I'm testing the edits you made in #96 and notice that the b-vectors that are produced are not unit norm vectors. As indicated here (https://dicomifier.readthedocs.io/en/latest/diffusion/bruker/index.html), the DwGradVec field is the gradient amplitudes relative to the maximum rather than unit vectors. The consequence of this is that like MRtrix will attempt to scale the b-values by the squared amplitude of the vectors (https://mrtrix.readthedocs.io/en/latest/concepts/dw_scheme.html#b-value-scaling). I know that FSL's DTIFIT will also normalize the vectors and I'm not sure how it treats the b-values internally when doing so. It would probably be beneficial produce unit norm vectors as the default output so that no unexpected b-value scaling happens behind the scenes. Note: I used Currently, I use MRtrix's |
@araikes @jeremie-fouquet Thank you both for your outstanding contributions. To further enhance our handling of diffusion-specific issues, I've implemented a few changes: Separated b-Vector Handling: I've isolated the handling of the b-vector format into a separate class to facilitate better troubleshooting and precision. Diffusion helper module Orientation Helper Update: The Orientation Helper has also been separated to simplify future updates. Orientation Helper to simplify updates. Assuming the b-vector adheres to the Bruker scanner convention (readout: x, phase: y, slice: -z), applying an affine transformation using VisuCoreOrient should prove effective, however, For greater converted output consistency across PV version or sequence, I would like to request anyone's support to collecting dataset to test and validate Bvec data as below
Thank you! |
Hi @dvm-shlee, We've been working toward a ground-truth diffusion phantom and I'm following up to see where that project is at. If I'm able to share the data I will, otherwise I'll put together a reasonably verbose set of outputs for evaluation from PV360. I will say this: The ordering of the b-vectors is extremely dependent on the output orientation of the NIFTI. For example, from our mouse data, I've determined the following (in PV360, brkraw 0.3.11 converted datasets):
Beyond that, if I'm then reorienting to a common output orientation (in this case LPS):
So there's a pretty wide range of transforms required that don't inherently align with the way things are currently being written. However, I do understand that there's updates on the immediate horizon that may address this heterogeneity as well. |
Description
It would be good to:
Suggested solution
If the FSL format is chosen, the PVM_DwGradRead, PVM_DwGradPhase, and PVM_DwGradSlice parameters specify the b-vectors in the read/phase/slice directions. In theory, we would only need to transform them into the radiological convention, according to https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FDT/FAQ#What_conventions_do_the_bvecs_use.3F. This page also provides a bit more context: https://www.mrtrix.org/2016/04/15/bug-in-fsl-bvecs-handling/.
Alternative solutions
Additional information
-[ENH] Optional alternative to bval/bvec bids-standard/bids-specification#349
-Incomplete description of DWI bvecs format bids-standard/bids-specification#243
The text was updated successfully, but these errors were encountered: