DICOM2NIFTI111.m
Introduction
This is the first implementation of code to generate Nifti from the Siemens Sonata/Trio. The Nifti format has been implemented according to http://nifti.nimh.nih.gov/dfwg/ as far as is reasonable. Limitations are described below.
The implementation is based on the Dicom2Ana code that we have been using for a while, and this has proved to be quite reliable.
Further features:
Handles Mosaic correctly for function EPI acquisitions
Handles Mosaic diffusion correctly (compatible with the MDR version of the code, and so outputting bvec and bvals files correct for this orientation)
Creates the new .bmat file as an auxiliary file for the diffusion data (bmat format is xx, xy, xz,yy,yz,zz, by the number of directions, where xx = b*r r’)
Timing correct for EPI, EPI with time delays, 2D and 3D, but not mutli-shot EPI, FSE, GRASE etc.
Works fine for anatomicals
Matlab code available at: http://www.fmrib.ox.ac.uk/~robson/internal/Dicom2Nifti111.m
Tests data acquired for
Dicom2Nifti
1) Phase encoding direction
a.
Switch
this in 2D sequence
b.
Switch
this in 3D sequence
2) Orientations is +ve correct,
for orientation
a.
Acquire
images which are oriented +ve
b.
Flip
the slice direction and re-acquire (for 2D’s)
3) Offsets is +ve correct for
offset
a.
Acquire
images which are offset in each of 3 directions
4) Interleaving
a.
acquire
with different interleaving schemes
5) Timing
a.
add
a delay after the slices and check it returns the correct time-between-slices
6) Voxel dimensions
7) Diffusion encoding and
conversion
a.
Multiple
b factors
b.
Mosaic
version and non-mosaic version
The data for all this can be found in http://www.fmrib.ox.ac.uk/~robson/internal/data/
Known
limitations:
Limited
testing of orientation
Specific
concerns about the sign of the slice direction (Slice direction is calculated
from cross product, not determined correctly)
No
handling of multi-slice for timing (i.e. interleaved vs ascending vs
descending)
MAO. Don’t know how to detect it, don’t know how
to inform the processing code (Nifto can’t handle it except with multiple
files)
TR
errors:
Errors for FSE and other sequences with
more than 1 k-space line per shot (fine for single-shot)
No
storage of slice thickness (only centre of slice to centre of slice)
Incorrect
treatment of 2D-cine acquisitions
This
code works with 21A and earlier versions of the Siemens software, it may not
work with later versions.