Users Guide (2.3) - The Format Of DMR Files
- Details
- Category: File Formats
- Last Updated: 17 April 2018
- Published: 17 April 2018
- Hits: 2959
DMR project files are simple text files containing the information defining a diffusion-weighted project created from raw MRI data. The actual time course data is contained in DWI ("diffusion-weighted images") files, which are referenced in the DMR file. The file need not be changed directly, all entries can be conveniently inspected and modified using the DMR Project Properties dialog, which can be invoked with the File > DMR Properties menu item. An important entry is the "Prefix:" string, which specifies a link to the corresponding DWI file, which actually contains the diffusion-weighted data. If the DMR is saved as "S1_DTI.dmr", the prefix will be "S1_DTI" and the data will reside in the single file "S1_DTI.dwi". The "DataStorageFormat" entry specifies how the data is organized within the single file (see comment below). The number of measurements is stored in the entry NrOfVolumes. Since file version x, the "DataType" format specifies whether the data in DWI files is stored as 2-byte integer (old format) or as 4-byte float (new format, used as default) values.
Most entries of a DMR file are self explanatory. The structure of the file is similar to FMR files. As an important diffusion-weighted specific part, a "gradient and beta values table" appears at the end of the file, if available. The format of the current DMR file version (3) together with short explanatory descriptions of the entries is given in the following table (changes from version "1" and "2" are indicated):
ENTRY | DESCRIPTION |
FileVersion: | The version of the DMR file: 3 |
NrOfVolumes: | Number of data points per pixel (samples) |
NrOfSlices: | Number of recorded slices |
NrOfSkippedVolumes: | Number of volumes skipped during project creation |
Prefix: | Link to DWI file containing the actual data |
DataStorageFormat: | Flag indicating how data are stored in DWI file(s) (*1) |
DataType: | flag: 1 - 2-byte integer, 2 - 4-byte real (float) values (new v3) |
TR: | TR [msec] |
InterSliceTime: | Inter slice time (IST) [msec] |
TimeResolutionVerified: | Flag ensuring that "TR" and "IST" are correct |
TE: | TE [msec] |
SliceAcquisitionOrder: | Order in which slices are scanned |
SliceAcquisitionOrderVerified: | Flag ensuring that "SliceAcquisitionOrder" is correct |
ResolutionX: | Nr of columns of slice image matrix |
ResolutionY: | Nr of rows of slice image matrix |
LoadAMRFile: | Link to inplane anatomical AMR project (*3) |
ShowAMRFile: | flag: 1 - show linked AMR, 0 - show first image of STCs |
ImageIndex: | slice shown in the upper left subwindow |
LayoutNColumns: | Number of columns to show slices |
LayoutNRows: | Number of rows to show slices |
LayoutZoomLevel: | Zoom level range: 1 to 10 (1 = slice resolution) |
SegmentSize: | Subdivision (vertical lines) in time course plots (*4) |
SegmentOffset: | Offset for first vertical line of subdivisions |
DisplayVolume: | index, typically pointing to a 0-weighted volume (new v2) |
ProtocolFile: | Link to the protocol (.PRT) file(s) |
InplaneResolutionX: | Resolution of one pixel in x dimension [mm] (*2) |
InplaneResolutionY: | Resolution of one pixel in y dimension [mm] (*2) |
SliceThickness: | Slice thickness without slice gap [mm] (*2) |
SliceGap: | The gap between slices [mm] (*2) |
VoxelResolutionVerified: | Flag ensuring that pixel resolution values are correct |
PositionInformationFromImageHeaders | descriptive string introducing next entries |
PosInfosVerified: | Flag indicating that info could be read from header |
CoordinateSystem: | "1" for standard DICOM |
Slice1CenterX: | X coordinate of center of first slice |
Slice1CenterY: | Y coordinate of center of first slice |
Slice1CenterZ: | Z coordinate of center of first slice |
SliceNCenterX: | X coordinate of center of last slice |
SliceNCenterY: | Y coordinate of center of last slice |
SliceNCenterZ: | Z coordinate of center of last slice |
RowDirX: | Slice row direction vector, x component |
RowDirY: | Slice row direction vector, y component |
RowDirZ: | Slice row direction vector, z component |
ColDirX: | Slice column direction vector, x component |
ColDirY: | Slice column direction vector, y component |
ColDirZ: | Slice column direction vector, z component |
NRows: | Nr of rows of slice image matrix |
NCols: | Nr of columns of slice image matrix |
FoVRows: | Extent of field of view (FoV) in row direction [mm] |
FoVCols: | Extent of field of view (FoV) in column direction [mm] |
SliceThickness: | Slice thickness in mm |
GapThickness: | Gap thickness in mm |
NrOfPastSpatialTransformations: | Always "0", not used at present |
LeftRightConvention: | "Radiological" (left-is-right), "Neurological" (left-is-left), "Unknown" |
FirstDataSourceFile: | Name of file selected when loading original data from disk |
GradientDirectionsVerified: | boolean entry, values "YES" or "NO" |
GradientXDirInterpretation: | Values 1 - 6 specifying role of first component in gradient (*5) |
GradientYDirInterpretation: | Values 1 - 6 specifying role of second component in gradient (*5) |
GradientZDirInterpretation: | Values 1 - 6 specifying role of third component in gradient (*5) |
GradientInformationAvailable: | "YES"/"NO"; only if "YES" the "gradient/B" table follows next |
IF table available: "NrOfVolumes" lines with 4 entries each: Gradient X/Y/Z values plus B value |
(*1) For the "DataStorageFormat", DMR files only use values "3"(default) and "4". Storage format "3" keeps the data not as "slice time courses", but as a series of volumes within a single file. Storage format "4" stores the data in the form of VTCs, i.e. the time course values for a voxel are located in neighboring memory locations (time as inner loop).
(*2) The AMR file might be from a "real" T1-weighted scan or showing the functional slices itself, i.e. the first scan with high T1-contrast.
(*3) A vertical line is placed every n-th measurement, i.e. every 10th. This subdivision is only used, if no protocol file is linked
(*4) If a protocol is linked, time course plots are subdivided based on the protocol and not on the values for SegmentSize and SegmentOffset
(*5) The numerical values 1 - 6 represent how the respective component (first or "X", second or "Y", third or "Z") in the gradient table are interpreted with respect to the three cardinal axes. The inerpretations are "Left to Right" (value 1), "Right to Left" (2), "Anterior to Posterior" (3), "Posterior to Anterior" (4), "Inferior to Superior" (5) and "Superior to Inferior" (6). For details, see topic DMR Projects.
The "LeftRightConvention" entry replaces the "RadiologicalConvention" entry used in previous versions; instead of the two entries "YES" and "NO", the new "LeftRightConvention" is able to indicate that the header did not provide information about what is left and what is right ("Unknown"), which should only occur when reading non-standard data files.