BinaryCIF is a data format that stores text based CIF files using a more efficient binary encoding. It enables both lossless and lossy compression of the original CIF file. BinaryCIF is currently mainly used by RCSB PDB and PDBe and is supported by the Mol* and LiteMol viewers.
Some aspects of the BinaryCIF format, namely using MessagePack as the container and the usage the fixed point, run length, delta, and integer packing encodings was inspired by the MMTF data format.
BinaryCIF is currently available as TypeScript (JavaScript), Java, and Python.
- TypeScript implementation is part of the Mol* project (the original implementation of the BinaryCIF format is the CIFTools.js library).
- Mol* ciftools are available as a standalone library/tools for conversion of text CIF to BinaryCIF.
- Java implementation is available at rcsb/ciftools-java.
- Python implementations:
- rcsb/py-mmcif and higher level library wrapping the same package: rcsb/py-rcsb_utils_io
- Biotite since version
0.40.0
(see release notes)
BinaryCIF is supported by the CoordinateServer, a web service for delivering subsets of 3D macromolecular data stored in the mmCIF format.
The server can return data both in the text and binary version of the CIF format, with the binary representation being a lot more efficient (see the benchmark).
BinaryCIF is supported by the DensityServer, a web service for accessing subsets of volumetric density data, that automatically downsamples the data depending on the volume of the requested region to reduce the bandwidth requirements and provide near-instant access to even the largest data sets.
Just open an issue or make a pull request. All contributions are welcome.
Funding sources include but are not limited to:
- RCSB PDB funding by a grant [DBI-1338415; PI: SK Burley] from the NSF, the NIH, and the US DoE
- PDBe, EMBL-EBI
- CEITEC