mmcif
mmCIF Core Access Library
What it is and what it does
mmcif is a Python library that wraps the PDB C++ Core mmCIF Library with pybind11, offering both native Python APIs and compiled bindings for reading and manipulating mmCIF data files and dictionaries. It is used primarily in structural biology and crystallography workflows to access macromolecular structure data in the standardized mmCIF format.
The package includes a command-line tool, `build_dict_cli`, that preprocesses and combines modular mmCIF dictionaries by resolving include directives. It depends on requests and msgpack for runtime operations. The library supports Python 3.8 through 3.14 and is actively maintained with no known security vulnerabilities.
Use it for:
- Parse and read PDB structure files in mmCIF format for structural biology analysis and visualization.
- Combine multiple mmCIF dictionary extensions into a single comprehensive dictionary using the build_dict_cli tool.
- Access and query macromolecular structure metadata and atom coordinate data programmatically.
- Integrate mmCIF data handling into bioinformatics pipelines and structural analysis workflows.
- Retrieve and validate dictionary versions for data format compliance and compatibility checking.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides native Python and C++ bindings to parse, read, and manipulate mmCIF (macromolecular Crystallographic Information File) data structures and dictionaries.
Yes, if you work with crystallographic or structural biology data in mmCIF format. The package is stable (Production/Stable status), actively maintained, has no known vulnerabilities, and offers both Python and C++ APIs. Medium install friction due to compiled bindings is offset by pre-built wheels for common platforms. The Apache-2.0 license is permissive and suitable for most projects.
Install
mmcif on PyPI
pip
pip install mmcifuv
uv add mmcifpoetry
poetry add mmcifInstalling mmcif
Before you install
Medium install friction due to compiled C++ bindings, but wheels are available for Python 3.8–3.14 on macOS and Linux. Repository is actively maintained with a recent release and no known vulnerabilities.
License in practice
Apache-2.0 permissive license allows free use, modification, and distribution in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install mmcif
import mmcif.api
reader = mmcif.api.PdbxReader()
reader.read('structure.cif')
Requires a compiled C++ library; pre-built wheels are available for common platforms and Python versions, but building from source requires GCC/G++ > 4.8.5 or clang-900.0.39.2 or later.
Verify before relying
- Whether the package provides high-level APIs for common tasks (e.g., querying atom coordinates, extracting metadata) beyond low-level file parsing.
- Performance characteristics when working with large mmCIF files or dictionaries.
- Whether the C++ bindings are thread-safe or have concurrency limitations.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — requests, msgpack |
| Maintenance | actively maintained — 111 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,498,562/month — #3,830 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mmcif-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl; mmcif-1.1.1-cp310-cp310-macosx_11_0_arm64.whl; mmcif-1.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl; mmcif-1.1.1-cp311-cp311-macosx_11_0_arm64.whl; mmcif-1.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp312-cp312-macosx_10_13_x86_64.whl; mmcif-1.1.1-cp312-cp312-macosx_11_0_arm64.whl; mmcif-1.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl; mmcif-1.1.1-cp313-cp313-macosx_11_0_arm64.whl; mmcif-1.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp314-cp314-macosx_10_15_x86_64.whl; mmcif-1.1.1-cp314-cp314-macosx_11_0_arm64.whl; mmcif-1.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp314-cp314t-macosx_10_15_x86_64.whl; mmcif-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl; mmcif-1.1.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; mmcif-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl; mmcif-1.1.1-cp38-cp38-macosx_11_0_arm64.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
gemmiGemmi is a C++ library with Python bindings for…
copyleft · top 5,000 on PyPI
mmcif-pdbxProvides a pure Python interface to read,…
permissive · top 15,000 on PyPI
mmtf-pythonDecodes and encodes the macromolecular…
permissive · top 15,000 on PyPI
ihmReads and writes mmCIF and BinaryCIF files…
permissive · top 15,000 on PyPI
modelcifReads and writes mmCIF and BinaryCIF files…
permissive · top 15,000 on PyPI
pymatreaderReads MATLAB .mat files in both legacy and…
permissive · top 15,000 on PyPI
pdb2pqrPDB2PQR prepares protein structures from PDB…
permissive · top 15,000 on PyPI
mrcfilemrcfile reads and writes MRC2014 format files…
permissive · top 15,000 on PyPI
spglibspglib provides Python bindings to a C library…
permissive · top 5,000 on PyPI
moyopyMoyopy is a Python binding for Moyo, a crystal…
permissive · top 15,000 on PyPI