Annotated CIF#
An annotated CIF is an ordinary mmCIF with extra columns. The usual columns hold the structure, so chains, residues, atoms and coordinates. The extra ones hold what you want the model to do with each atom: Hold this one still. Keep that residue’s identity. Treat this one as a hotspot.
Both live in the same file, so nothing gets converted and nothing gets rebuilt. What you see is what the model gets.
This example fixes two things and designs everything else. C_CRD pins the backbone CA of the
first glycine and the OG tip atom of the serine, so those two atoms land where you put them.
C_SEQ reveals the serine, so the model knows that residue has to be a serine rather than
whatever fits. Everything else is open: the alanine, the second chain, and every atom without a
marked cell. That is a motif of one anchored residue and one catalytic tip, scaffolded by the
model.
Notice the two rows work at different granularities, and that is the whole point. Coordinates are
per atom, which is what lets you pin one tip atom and leave the rest of its residue free. Identity
is per residue, all or nothing. Anything unset falls back to NaN coordinates and UNK identity,
and that is exactly what the model designs.
Prefer to learn by doing? The Python API tutorial builds a pocket-conditioned input step by step and ends with an interactive view of exactly what each annotation fixed.
Why annotated CIFs#
An annotated CIF is an ordinary structure file that also carries the conditions. They sit next to the atoms they apply to, so the model reads one file and there is no second config to keep in sync. Use an annotated CIF when the design depends on explicit component chemistry or conditions that should be inspected and edited alongside the structure.
Three details deserve particular attention for non-canonicals, PTMs and small molecules.
Bonds. Confirm bond order, aromaticity, and explicit covalent or metal coordination bonds. The model uses all of them as features.
Charges. Confirm formal charge rather than treating an unknown value as neutral. The model embeds formal charge per atom.
PTMs and non-canonicals. Preserve the atoms, bonds, charges, and component identity that define the modification.
An annotated CIF preserves all three, and the model reads CIFs natively.
The
rfd4-proteina-annotated-cifskill authors directly from prose, structures, or an existing annotated CIF.
It’s still a CIF#
The annotations are extra columns and categories layered onto a standard mmCIF; the coordinates and
topology underneath are ordinary mmCIF. That means any tool that reads mmCIF, PyMOL included, opens
an annotated CIF and sees a normal structure. It just will not show you the conditioning, because
that lives in categories those tools don’t know to look at. To inspect or edit the annotations
themselves, parse the file with ANNOTATED_CIF through the Python API, or use the
rfd4-proteina-annotated-cif skill.
Where to go next#
Task |
Page |
|---|---|
Build one from scratch, or combine conditions into a motif problem |
|
Look up every condition and its CIF column |
|
Understand why conditions behave the way they do (active masks, coupled conditions, charges and bonds) |
|
Describe a design problem as data instead of Python |
|
Have an agent author or edit one from prose or an existing structure |
|
Work through a full example end to end |
