open-discussion > Philip precision flag no effect
Showing 1-3 of 3 posts
Apr 22, 2020 11:04 AM | Gary Hui Zhang
Philip precision flag no effect
Hi Chris,
Hope you are well. I tried the new dcm2niix for the first time yesterday (the MacOS release: 2-September-2019 (v1.0.20190902)). I tested different options for "-p"
1) don't set anything
2) -p y
3) -p n
They all gave me the same result for a set of Philips diffusion data. Is this the behaviour I should expect?
Many thanks.
Gary
Hope you are well. I tried the new dcm2niix for the first time yesterday (the MacOS release: 2-September-2019 (v1.0.20190902)). I tested different options for "-p"
1) don't set anything
2) -p y
3) -p n
They all gave me the same result for a set of Philips diffusion data. Is this the behaviour I should expect?
Many thanks.
Gary
Apr 22, 2020 01:04 PM | Chris Rorden
RE: Philip precision flag no effect
Can I suggest you upgrade to the latest version (1.0.20200331). You can always download the latest Mac version with
curl -fLO https://github.com/rordenlab/dcm2niix/re...
Unfortunately, Philips has several different ways of converting the raw intensity saved in the image (often a 16-bit integer) to a calibrated value (in NIfTI these are the scale slope and scale intercept values). For example, the raw image might have intensities of 0..4095, but if the scale intercept is 0 and the scale slope is 0.1, the intensities should be interpreted as 0..409.5. Most scanner vendors use the public tags RS = rescale slope (0028,1053) RI = rescale intercept (0028,1052) to report this calibration.
However, Philips has included several different calibration values. The same image might include different calibration values and private tags are used. Specifically "Display Values", "Floating Values" and "Real World Values" are all possible calibrations. Unfortunately, some groups prefer one form of calibration and others prefer different ones. Not all Philips scans include all of these combinations.
If dcm2niix sees conflicting values, it will choose the one you requested, and provide a warning, e.g.
Philips Scaling Values RS:RI:SS = 128:0:22 (see PMC3998685)
My guess is that your image does not provide conflicting values. You can always use dcmdump or gdcmdump to see the DICOM tags of your images and check. These issues are described here:
https://github.com/rordenlab/dcm2niix/tree/master/Philips
curl -fLO https://github.com/rordenlab/dcm2niix/re...
Unfortunately, Philips has several different ways of converting the raw intensity saved in the image (often a 16-bit integer) to a calibrated value (in NIfTI these are the scale slope and scale intercept values). For example, the raw image might have intensities of 0..4095, but if the scale intercept is 0 and the scale slope is 0.1, the intensities should be interpreted as 0..409.5. Most scanner vendors use the public tags RS = rescale slope (0028,1053) RI = rescale intercept (0028,1052) to report this calibration.
However, Philips has included several different calibration values. The same image might include different calibration values and private tags are used. Specifically "Display Values", "Floating Values" and "Real World Values" are all possible calibrations. Unfortunately, some groups prefer one form of calibration and others prefer different ones. Not all Philips scans include all of these combinations.
If dcm2niix sees conflicting values, it will choose the one you requested, and provide a warning, e.g.
Philips Scaling Values RS:RI:SS = 128:0:22 (see PMC3998685)
My guess is that your image does not provide conflicting values. You can always use dcmdump or gdcmdump to see the DICOM tags of your images and check. These issues are described here:
https://github.com/rordenlab/dcm2niix/tree/master/Philips
Apr 22, 2020 02:04 PM | Chris Rorden
RE: Philip precision flag no effect
1. Since you posted on the MRIcron forum, I would suggest upgrading
to the modern MRIcroGL if your computer supports it. While I hope my legacy software is
mature and useful, I am a lecturer, administrator and scientist, so
I do not have much time to maintain old tools.
2. For completeness, these are the values that dcm2niix uses. If provided, they should be included in the BIDS JSON file created by dcm2niix, e.g.
https://github.com/neurolabusc/dcm_qa_ph...
Abbreviation: Name : DICOMtag
RS : PhilipsRescaleSlope : 0028,1053
RI : PhilipsRescaleIntercept : 0028,1052
SS : PhilipsScaleSlope : 2005,100E
rwvI : PhilipsRWVIntercept : 0040,9224
rwvS : PhilipsRWVSlope : 0040,9225
R = raw value, P = precise value, D = displayed value
RS = rescale slope, RI = rescale intercept, SS = scale slope
D = R * RS + RI
P = D/(RS * SS)
3. Be aware that it is possible for Philips to create an enhanced DICOM where the scale slope and intercept varies between slices. This is incompatible with NIfTI, and therefore when faced with this dilemma dcm2niix will convert the integer data to floating point.
https://github.com/rordenlab/dcm2niix/issues/363
2. For completeness, these are the values that dcm2niix uses. If provided, they should be included in the BIDS JSON file created by dcm2niix, e.g.
https://github.com/neurolabusc/dcm_qa_ph...
Abbreviation: Name : DICOMtag
RS : PhilipsRescaleSlope : 0028,1053
RI : PhilipsRescaleIntercept : 0028,1052
SS : PhilipsScaleSlope : 2005,100E
rwvI : PhilipsRWVIntercept : 0040,9224
rwvS : PhilipsRWVSlope : 0040,9225
R = raw value, P = precise value, D = displayed value
RS = rescale slope, RI = rescale intercept, SS = scale slope
D = R * RS + RI
P = D/(RS * SS)
3. Be aware that it is possible for Philips to create an enhanced DICOM where the scale slope and intercept varies between slices. This is incompatible with NIfTI, and therefore when faced with this dilemma dcm2niix will convert the integer data to floating point.
https://github.com/rordenlab/dcm2niix/issues/363