Bug: MRC Extended header read as part of micrograph


I noticed that when I imported some .mrc files generated by EPU (ceta-16M camera, single micrographs), there was a black bar at the bottom of every micrograph. More closer look also revealed that the last line actually had some textures.

After some checking of the mrc files, it turned out that EPU had written a 786432-byte extended header in these files. ( Clearly EPU didn’t comply with the 80-byte block rule for the extended header http://www.ccpem.ac.uk/mrc_format/mrc2014.php. But this is not the issue here. )

These .mrc files are in mode 6: int16, so each pixel takes 2 bytes. The camera frame size is 4096x4096.

786432/4096/2 =96. And yes, those black bars would be 96 lines wide in 4096x4096 images (24 lines in the 1024x1024 previews shown by cryoSPARC). Therefore it seems that cryoSPARC does not handle the NSYMBT number (word 24, bytes 93-96 in the MRC header) at all.

I then got worried about the movies that had been imported into cryoSPARC2. Luckily, my mrc files from Falcon camera do not have extended header. Judging by the fact that no one had ever complained about shifted frames, I guess EPU had never inserted extended header into movie MRC files (or maybe cryoSPARC treated movies differently).

Let me know if you want some example .mrc files. These files are 32MB each.


Hi @ZhijieLi,

It would be useful to get some example data (I will email you). We haven’t seen extended headers before and I don’t think our MRC reading functions even check the NSYMBT number.