Tutorial: Float16 Support

CryoSPARC v4.4 introduced support for saving particles and motion-corrected micrographs in float16 format, which retains fewer significant figures than the default setting (float32). This feature is off by default, but when turned on, reduces the size of the data produced by approximately half.

To save data in float16 format, look for a toggle parameter called “Save results in 16-bit floating point” in motion correction or extraction jobs, and enable it.

Float16 is used as an on-disk format only. Once loaded from disk, computations within CryoSPARC are performed using 32 bits of precision.

In principle, the reduction in significant figures has the potential to reduce reconstruction accuracy or detail. In practice, this is not expected to be a problem in most cases. The figures below compare FSC curves and an example of sharpened map quality between two separate homogeneous refinements with the same initial (ab-initio) volume, but different particle stacks (one extracted in float32, and one extracted in float16). FSCs are from Validation (FSC) jobs, where the same mask has been used in both cases (the mask from the float32 refinement). The float16 example comes after the float32 example. The protein is Apoferritin.

And here is a comparison between the two sharpened maps. The blue map was refined from float16 particles, the gray from float32

For more information on floating-point data representations, refer to the following wikipedia article: https://en.wikipedia.org/wiki/IEEE_754 or any other source that explains the IEEE 754 standard for floating point arithmetic and representation.

Last updated