Install & Compatibility
Where this runs
tested against v2.11 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.094s · 20.5MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 3.4s · import 0.092s · 21MB
19MB installed
● package 19MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
System
✓ from ihm import System
Assembly
✓ from ihm import Assembly
Model
✓ from ihm.model import Model
Restraint
✓ from ihm.restraint import Restraint
mmCIF writer
✓ from ihm.format import CifWriter
Minimal example: create a system with one protein entity, an asym unit, and an assembly, then write a mmCIF file.
import ihm
import ihm.location
import ihm.model
import ihm.restraint
# Create a minimal IHM system
system = ihm.System()
# Add a protein entity
entity = ihm.Entity()
entity.description = "My protein"
entity.sequence = "MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHG"
system.entities.append(entity)
# Add an asym unit
asym = ihm.AsymUnit(entity=entity, details="Chain A")
system.asym_units.append(asym)
# Create an assembly
assembly = ihm.Assembly()
assembly.append(asym)
# Write a mmCIF string
from io import StringIO
from ihm.format import CifWriter
out = StringIO()
writer = CifWriter(out)
writer.write(system)
print(out.getvalue()[:500])
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'ihm'
Library not installed.
fixRun 'pip install ihm'.
ModuleNotFoundError: No module named 'msgpack'
msgpack not installed, required for BinaryCIF support.
fixRun 'pip install msgpack' or 'pip install ihm[bcif]'.
AttributeError: module 'ihm' has no attribute 'CifWriter'
Incorrect import path; CifWriter is in ihm.format.
fixUse 'from ihm.format import CifWriter'.
ValueError: invalid character in entity sequence
Entity sequence contains invalid characters (only standard amino acid codes allowed).
fixCheck sequence for non-standard characters; use 'X' or 'O' for non-standard as needed.
Upgrade
Version history
2.11latest on PyPI · released Jun 5, 2026
Audit
Dependencies
msgpackoptionalUsed for BinaryCIF encoding/decoding.