Lesson 11 of 14 · 11 min
Assessing model quality: Ramachandran, clashes and MolProbity
A model's own confidence score tells you how sure the predictor is, not whether the structure obeys physical stereochemistry. Independent validation of geometry catches errors that confidence metrics are blind to. This lesson covers MolProbity's stereochemical checks plus accuracy metrics you can compute when an experimental reference exists.
Confidence versus geometry
The pLDDT score AlphaFold reports is a per-residue predicted lDDT-Ca, a learned estimate of backbone accuracy rather than a physics-based check. A residue can be predicted with pLDDT above 90 and still sit in a disallowed rotamer, clash with a neighbor in a tightly packed core, or fall outside the Ramachandran allowed region. Confidence also says nothing about clashes with other chains, ligands, or symmetry mates, so geometry must be validated separately.
Run MolProbity
# phenix.molprobity handles hydrogen addition (Reduce) internally
phenix.molprobity model.pdb
# Per-metric tools if you only need one number
phenix.ramalyze model.pdb # Ramachandran favored / allowed / outlier
phenix.clashscore model.pdb # all-atom clashes per 1000 atoms (needs H)
phenix.rotalyze model.pdb # sidechain rotamer outliers Ramachandran outliers = 0.00 %
favored = 98.42 %
Rotamer outliers = 0.86 %
C-beta deviations = 0
Clashscore = 2.71
RMS(bonds) = 0.0052
RMS(angles) = 0.83
MolProbity score = 1.06
Aim for Ramachandran favored above 98% with outliers near zero, rotamer outliers below 0.3%, and the lowest clashscore you can achieve. Clashscore counts all-atom steric overlaps of at least 0.4 A per 1000 atoms, so it needs hydrogens, and phenix.molprobity adds them with Reduce before running Probe. The MolProbity score rolls clashscore, rotamer, and Ramachandran outliers into one resolution-calibrated number where lower is better, and the Ramachandran plot shows exactly which phi/psi pairs fall outside the allowed contours.
Accuracy against a reference
# Global fold similarity: TM-score and RMSD over the aligned core
USalign model.pdb reference.pdb
# Superposition-free local accuracy in [0, 1]
lddt model.pdb reference.pdbAligned length= 148, RMSD= 1.42, Seq_ID=n_identical/n_aligned= 1.000
TM-score= 0.83147 (normalized by length of Structure_1: L=150, d0=4.56)
TM-score= 0.83147 (normalized by length of Structure_2: L=150, d0=4.56)
Global LDDT score: 0.8621
RMSD requires a global superposition and is dominated by the worst-fitting regions and by chain length, so a few bad loops inflate it. TM-score normalizes by length with the d0 scale to land in [0, 1], is robust to local errors, and above 0.5 indicates the same fold; report the value normalized by the reference (Structure_2) length. lDDT is superposition-free and scores how well local interatomic distances are preserved across the 0.5, 1, 2, and 4 A thresholds, which is the same score pLDDT is trained to estimate, with one caveat: pLDDT predicts the Ca-only lDDT, whereas the lddt call above reports the all-atom score unless you add -c to restrict it to Ca.
Try it yourself: Take an AlphaFold model such as AF-P00520-F1, or fold a sequence yourself, then upload the PDB to the MolProbity web server at molprobity.biochem.duke.edu or run phenix.molprobity locally. Read off the clashscore and Ramachandran outlier percentage, open the Ramachandran plot, and note which residues fall outside the allowed contours. Cross-check those residues against their pLDDT values stored in the B-factor column, and you will often find a confidently predicted residue that is still a stereochemical outlier.