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
BYTES | DATA TYPE | DEFAULT | DESCRIPTION |
2 | short int | 3 | VersionNumber |
4 | int | 1 | NrOfMaps (number of 3D maps) |
<--- Begin of "m" loop over "NrOfMaps" maps ---> | |||
4 | int | 1 | TypeOfMap of sub-map "m" (all sub-maps should have same type at present) |
4 | int | NrOfLags - only stored if "TypeOf Map" = 3 | |
4 | int | DisplayMinLag - only stored if "TypeOf Map" = 3 | |
4 | int | DisplayMaxLag - only stored if "TypeOf Map" = 3 | |
4 | int | ShowCorrelationOrLag - only stored if "TypeOf Map" = 3 | |
4 | int | ClusterSizeThreshold for sub-map "m" | |
1 | byte | EnableClusterSizeThreshold for sub-map "m" | |
4 | float | Threshold for sub-map "m" | |
4 | float | UpperThreshold (only used to determine color range) | |
4 | int | 1 | ShowValuesAboveUpperThreshold |
4 | int | 0 | DF1 (degrees-of-freedom) |
4 | int | 0 | DF2 (degrees-of-freedom) |
4 | int | 0 | NrOfMaskVoxels (for p correction methods) |
3 | byte |
| R, G and B part of color for positive values above threshold (positive min value) |
3 | byte |
| R, G and B part of color for values at and above upper threshold (positive max value) |
3 | byte |
| R, G and B part of color for negative values above threshold (negative min value) |
3 | byte |
| R, G and B part of color for values at and above upper threshold (negative max value) |
1 | byte | 0 | UseVMPColor - Use map-specific color ("1") or generic look-up table ("0") |
4 | float | 1.0 | TransparentColorFactor - Blend map colors with anatomical background |
N_Name | byte | 0 | MapName - Name of sub-map "m" |
<--- End of "m" loop over "NrOfMaps" ---> | |||
4 | int | 256 | DimX of VMR from which VMP was saved |
4 | int | 256 | DimY of VMR from which VMP was saved |
4 | int | 256 | DimZ of VMR from which VMP was saved |
4 | int | 57 | XStart (subvolume specification) |
4 | int | 231 | XEnd (subvolume specification) |
4 | int | 52 | YStart (subvolume specification) |
4 | int | 172 | YEnd (subvolume specification) |
4 | int | 59 | ZStart (subvolume specification) |
4 | int | 197 | ZEnd (subvolume specification) |
4 | int | 1 | Resolution (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