The Format of VMP Files

 

A VMP file contains statistical results in 3D format. Results of statistical tests computed with a VMR-VTC project are internally stored in a VMP (and CMP) data structure. You may save/load a VMP file using the GUI or scripting commands. A single VMP file may contain an array of individual 3D data sets. VMP maps are stored in the resolution of VMR files (typically 1x1x1 mm voxels) whereas CMPs are stored in the resolution of VTC files (typically 3x3x3 mm voxels).

The binary VMP file contains a variable-length header followed by the data containing (statistical) values in 4 byte float format. To reduce the size of the data both on disk and in memory, only the subvolume containing data is stored. The subvolume is specified with three pairs of start/end values. The current version of VMP files is 3. Older versions are also described below.
 

VMP Header 

BYTESDATA TYPEDEFAULTDESCRIPTION
2short int3VersionNumber
4int1NrOfMaps (number of 3D maps)
<--- Begin of "m" loop over "NrOfMaps" maps --->
4int1TypeOfMap of sub-map "m" (all sub-maps should have same type at present)
4int NrOfLags - only stored if "TypeOf Map" = 3
4int DisplayMinLag - only stored if "TypeOf Map" = 3
4int DisplayMaxLag - only stored if "TypeOf Map" = 3
4int ShowCorrelationOrLag - only stored if "TypeOf Map" = 3
4int ClusterSizeThreshold for sub-map "m"
1byte EnableClusterSizeThreshold for sub-map "m"
4float Threshold for sub-map "m"
4float UpperThreshold (only used to determine color range)
4int1ShowValuesAboveUpperThreshold
4int0DF1 (degrees-of-freedom)
4int0DF2 (degrees-of-freedom)
4int0NrOfMaskVoxels (for p correction methods)
3byte

 

R, G and B part of color for positive values above threshold (positive min value)
3byte

 

R, G and B part of color for values at and above upper threshold (positive max value)
3byte

 

R, G and B part of color for negative values above threshold (negative min value)
3byte

 

R, G and B part of color for values at and above upper threshold (negative max value)
1byte0UseVMPColor - Use map-specific color ("1") or generic look-up table ("0")
4float1.0TransparentColorFactor - Blend map colors with anatomical background
N_Namebyte0MapName - Name of sub-map "m"
<--- End of "m" loop over "NrOfMaps" --->
4int256DimX of VMR from which VMP was saved
4int256DimY of VMR from which VMP was saved
4int256DimZ of VMR from which VMP was saved
4int57XStart (subvolume specification)
4int231XEnd (subvolume specification)
4int52YStart (subvolume specification)
4int172YEnd (subvolume specification)
4int59ZStart (subvolume specification)
4int197ZEnd (subvolume specification)
4int1Resolution (should be "1" at present)


Notes

A VMP file may contain any type of value, e.g. from both hypothesis- and data-driven analyses. For proper default settings for visualizaing VMP data structures, some values for "TypeOfMap" are reserved, i.e., 1 -> t-values, 2 -> correlation values, 3 -> cross-correlation values, 4 -> F-values, 11 -> percent signal change values, 12 -> ICA z values.

The "X/Y/Z Start/End" values indicate the relative position of the VMP subvolume within a 2563 VMR volume (see explanations below).

The "Resolution" value is defined with respect to the resolution of a VMR file. Typically, one VMR voxel has the resolution of 1 (Talairach) mm3. VMP files normally also have a resolution of 1. Other resolutions, i.e. 2 and 3 are possible but are not fully tested and are therefore not recommended. If a statistic has been computed from a VTC with a lower resolution (i.e. 3), the resulting map is interpolated to the standard VMR resolution automatically. If you want to store data in VTC resolution, you may want to use CMP files.


VMP Data

A VMP file contains DimN = NrOfMaps 3D data sets. Each data set contains a 3D representation of a (statistical) entity. Each data element (single value) is represented in float format (4 bytes per value). The data is organized in four loops:

DimN (NrOfMaps)

DimZ

DimY

DimX

The spatial dimensions can be computed from the header info as follows (Resolution should be "1" at present):

DimX = (XEnd - XStart + 1) / Resolution
DimY = (YEnd - YStart + 1) / Resolution
DimZ = (ZEnd - ZStart + 1) / Resolution

Note that the axes terminology follows the internal BrainVoyager format. The mapping to Talairach axes is as follows:

BV X front -> back = Y in Tal space
BV Y top -> bottom = Z in Tal space
BV Z left -> right = X in Tal space