The MRC file format used by IMOD. The MRC header. length 1024 bytes SIZE DATA NAME Description 4 int nx; Number of Columns 4 int ny; Number of Rows 4 int nz; Number of Sections. 4 int mode; Types of pixel in image. Values used by IMOD: 0 = unsigned bytes, 1 = signed short integers (16 bits), 2 = float, 3 = short * 2, (used for complex data) 4 = float * 2, (used for complex data) 6 = unsigned 16-bit integers (non-standard) 16 = unsigned char * 3 (for rgb data, non-standard) 4 int nxstart; Starting point of sub image. 4 int nystart; 4 int nzstart; 4 int mx; Grid size in X, Y, and Z 4 int my; 4 int mz; 4 float xlen; Cell size; pixel spacing = xlen/mx 4 float ylen; 4 float zlen; 4 float alpha; cell angles 4 float beta; 4 float gamma; Ignored by imod. 4 int mapc; map column 1=x,2=y,3=z. 4 int mapr; map row 1=x,2=y,3=z. 4 int maps; map section 1=x,2=y,3=z. These need to be set for proper scaling of non byte data. 4 float amin; Minimum pixel value. 4 float amax; Maximum pixel value. 4 float amean; Mean pixel value. 2 short ispg; image type 2 short nsymbt; space group number 4 int next; number of bytes in extended header 2 short creatid; Creator ID 30 --- extra data (not used) These two values specify the structure of data in the extended header; their meaning depend on whether the extended header has the Agard format, a series of 4-byte integers then real numbers, or has data produced by SerialEM, a series of short integers. SerialEM stores a float as two shorts, s1 and s2, by: value = (sign of s1)*(|s1|*256 + (|s2| modulo 256)) * 2**((sign of s2) * (|s2|/256)) 2 short nint; Number of integers per section (Agard format) or number of bytes per section (SerialEM format) 2 short nreal; Number of reals per section (Agard format) or flags for which types of short data (SerialEM format): 1 = tilt angle * 100 (2 bytes) 2 = piece coordinates for montage (6 bytes) 4 = Stage position * 25 (4 bytes) 8 = Magnification / 100 (2 bytes) 16 = Intensity * 25000 (2 bytes) 32 = Exposure dose in e-/A2, a float in 4 bytes 128, 512: Reserved for 4-byte items 64, 256, 1024: Reserved for 2-byte items If the number of bytes implied by these flags does not add up to the value in nint, then nint and nreal are interpreted as ints and reals per section 28 --- extra data (not used) Explanation of type of data. 2 short idtype; ( 0 = mono, 1 = tilt, 2 = tilts, 3 = lina, 4 = lins) 2 short lens; 2 short nd1; for idtype = 1, nd1 = axis (1, 2, or 3) 2 short nd2; 2 short vd1; vd1 = 100. * tilt increment 2 short vd2; vd2 = 100. * starting angle Used to rotate model to match new rotated image. 24 float tiltangles[6]; 0,1,2 = original: 3,4,5 = current OLD-STYLE MRC HEADER - IMOD 2.6.19 and below: 2 short nwave; # of wavelengths and values 2 short wave1; 2 short wave2; 2 short wave3; 2 short wave4; 2 short wave5; 4 float zorg; Origin of image. Used to auto translate model 4 float xorg; to match a new image that has been translated. 4 float yorg; NEW-STYLE MRC image2000 HEADER - IMOD 2.6.20 and above: 4 float xorg; Origin of image. Used to auto translate model 4 float yorg; to match a new image that has been translated. 4 float zorg; 4 char cmap; Contains "MAP " 4 char stamp; First byte has 17 for big- or 68 for little-endian 4 float rms; ALL HEADERS: 4 int nlabl; Number of labels with useful data. 800 char[10][80] 10 labels of 80 charactors. ------------------------------------------------------------------------ Total size of header is 1024 bytes plus the size of the extended header. Image data follows with the origin in the lower left corner, looking down on the volume. The size of the image is nx * ny * nz * (mode data size).