The format of SMP files
 Details
 Category: File Formats
 Last Updated: 06 July 2021
 Published: 27 March 2018
 Hits: 2414
The format of SMP files
A surface map file or SMP file contains statistical results in a surfacebased format: For each vertex, one or more float values are stored representing statistical entities like correlation or F values. Statistical tests performed/loaded within a VMR project are internally stored in VMP format. These can be converted into a SMP by using the "Create SMP" function. This function "samples" the VMP at the positions of the vertices and attaches the sampled values to the respective vertices. The new multimap feature allows to superimpose an unrestricted number of SMPs. Each SMP can have its own color range (EnableSMPColor = 1) which is interpolated between the R, G, B values of the color for the map threshold (critical value) and the specified maximum statistical value. As an alternative (EnableSMPColor = 0), an SMP can also use the current overlay LUT. SMP colors can be rendered also transparently. As default they are rendered nontransparent (TransparentColorFactor = 1.0). If an SMP map shall be rendered transparently, set the TransparentColorFactor value between 0.0 and 1.0. the value 0.0 has a special meaning rendering a SMP map transparent with respect to the significance value at a vertex: If a statistical value at a vertex just reaches the critical threshold, it is rendered completely transparent (not visible), if the statistical value reaches or exceeds the maximum threshold, the vertex is rendered opaque; the transparency for statistical values between these two values is determined by linear interpolation.
The binary SMP file contains a variablelength header followed by the statistical data represented with 4 byte float values.
Latest update: 06072021
SMP header
version 25
BYTES

DATA TYPE

DEFAULT

DESCRIPTION

2

short int

3

version number (max: 5)

4

int


NrOfVertices (number of mesh vertices)

2

short int

1

NrOfMaps (number of stacked maps within SMP file)

N

byte


Name of SRF file originally used to create this SMP

Begin of loop over 'NrOfMaps' describing infos for each map


4

int

Maptype (t, F, correlation, crosscorrelation, etc)(*1)


4

int

NrOfLags (*4)


4

int

MinLag (*4)


4

int

MaxLag (*4)


4

int

CCOverlay (*4) (show overlay correlation or lag values)


4

int

ClusterSize


1

byte

1 
EnableClusterCheck (*3)

4

float

Statistical threshold, critical value


4

float

Statistical threshold, max value (*5)


4  int  IncludeValuesGreaterThreshMax (SMP version 4 or higher)  
4

int


DF1 (degrees of freedom, nominator if Ftest) (*2)

4

int

0

DF2 (degrees of freedom, denominator for Ftest) (*2)

4  int  PosNegFlag (SMP version 5 or higher)  
4

int

0 
Cortexbased Bonferroni correction value (*2)

3

byte

R, G and B component of color pos min (*3)


3

byte

R, G and B component of color pos max (*3)


3  byte  R, G and B component of color neg min (SMP version 4 or higher)  
3  byte  R, G and B component of color neg max (SMP version 4 or higher)  
1

byte

1 
EnableSMPColor (use SMPspecific colors or general LUT)

N  byte  Name for mapspecific LUT file (SMP version 5 or higher)  
4

float

1.0 
TransparentColorFactor for surface map (*3)

N_1

byte

Name of surface map


End of loop over 'NrOfMaps'

(*1) A SMP file may contain any statistic. For proper default settings, some values for MapType are reserved, i.e., 1 > tvalues, 2 > correlation values, 3 > crosscorrelation values, 4 > Fvalues, 11 > percent signal change values (QX 1.2 and higher); see below for more codes:
1: Tstatistic
21: mean diffusivity map
22: fractional anisotropy map
(*2) These values are currently not used in BrainVoyager. They will be used in future versions to compute pvalues based on the statistical values stored in the map (see *1). The cortexbased Bonferroni correction value is used to correct singlevoxel pvalues with respect to the number of functional data points (in a linked VTC) located around the cortical surface. The value is saved for each surface map but should be the same for all maps.
(*3) New entry introduced in file version 2.
(*4) Only used when maptype is crosscorrelation
(*5) The max threshold is currently NOT used to clip statistical values. It is only used to determine the color range: All statistical values beyond the max threshold will be colored using the corresponding max color value, but they are not hidden. Statistical values falling between the min and the max threshold will get a color corresponding to the relative position in the color scale.
SMP data
A SMP file contains NrOfMaps data sets. Each data set contains NrOfVertices 4 byte (float) values representing a statistical entity. The data is thus organized in two loops, the outer loop runs across the NrOfMaps and the inner loop across NrOfVertices.