Communicated by Remco Schoenmakers, Developer Inspect3D at FEI, on Sept. 5, 2011
(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.
Most of the values of the MRC header are not used. The important ones are explained in the table below.