open-bcif is a high-performance, streaming-capable toolkit for manipulating and validating BinaryCIF (BCIF) files. Designed for structural biology data at scale, it provides a "Swiss Army Knife" CLI that can handle GB-scale files efficiently without loading them entirely into memory.
- Modern Data Standards: As the PDB moves to BinaryCIF,
open-bcifensures you can handle GB-scale structural data without the memory overhead of legacy formats. - Scientific Validation: Includes strict validation of column data types and dictionary compliance.
- Blazing Fast: Built in Rust for maximum throughput, utilizing zero-copy parsing and MessagePack optimization.
- Memory Efficient: Uses a streaming architecture that can process massive structural biological data on commodity hardware.
- Validate: Check the structural integrity and encoding of BCIF files.
- Split: Break large BCIF files into smaller chunks by DataBlock or Category.
- Merge: Combine multiple BCIF files into a single optimized stream.
- Convert: High-speed conversion between BCIF and other formats (e.g., text CIF).
- Streaming Engine: Built on a reactive streaming architecture to minimize memory footprint.
If you have Rust installed, you can install open-bcif directly from crates.io:
cargo install open-bcifDownload the latest pre-compiled binaries for Linux, macOS, and Windows from the GitHub Releases page.
- Download the binary for your platform.
- Make it executable (Linux/macOS):
chmod +x open-bcif-* - Move it to your PATH (e.g.,
/usr/local/bin).
git clone https://github.com/elkins/open-bcif.git
cd open-bcif
cargo install --path .open-bcif validate structure.bcifopen-bcif split large_entry.bcif --output-dir ./partsopen-bcif merge part1.bcif part2.bcif --output merged.bcifopen-bcif is written in Rust for maximum performance and memory safety. It utilizes a custom streaming MessagePack parser to traverse the BCIF hierarchy (DataBlock -> Category -> Column) incrementally.
For more details, see the Documentation.
If you use open-bcif in your research, please cite it as:
@software{elkins2026openbcif,
author = {Elkins, George},
title = {open-bcif: High-performance streaming toolkit for BinaryCIF},
year = {2026},
url = {https://github.com/elkins/open-bcif},
version = {0.1.1}
}This project is licensed under the MIT License - see the LICENSE file for details.