FEI extended MRC format (not used by 2dx)

Communicated by Remco Schoenmakers, Developer Inspect3D at FEI, on Sept. 5, 2011

The extended MRC format for tomography

(as used by FEI; original definition of extended header by Dave Agard and Bram Koster)

The extended MRC format consists of three parts:

- the header (same as in the original MRC format definition)

- the extended header

- the data

The MRC file is in little-endian (PC) format (IMOD can handle this). If you need to swap to big-endian (UNIX or Mac), all data must be swapped according to their data format. Be aware that you cannot swap floating point values by putting them into floating point variables (either the input or swap may crash because it is not a valid floating point value). Use arrays of byte or pointers to do the swap. A simple test for little-endian or big-endian is to read the first value of the header (4-byte integer nx). If this value is < 0 or > 10000 the file format is the reverse of what your system is using.

The MRC header

Most of the values of the MRC header are not used. The important ones are explained in the table below.

The extended header

The extended header contains the information about a maximum of 1024 images. Each section is 128 bytes long. The extended header is thus 1024 * 128 bytes (always the same length, regardless of how many images are present.