-
Notifications
You must be signed in to change notification settings - Fork 228
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
All bvals are same #245
Comments
This sounds very unusual. Can you confirm the version of dcm2niix you are using (e.g. v1.0.20181105) and the vendor that generated your images - GE, Siemens and Philips all use different ways of encoding DTI, but all should report bvals in s/mm2. If your data is really multi-shell, the b-values should vary across your images. Ideally, you could provide a sample of the raw DICOM data, but failing that you could provide the DICOM header for one of the DWI images (e.g. something like |
Okay, the progress so far: I built the version you suggested. Now, it appears that bvals are obtained as follows:
Shouldn't it be multiplied by just Or are you following the FSL convention and outputting in square units?
|
FSL wants the values in s/mm^2, not s/mm. Hence, dcm2niix applies b-value scaling. Am I correct that we can close this issue? |
Okay, I agree with the scaling. I also figured out the mistake before, we were using November 2016 version which might not have scaled the bvalues. But thanks for confirming. Now, the following issues have been noted:
Let me know what you think. I am happy to work on a PR if my time permits. |
|
The data is from GE scanner, shared personally with Prof. Chris. |
The new version has two changes specific to GE. Since I do not have GE hardware, please check ((I would be grateful for comments from @captainnova). The second change reflects an odd aspect of @tashrifbillah's GE DWI dataset: the 1st volume is a standard B=0 volume with BVec=0,0,0. In contrast, volumes 15,30,44,58,73,87 report B=900 but have BVec=0,0,0. I am not sure if this reflects a custom gradient table, but it appears to conflict with GE and Philips standard practice of using this combination to indicate a trace scan for that B-value. Unfortunately, GE does not appear to report trace scans in any other way (e.g. one would expect the ImageType to be The volumes are saved in the order specified by the acquisition number provided by the vendor. The RTIA timer is not provided, but I have no reason to think the order saved does not match the order acquired. |
Hi,
I will try running it through my test suite tomorrow, but I do not have any
series like this. Since it goes against usual scanner behavior (e.g. bval >
0 but bvec == 0 means trace), I hope @tashrifbillah will supply some more
information on how the dataset was made. My hunch is that since GE is set
up to allow nearly any number of b=0 volumes (but only at the start), and
any number of directions (< 300, IIRC), but only in a single shell, a
custom tensor.dat file was used to trick it in to spreading the b=0 volumes
throughout the scan by zeroing out some of the vectors while letting the
scanner think that the nominal b was 900. If I understand correctly that
approach could also be used to do multishell diffusion MRI in a single
series on GE, something I was hoping to try myself one of these days, but
that would mean that the b values written in the DICOM headers and
available to dcm2niix would be lies. Acceptable lies, in my opinion, but
only if the person scanning and the person analyzing the data carefully
coordinate so that the actual .bval and .bvec files can be inserted after
dcm2niix is run. If the scanner was coerced into doing something else I'll
be even more interested, but without more info my inclination is that
dcm2niix should probably not change its behavior if an end run is being
done around GE's expectations and the DICOM header. Do the pixel values of
the relevant image volumes look like they have b=0, or are traces?
Thanks,
Rob
…On Thu, Nov 8, 2018 at 6:26 PM Chris Rorden ***@***.***> wrote:
The new version has two changes specific to GE. Since I do not have GE
hardware, please check ((I would be grateful for comments from
@captainnova <https://github.com/captainnova>).
1.) If bval > 0, and bvecs length is non-zero: bvecs generated with unity
length.
2.) If bval > 0 but bvec length is zero: the volume is assumed to be
bval=0 unless all volumes in the series have this property (in which case
they are assumed to be trace images).
The second change reflects an odd aspect of @tashrifbillah
<https://github.com/tashrifbillah>'s GE DWI dataset: the 1st volume is a
standard B=0 volume with BVec=0,0,0. In contrast, volumes 15,30,44,58,73,87
report B=900 but have BVec=0,0,0. I am not sure if this reflects a custom
gradient table, but it appears to conflict with GE and Philips standard
practice of using this combination to indicate a trace scan for that
B-value. Unfortunately, GE does not appear to report trace scans in any
other way (e.g. one would expect the ImageType to be DIFFUSION TRACE).
For a concrete example, series 16 from @nikadon
<https://github.com/nikadon/cc-dcm2bids-wrapper/tree/master/dicom-qa-examples/ge-mr750-dwi-b-vals>.
My kludge for this is to assume they are trace images if the vendor is GE
and all the volumes have B>0 and BVec=0,0,0. Since GE (unlike Philips)
seems to save derived trace images as a separate series from the raw data,
this appears to work.
The volumes are saved in the order specified by the acquisition number
provided by the vendor. The RTIA timer is not provided, but I have no
reason to think the order saved does not match the order acquired.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#245 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/APHk6X_R4ApLIqJcZeMMJo6NVOFj5Ql9ks5utMuogaJpZM4YTtHi>
.
--
Rob
|
@captainnova thanks for your rapid response. Visual inspection of the data from @tashrifbillah clearly shows that the images with bval=900 and bvec=0,0,0 are raw B=0 images and not derived TRACE images. Fortunately, since (in my limited experience) GE always saves derived images in a separate series from the raw data (as required by the DICOM standard), I think my kludge should provide a robust solution to this problem. I think your assumption is correct: the users provided a custom tensor file to coax interspersed B=0 images. If the vendor allows this and we can reliably discriminate these from derived images, I think we should provide this function. When the latest commit of dcm2niix detects GE bvec/bval images like this it will generate the warning For those with GE hardware, I would suggest you lobby yourGE Research Collaboration Managers to fix this at the source:
|
Great work dcm2niix team. Now the bvals are scaled properly, and bvecs have unity magnitude. Also, the numbers agree with DWIConvert.
Thanks for working on this. |
* tag 'v1.0.20181114': (70 commits) New stable release: update documentation (v1.0.20181114) Avoid using GDCM's internal OpenJPEG library. Discriminate trace from raw GE DWI scans (rordenlab#245) Restore Philips enhanced (rordenlab@3c31d18) Clean up readme, interpolation errors less verbose, add date-of-birth to BIDS (requires '-ba n') Not all GE DWI with b>0 bvec=0 are trace (rordenlab#245) calculate Zmm for enhanced DICOM w/o 0018,0088 (rordenlab#241) Kludge for Siemens MoCo slice timing interfered with CMRR fix (CMRR-C2P/MB#29) Bruker enhanced 4D data (rordenlab#241) XA10A tag substitutes (rordenlab#240) Huffman tables repeated for RGB planes for jpg_0XC3 (rordenlab#244) change MoCo naming and derived detection (rordenlab#243) Update dcm_qa_nih submodule. Update dcm_qa_nih submodule. Update dcm_qa submodule. experimental dcm4che enhanced support (rordenlab#241) Vida partial Fourier update (rordenlab#240) XA10A Vida dwell time (rordenlab#240) More XA10A Vida header info (rordenlab#240) UIH bvecs (rordenlab#225 (comment)) ...
@neurolabusc I am currently using the latest release I could find (?) [Chris Rorden's dcm2niiX version v1.0.20181125] and am working with the large NIH ABCD dataset that involves multi-shell DTI data from Siemens, Philips and GE scanners. I am getting the same error as above (all b values and b vectors are set to 0 during conversion) on some, but not all, of the GE images. Your help is greatly appreciated. |
Can you provide an example set of DICOMs? |
ABCD-DTI_run-20170226131051.zip
<https://drive.google.com/file/d/1rrkF2WblmKHGoBZqoaVQZB9YJ_OOS-2o/view?usp=drive_web>
…On Wed, Feb 13, 2019 at 4:33 PM Chris Rorden ***@***.***> wrote:
Can you provide an example set of DICOMs?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#245 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AtZ0GhwRA7Bgk5pqa1Jo_PNMtFC93mNeks5vNKDIgaJpZM4YTtHi>
.
|
@katymanning this is not a problem with dcm2niix but with the DICOM images. You should contact the ABCD team to have them resolve this. These images were acquired on a GE DISCOVERY MR750, so one would expect the B-value stored in 0043,1039 and the B-vectors in 0019,10bb, 0019,10bc, 0019,10bd. You can view the DICOM header with your favorite tool (e.g. Horos, dcmdump) and select an image where visual inspection reveals there is a clear spatially selective diffusion gradient applied (below I chose instance 2735). Note that the B-value for this slice is reported as 3000, but the bvector is reported as 0,0,0. In GE speak, an image with a positive bvalue and a bvector of 0,0,0 is a derived image, such as an isotropic image. The appearance of this slice is not consistent with a derived image. Therefore, the DICOM file is incorrect. Since b-vector information is not present in the DICOM, dcm2niix can not report it. I note the scan was acquired aligned to the scanner bore (0020,0037), so if you have another scan with this same alignment and the same sequence that does have b-vectors, you could substitute those. (0020,0013) IS [2735] # 4, 1 InstanceNumber |
FYI: I'd be cautious about assuming that the DICOMs provided by ABCD contain everything that is needed for successful conversion of the ABCD data from all scanner vendors. For example, at least initially in ABCD, GE scanners didn't even have an online (host) reconstruction available for its multi-band acquisitions, so the raw (k-space) data had to be saved and converted to images via offline scripts. My simple understanding is that the ABCD Study has it own image conversion utilities, which may include some "tricks" necessary to get the data (including bvals/bvecs) properly converted for GE (and possibly Philips) data. Your life is likely to be much simpler if you use the already converted images that ABCD is providing. Perhaps @HaukeBartsch can comment more definitely. |
Thank you so much for taking the time to explain these inconsistencies. I will contact them and attempt to gain access to the converted images. |
Converted data for ABCD is available through the NDA: https://data-archive.nimh.nih.gov/abcd |
Did anyone experience this issue where output bvecs don't have unity magnitude but all the bvals have the same magnitude?
Having the above conflicts with fsl dtifit because it normalizes all bvecs to 1 and then multiplies by whatever is present in the bvals. That means, the data are not parsed correctly down the pipeline.
The text was updated successfully, but these errors were encountered: