Computes Residue Accessibility and SASA


acc.dssp(pdb, dssp = 'compute', aa = 'all')


pdb is either a PDB id, or the path to a pdb file.

dssp string indicating the preferred method to obtain the dssp file. It must be either ‘compute’ or ‘mkdssp.

aa one letter code for the amino acid of interest, or ‘all’ for all the protein residues.


A dataframe where each row is an individual residue of the selected protein. The variables computed, among others, are: (i) the secondary structure (ss) element to which the residue belongs, (ii) the solvent accessible surface area (sasa) of each residue in square angstrom (Ų), and (iii) the accessibility (acc) computed as the percent of the sasa that the residue X would have in the tripeptide GXG with the polypeptide skeleton in an extended conformation and the side chain in the conformation most frequently observed in proteins. For the given PDB, the function obtains its corresponding DSSP file using the chosen method. The argument dssp allows two alternative methods: compute (by default, it calls to the function compute.dssp(), which in turn uses an API to run DSSP at the CMBI and
mkdssp (if you have installed DSSP on your system and in the search path for executables).



Analysis of protein commonly requires the partition of their structure into regions such as the surface, interior, or interface. Whenever you are interested into analysing such a partition in a particular protein, the following function of the ptm package may be of help:

The function acc.dssp() can be of help to detect changes in accessibilities (ACC) when the analysis shifts its focus from the monomer to the complex. To illustrate this point, let’s use the methonine S-adenosyltransferase from Ureaplasma ureliticum, which is a homotetramer, as an example.

uMAT <- acc.dssp(pdb = '6rjs')

If we define the protein-protein interface as the set of residues for which \Delta ACC > 0, we can provide some basic information about the protein-protein interface. For instance, the fraction of amino acid involved in this protein-protein interface can be computed as:

round(length(which(uMAT$delta_acc != 0))/nrow(uMAT), 3) 
## [1] 0.235

Or we may know the surface (in Ų) involved in this interface:

## [1] 12153

And so on.