DSSP calculations


DSSP (Define Secondary Structure of Proteins) is the standard method used to assign secondary structure annotations to a protein structure. DSSP utilizes the atomic coordinates of a structure to assign the secondary codes, which are:

Code Description
H Alpha helix
B Beta bridge
E Strand
G Helix-3
I Helix-5
T Turn
S Bend

Furthermore, DSSP calculates geometric properties such as the phi and psi angles between residues and solvent accessibilities. ssbio provides wrappers around the Biopython DSSP module to execute and parse DSSP results, as well as converting the information into a Pandas DataFrame format with calculated relative solvent accessbilities (see ssbio.protein.structure.properties.dssp for details).

Installation instructions (Ubuntu)


These instructions were created on an Ubuntu 17.04 system.

  1. Install the DSSP package

    sudo apt-get install dssp
  2. The program installs itself as mkdssp, not dssp, and Biopython looks to execute dssp, so we need to symlink the name dssp to mkdssp

    sudo ln -s /usr/bin/mkdssp /usr/bin/dssp
  3. Then you should be able to run dssp in your terminal

Program execution

In the shell

To run the program on its own in the shell…

dssp -i <path_to_pdb_file> -o <new_path_to_output_file>

With ssbio

To run the program using the ssbio Python wrapper, see: ssbio.protein.structure.properties.dssp.get_dssp_df_on_file()


  • How do I cite DSSP?

    • Kabsch W & Sander C (1983) DSSP: definition of secondary structure of proteins given a set of 3D coordinates. Biopolymers 22: 2577–2637
  • I’m having issues running DSSP…

    • See the ssbio wiki for (hopefully) some solutions - or add yours in when you find the answer!


ssbio.protein.structure.properties.dssp.all_dssp_props(filename, file_type)[source]

Returns a large dictionary of SASA, secondary structure composition, and surface/buried composition. Values are computed using DSSP. Input: PDB or MMCIF filename Output: Dictionary of values obtained from dssp


Calculation of SASA utilizing the DSSP program.

DSSP must be installed for biopython to properly call it. Install using apt-get on Ubuntu or from: http://swift.cmbi.ru.nl/gv/dssp/

Input: PDB or CIF structure file Output: SASA (integer) of structure


Calculates the percent of residues that are in the surface or buried, as well as if they are polar or nonpolar. Returns a dictionary of this.

ssbio.protein.structure.properties.dssp.get_dssp_df_on_file(pdb_file, outfile=None, outdir=None, outext='_dssp.df', force_rerun=False)[source]

Run DSSP directly on a structure file with the Biopython method Bio.PDB.DSSP.dssp_dict_from_pdb_file

Avoids errors like: PDBException: Structure/DSSP mismatch at <Residue MSE het= resseq=19 icode= > by not matching information to the structure file (DSSP fills in the ID “X” for unknown residues)

  • pdb_file – Path to PDB file
  • outfile – Name of output file
  • outdir – Path to output directory
  • outext – Extension of output file
  • force_rerun – If DSSP should be rerun if the outfile exists

DSSP results summarized

Return type:


ssbio.protein.structure.properties.dssp.get_ss_class(pdb_file, dssp_file, chain)[source]

Define the secondary structure class of a PDB file at the specific chain

  • pdb_file
  • dssp_file
  • chain



Summarize the secondary structure content of the DSSP dataframe for each chain.

Parameters:dssp_df – Pandas DataFrame of parsed DSSP results
Returns:Chain to secondary structure summary dictionary
Return type:dict