-
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
Siemens: Negative Slice Times #271
Comments
Note: also reports Siemens Reference Lines in JSON: this will (temporarily) break the dcm_qa scripts
I gave the development build a try, and get reasonable-looking slice times (though not the same as the other subjects scanned with the same sequence on a different scanner at the same, which of course is a bit puzzling). However, in addition to the output about I know this isn't a CMRR sequence (as you had mentioned in a different thread about this issue), so I wanted to let you know--the relevant json file is attached, in case it's helpful. |
I wonder if @mharms comments regarding the ABCD sequences for issues 245 and 272 apply, e.g. these are custom MGH SMS/MB sequences and the DICOMs are specially developed. Seems like @HaukeBartsch may be the world expert. In this case, dcm2niix is diligently reporting what is in the CSA header, but is also alerting you that the values are implausible. I do not think we can go any further without insight from the folks who generated these files. |
@utooley thanks for sending some sample ABCD images. The series where dcm2niix raises an alarm clearly have bogus volumes in the Prisma-Fit 20170404 MosaicRefAcqTimes
Prisma 20170516 MosaicRefAcqTimes
|
@neurolabusc This is so insightful--thank you so much for your thorough investigation. This helps immensely in trying to figure out how to deal with those participants. I really appreciate it, will pass back along to other folks that I know have run into these sequences. |
@mgxd - i know our slice times were messed up in the voice project. would love to see an output from it in case the changes @neurolabusc implemented are related to our weird values. |
For completeness, this issue does not resolve the problem @satra had with some ABCD sequences. For these the slice times reported in the DICOM header is consistently wrong, and dcm2niix has no source for correct values. It correctly warns the user that the values do not make sense. One can observe the problem viewing the DICOM with a Hex Editor and looking for the tag
"ImageComments": "SMS_MGH_V2.1;_MB=5;_FOVshift=3;_K_PE=3;_K_RO=3;_CCR=1;_LeakBlockOn;", |
* tag 'v1.0.20190410': (52 commits) Update dcm_qa submodule. Prevent MSVC compilation warnings Siemens PASL 3D BIDS tags (http://adni.loni.usc.edu/wp-content/uploads/2010/05/ADNI3_Basic_Siemens_Skyra_E11.pdf) Reduce Microsoft Visual Studio 14 warnings (rordenlab#288) Use fgets not getline (rordenlab#288) Fixes (rordenlab#286; rordenlab#287) Added missing space (coding standard). Supported dicom tag Accession Number (0008,0050). Struct TDICOMdata extended with accessionNumber property, modified dicom loader and supported exporting accession number into json file and using it as filename with %g modifier. Terminate when corrupted DICOM detected (rordenlab#283) Keep more characters for institution address (VR is ST) "dcm2niix -v" returns version (rordenlab#280) NRRD export supports oldmin/oldmax (http://teem.sourceforge.net/nrrd/format.html#oldmin) Assume 1.2.840.10008.1.2 if transfer syntax is empty Option to modify overwrite behavior (rordenlab#276) XA11 classic DICOM uses private tags for DWI (rordenlab#274) Detect Philips when manufacturer (0008,0070) has been erased (rordenlab#267) Detect discrepancies in PAR/REC slice thicknesses (rordenlab#273) New "-x i" option (https://www.nitrc.org/forum/forum.php?thread_id=9324&forum_id=4703) bvecs for Philips DWI using 0019,10bb, 0019,10bc Adjust negative MosaicRefAcqTimes (rordenlab#271) ...
Just a comment that the current stable release (v1.0.20210317) will often generate false alarms that refer to this issue: In general, users can ignore this warning. Most of the times, this is a false alarm. On the other hand, if the data really is using Siemens Motion Correction, the slice times will be corrected using the formula suggested by Siemens (mentioned above). |
The Siemens CSA header can report negative values for the CSA parameter MosaicRefAcqTimes
[0 -400 80 -320 160...]
. We typically assume time zero refers to the start of the acquisition for the first slice in a volume, and therefore expect the minimum slice time to be zero. This situation occurs when Siemens Motion Correction (MoCo) is applied to some slice orders (e.g. interleaved).Several teams have reported this problem
According to personal communication from Siemens
The motion correction images are in anatomic order, while the non-moco data are in descending order, so the latest time is subtracted from each acquisition time resulting in the negative values. If you have an interleaved dataset we can more definitively validate this formula (aka sliceTime(i) - min(sliceTimes())).
Below is an example of two volumes from an anonymized ABCD dataset that exhibit this issue:
NegativeMosaicRefAcqTimes.zip
Development build v1.0.20190214 applies the formula suggested by Siemens.
The text was updated successfully, but these errors were encountered: