Phi and Psi Dihedral Angles Explained (and How They Make a Ramachandran Plot)
By Dr. Zubair Khalid, DVM, MS, PhD ·

Every protein backbone is a chain of single bonds that can rotate, and two of those rotations per residue are named phi and psi. Those two angles set the local shape of the chain: whether a segment coils into an alpha helix, extends into a beta strand, or turns back on itself. Because the peptide bond between residues is rigid and nearly planar, the whole conformational freedom of the main chain reduces to a pair of numbers per residue.
You will meet phi and psi in structural biology coursework, in PDB validation reports, and in any pipeline that checks a model before deposition. They are also the axes of the Ramachandran plot, the standard diagnostic for backbone geometry. This article defines the angles, shows how to compute them by hand and with Biopython, and explains what the resulting numbers do and do not tell you.
Quick Answer
- A torsion (dihedral) angle for four atoms A-B-C-D is the angle between the projection of bond A-B and the projection of bond C-D onto a plane perpendicular to the central bond B-C [2].
- phi (φ) is the torsion angle about the N-Cα bond, defined by atoms C(i-1), N(i), Cα(i), C(i). psi (ψ) is the torsion angle about the Cα-C bond, defined by atoms N(i), Cα(i), C(i), N(i+1) [3].
- Angles are reported from -180 to +180 degrees, not 0 to 360 [2]. Viewed along the central bond, the angle is positive if the front bond must rotate clockwise to eclipse the rear bond, and negative if it must rotate counterclockwise [2].
- Each torsion angle is zero when the main-chain atoms are eclipsed (cis), and a fully extended chain has phi = psi = omega = 180 degrees [3].
- The peptide bond (omega, ω) is restricted to values near 0 or 180 degrees by its partial double-bond character and is almost always near 180 degrees (trans), so phi and psi are the two backbone angles that actually vary from residue to residue [3][4].
- Plot phi on the x-axis and psi on the y-axis for every residue and you get a Ramachandran plot, whose allowed regions correspond to sterically permitted combinations [5][4].
Definitions and Intuition
Start with the geometry. Four atoms in a chain, A-B-C-D, define one torsion angle. Look down the central bond B-C. The bond A-B and the bond C-D each project onto a plane perpendicular to B-C, and the angle between those two projections is the torsion angle [2]. The IUPAC-IUB rules treat "dihedral angle" and "internal rotation angle" as alternative names for the same quantity [2], which is why you see all three terms in the literature.
The sign convention trips people up, so state it carefully. Viewed along the central bond, the angle is positive if the bond to the front atom must rotate clockwise (to the right) to eclipse the bond to the rear atom, and negative if it must rotate counterclockwise. The sign is the same from whichever end the system is viewed [2]. That last point matters: you do not get a sign flip by reading the atom list backward.
Now apply this to a polypeptide. The backbone repeats as N-Cα-C-N-Cα-C, and rotation is possible about the N-Cα bond and the Cα-C bond. The peptide C-N bond is a special case. Its length is typically 1.32 Angstrom, between a C-N single bond (1.49 Angstrom) and a C=N double bond (1.27 Angstrom), which reflects partial double-bond character [4]. That partial double bond keeps the peptide unit essentially planar: the Cα and CO of one residue and the NH and Cα of the next lie in one plane [4]. Rotation about it is therefore restricted.
The three angles follow directly:
- phi(i) is the torsion angle about N(i)-Cα(i), defined by C(i-1), N(i), Cα(i), C(i) [3].
- psi(i) is the torsion angle about Cα(i)-C(i), defined by N(i), Cα(i), C(i), N(i+1) [3].
- omega(i) is the torsion angle about the peptide C-N bond between residues i and i+1, defined by Cα(i), C(i), N(i+1), Cα(i+1) [3].
Each angle is zero when the main-chain atoms are eclipsed (cis), and a fully extended chain has phi = psi = omega = 180 degrees [3]. Because of the partial double bond, omega normally takes values only near 0 or 180 degrees, and the trans value near 180 degrees is what is generally found [3]. Almost all peptide bonds in proteins are trans because steric clashes between groups on adjacent alpha carbons hinder the cis form [4]. The most common exception is X-Pro linkages, where proline's nitrogen is bonded to two tetrahedral carbons, shrinking the steric difference between cis and trans [4].
With omega pinned near 180 degrees, phi and psi carry the conformational information. That is the entire logic behind the Ramachandran plot.
How to Calculate a Dihedral Angle
The standard formula takes four points p1, p2, p3, p4 and builds three bond vectors:
$$ b_1 = p_2 - p_1, \quad b_2 = p_3 - p_2, \quad b_3 = p_4 - p_3 $$
Here p1 through p4 are the Cartesian coordinates of the four atoms in order, and b1, b2, b3 are the vectors along the three consecutive bonds. The central bond is b2. Two normal vectors then define the planes on either side of it:
$$ n_1 = b_1 \times b_2, \quad n_2 = b_2 \times b_3 $$
The cross product b1 × b2 is perpendicular to the plane containing the first two bonds, and b2 × b3 is perpendicular to the plane containing the last two. The dihedral angle is the angle between these two planes, computed with a two-argument arctangent so the sign comes out correctly:
$$ \theta = \operatorname{atan2}\left(|b_2|\,(b_1 \cdot n_2),\; n_1 \cdot n_2\right) $$
The dot product n1 · n2 gives the cosine-like term, and the triple-product term |b2|(b1 · n2) gives the sine-like term scaled by the length of the central bond. Using atan2 instead of a plain arccosine preserves the sign and avoids the ambiguity near 0 and 180 degrees. Convert radians to degrees if you want the conventional units.
A toy check confirms the convention. Points (1,0,0), (0,0,0), (0,1,0), (0,1,1) give -90.0 degrees. Replacing the last point with (-1,1,0) gives 180.0 degrees (trans), and with (1,1,0) gives 0.0 degrees (cis).
To compute phi, psi and omega for a residue, plug in the right atom quadruples: phi(i) uses C(i-1), N(i), Cα(i), C(i); psi(i) uses N(i), Cα(i), C(i), N(i+1); omega(i) uses Cα(i), C(i), N(i+1), Cα(i+1). The first residue of a chain has no phi because there is no preceding C atom, and the last residue has no psi because there is no following N atom.
Worked Example
Take ubiquitin, PDB entry 1UBQ, a 1.8 Angstrom X-ray structure [8]. Download the file from https://files.rcsb.org/download/1UBQ.pdb.
Method A uses Biopython. Parse the structure, take chain A, build peptides, and call get_phi_psi_list(), which returns radians; convert with math.degrees. Method B computes the same values by hand with the formula above. Both agree to 0.1 degree.
Selected results, in degrees as phi/psi:
| Residue | phi | psi |
|---|---|---|
| Gln2 | -91.0 | 138.3 |
| Ile3 | -131.1 | 163.0 |
| Gly10 | 77.4 | 16.5 |
| Glu24 | -57.6 | -40.5 |
| Asn25 | -65.5 | -44.4 |
| Val26 | -58.4 | -46.4 |
| Ile30 | -70.0 | -39.6 |
| Leu43 | -103.6 | 130.2 |
| Ile44 | -122.1 | 131.8 |
| Gly47 | 61.7 | 21.6 |
| Lys48 | -115.1 | 142.7 |
| Thr66 | -119.2 | 126.7 |
| Leu67 | -103.1 | 154.6 |
Read the pattern. Helix residues 24 through 33 have a mean of -65.2 and -39.9 degrees, close to the IUPAC alpha helix values of -57 and -47 [3]. Strand residues have a mean of -110.7 and 136.0 degrees over 22 DSSP strand residues, in the same region as the IUPAC parallel pleated sheet values of -119 and +113 and the antiparallel values of -139 and +135 [3].
The outliers are informative. Every residue with a positive phi is a glycine: Gly10 (77.4, 16.5), Gly35 (81.2, 5.3), Gly47 (61.7, 21.6) and Gly75 (120.4, 125.6). Those regions are rarely seen for non-glycine residues. The prolines sit near -55 to -57 degrees in phi: Pro19 (-54.9, -24.5), Pro37 (-57.0, 137.0), Pro38 (-57.2, -32.2), reflecting the ring that ties phi down.
Omega behaves as expected. All 75 peptide bonds in 1UBQ are trans, with |omega| ranging from 172.1 to 180 degrees and a mean of 177.6, so none are cis. The chain termini show the expected gaps: Met1 has psi 149.6 only, and Gly76 has phi 174.2 only.
How to Read a Ramachandran Plot
Plot phi on the x-axis and psi on the y-axis, one point per residue, and you have the map that Ramachandran, Ramakrishnan and Sasisekharan introduced in their 1963 analysis of polypeptide stereochemistry [5]. The plot is named after that work. Three quarters of the possible (phi, psi) combinations are excluded simply by local steric clashes [4], which is why the populated regions are islands, not a full square.
The modern reference comes from Lovell et al., who built an updated phi-psi distribution from 81,234 non-Gly, non-Pro, non-prePro residues with B-factor below 30, drawn from 500 high-resolution proteins. That dataset gives sharp boundaries between favored, allowed and empty regions [6]. They also defined separate favored and allowed regions for glycine, proline and pre-proline residues, because those three cases have different steric constraints [6]. Glycine phi-psi angles are more permissive but less accurately determined [6].
Two structural facts explain the special cases. Proline lacks a backbone NH group, which is why it tends to disrupt both alpha helices and beta strands [7]. Glycine, with only a hydrogen as its side chain, readily fits into all structures and is well suited to reverse turns [7].
When you interpret a plot, remember what a point means. A residue in a favored region has backbone angles consistent with well-observed geometry. A residue in an outlier region is not automatically wrong, but it needs an explanation: a glycine, a strained active site, or a modeling error. Lovell et al. noted that the gamma-turn conformation near phi +75, psi -60 occurs in well-ordered parts of good structures even though older validation programs counted it as forbidden [6]. They direct users to the MolProbity service to run these phi-psi and C-beta evaluations on an uploaded structure [6]. If you want to inspect the geometry directly, the site's Protein Structure Viewer is a quick way to load a PDB file and look at the backbone.
Phi, Psi, Omega and the Things They Get Confused With
The most common mix-up is treating omega like a third variable angle. It is not. The peptide bond is essentially planar [4], and omega normally takes values only near 0 or 180 degrees [3]. If you see an omega far from either value, suspect a modeling problem or a genuinely strained linkage, not a normal conformational state.
The second mix-up is confusing torsion angles with bond angles. A bond angle involves three atoms and describes how two bonds meet at a central atom. A torsion angle involves four atoms and describes rotation about the central bond. They are different quantities with different units of meaning, even though both are reported in degrees.
The third is sign convention drift. The 1970 IUPAC-IUB convention differs from the earlier Edsall et al. (1966) convention by 180 degrees, and old values convert by adding or subtracting 180 degrees [3]. If you are comparing against a paper from the 1960s, check which convention it used before you conclude that a structure is unusual.
Finally, do not confuse the Ramachandran plot with a validation score. The plot shows where each residue falls in phi-psi space. Validation combines that with other geometry checks. The site's guide on how to read a Ramachandran plot covers the scoring side in detail.
Common Mistakes
- Reporting angles on a 0 to 360 scale. Torsion angles are reported from -180 to +180 degrees [2]. A value of 350 degrees should be written as -10 degrees.
- Flipping the sign by reversing the atom order. The sign is the same from whichever end the system is viewed [2]. If your calculation gives the opposite sign from a reference, check the atom quadruple, not the viewing direction.
- Assuming cis peptide bonds are common. Almost all peptide bonds in proteins are trans because steric clashes between groups on adjacent alpha carbons hinder the cis form [4]. The main exception is X-Pro linkages [4].
- Treating every Ramachandran outlier as an error. Glycine and proline have their own favored and allowed regions [6], and some conformations counted as forbidden by older programs occur in well-ordered structures [6].
- Forgetting that terminal residues lack one angle. The first residue has no phi and the last has no psi. Reporting a phi for residue 1 means you used the wrong atom.
- Mixing up phi and psi definitions. phi is about N-Cα and uses C(i-1) as its first atom; psi is about Cα-C and uses N(i+1) as its last atom [3]. Swapping them produces a plot that looks mirrored across the diagonal.
Limitations
The ideal values quoted from IUPAC come from fiber diffraction of model peptides, not from surveys of solved structures. The IUPAC alpha helix is listed as phi -57, psi -47 [3], but real helices sit near but not exactly on that value: the ubiquitin helix mean here is -65.2 and -39.9 degrees. Other sources quote roughly -63/-43 or -60/-45. Treat the IUPAC numbers as reference points, not as targets a structure must hit.
The "three quarters excluded" figure is a steric estimate from a textbook treatment [4], not a measured property of the Protein Data Bank. The actual populated area depends on the dataset and the resolution cutoff.
The Lovell et al. reference regions are widely used, but the percentage thresholds that define "favored" and "allowed" in validation software are not fixed constants. Check the current documentation for whichever tool you use, and do not quote a threshold you have not verified against that tool's own guidance.
There is also a documentation wrinkle worth knowing. The IUPAC web pages show two dates: the Section 1 page header says the rules were approved in 1974 (Pure Appl Chem 40:291-308), while the Section 3 page is headed "Tentative Rules (1969)," matching the 1970 Biochemistry publication. The phi, psi and omega definitions are the same in both. Cite the 1970 Biochemistry paper as the original [1] and the web pages as the readable text [2][3].
Finally, the proline phi range shown in the worked example comes from three ubiquitin prolines, not from a large survey. It illustrates the ring constraint but should not be treated as a population statistic.
Frequently Asked Questions
What is a dihedral angle in a protein?
A dihedral angle, also called a torsion angle, is the angle between the projection of the first bond and the projection of the last bond onto a plane perpendicular to the central bond in a four-atom sequence A-B-C-D [2]. In a protein backbone, the biologically important ones are phi, psi and omega. They describe how the chain rotates about single bonds, which determines secondary structure.
How do I calculate a dihedral angle from coordinates?
Take the four atom positions, build the three bond vectors, compute two cross products to get the plane normals, and apply the atan2 formula given above. The result is in radians; convert to degrees. Biopython's calc_dihedral gives the same result on test points, and calling get_phi_psi_list() on a peptide from PPBuilder().build_peptides() returns phi and psi for every residue (in radians).
Why is the omega angle of a peptide bond almost always near 180 degrees?
The peptide C-N bond has partial double-bond character, with a length of about 1.32 Angstrom between a single bond (1.49 Angstrom) and a double bond (1.27 Angstrom) [4]. That restricts rotation and keeps the peptide unit planar [4]. The trans arrangement near 180 degrees is favored because cis would clash sterically between groups on adjacent alpha carbons [4].
What do the allowed regions of a Ramachandran plot represent?
They represent phi-psi combinations that avoid local steric clashes. Three quarters of all possible combinations are excluded on steric grounds alone [4]. The favored and allowed regions in modern use come from Lovell et al., who derived separate boundaries for glycine, proline and pre-proline residues from high-resolution structures [6].
Why do glycine and proline behave differently on a Ramachandran plot?
Glycine has only a hydrogen side chain, so it fits into conformations that would clash for other residues, and it is well suited to reverse turns [7]. Proline lacks a backbone NH group, which disrupts alpha helices and beta strands [7], and its ring constrains phi (the three ubiquitin prolines all sit near -55 to -57 degrees). Both therefore need their own favored and allowed regions [6].
References
- IUPAC-IUB Commission on Biochemical Nomenclature 1970. Abbreviations and symbols for the description of the conformation of polypeptide chains. Biochemistry 9:3471
- IUPAC-IUB conformation rules, Section 1: general principles and torsion angles (IUPAC nomenclature site)
- IUPAC-IUB conformation rules, Section 3: main chain torsion angles phi, psi, omega and Table II
- Berg, Tymoczko & Stryer. Biochemistry 5th ed., Section 3.2 Primary Structure (NCBI Bookshelf)
- Ramachandran, Ramakrishnan & Sasisekharan 1963. Stereochemistry of polypeptide chain configurations. J Mol Biol 7:9580023-6)
- Lovell et al. 2003. Structure validation by C-alpha geometry: phi, psi and C-beta deviation. Proteins 50:437
- Berg et al. Biochemistry 8th ed., Section 2.6 (Macmillan digital edition)
- RCSB PDB 1UBQ: Structure of ubiquitin refined at 1.8 Angstrom resolution
Related Articles
- How to Read a Ramachandran Plot: A Practical Guide for Assessing Protein Structure Quality
- A Decision Guide to Protein Structure Validation Tools: Which Metric Should You Trust?
- How to Use MolProbity for Protein Structure Validation: A Step-by-Step Tutorial
- Secondary Protein Structure
- Alpha Helix vs Beta Sheet: How Protein Secondary Structure Forms and How to Tell Them Apart
- How to Read Resolution, R-free and B-factors in a PDB Structure