omics.co.in logo omics.co.in

Chapter 1: Protein 3D Architecture, Coordinate Formats & PDB/mmCIF

Chapter 1: Protein 3D Architecture, Coordinate Formats & PDB/mmCIF

Proteins are linear polymers of amino acids that fold into intricate three-dimensional conformations to execute biological functions. Understanding the stereochemical rules governing protein backbones and the structural file formats used to represent atomic coordinates is the bedrock of structural bioinformatics.

The Peptide Bond & Ramachandran Principles

Due to resonance between the carbonyl oxygen and nitrogen, the peptide bond possesses ~40% double-bond character, making it planar and rigid. Conformation is dictated by rotations around two single bonds per residue:

  • Phi (\(\phi\)): Rotation around the \(N - C_\alpha\) bond.
  • Psi (\(\psi\)): Rotation around the \(C_\alpha - C\) carbonyl bond.

Steric hindrance restricts \(\phi\) and \(\psi\) to favored regions plotted on the Ramachandran diagram: \(\alpha\)-helices (\(\phi \approx -57^\circ, \psi \approx -47^\circ\)) and \(\beta\)-sheets (\(\phi \approx -120^\circ, \psi \approx +120^\circ\)).

1. PDB vs. mmCIF: The Evolution of Coordinate Formats

For decades, the standard was the fixed-column PDB format. However, PDB had strict limitations: maximum 99,999 atoms (columns 7–11) and 62 chain identifiers. Large complexes like the eukaryotic ribosome or human nuclear pore complex exceed these limits.

The Worldwide Protein Data Bank (wwPDB) now mandates the macromolecular Crystallographic Information Framework (mmCIF) format, which uses flexible key-value tag syntax (e.g. _atom_site.*) supporting unlimited atoms, chains, and metadata.

# Inspecting atomic coordinates in mmCIF format:
# _atom_site.group_PDB
# _atom_site.id
# _atom_site.type_symbol
# _atom_site.label_atom_id
# _atom_site.label_comp_id
# _atom_site.label_asym_id
# _atom_site.label_seq_id
# _atom_site.Cartn_x
# _atom_site.Cartn_y
# _atom_site.Cartn_z
# _atom_site.occupancy
# _atom_site.B_iso_or_equiv
ATOM   1  N  N   MET A 1  -10.450  14.210   3.840  1.00 24.50
ATOM   2  C  CA  MET A 1   -9.120  13.650   4.210  1.00 22.10
ATOM   3  C  C   MET A 1   -8.230  14.710   4.880  1.00 19.80
ATOM   4  O  O   MET A 1   -8.650  15.860   5.120  1.00 21.30

2. Parsing Coordinates with BioPython PDB / MMCIFParser

from Bio.PDB import MMCIFParser, NeighborSearch

# Parse mmCIF structure
parser = MMCIFParser(QUIET=True)
structure = parser.get_structure("7k3g", "7k3g.cif")

# Navigate the SMCRA hierarchy: Structure -> Model -> Chain -> Residue -> Atom
for model in structure:
    for chain in model:
        print(f"Chain {chain.id}: {len(chain)} residues")
        for residue in chain:
            if residue.has_id("CA"):
                ca_atom = residue["CA"]
                coords = ca_atom.get_coord() # [x, y, z] numpy array
                b_factor = ca_atom.get_bfactor()
← Return to Home Hub Scroll to Top ↑