Description
Computes and returns a DSSP file
Usage
compute.dssp(pdb, destfile = './')
Arguments
pdb
is either a PDB id, or the path to a pdb file.
destfile
a character string with the path where the DSSP file is going to be saved.
Value
An online computed dsssp file that is saved at the indicated location (the working directory by default).
References
- Touw et al. (2015) Nucl. Ac. Res. 43(Database issue): D364-D368.
- Kabsch & Sander (1983) Biopolimers 22:2577-2637.
See Also
parse.dssp()
, mkdssp()
and acc.dssp()
Details
The ptm package contains a number of ancillary functions that deal with Protein Data Bank (PDB) files. These functions may be useful when structural 3D data need to be analyzed. The mentioned functions are:
- uniprot2pdb
- pdb2uniprot
- pdb.chain
- pdb.quaternary
- pdb.res
- pdb.pep
- pdb.select
- compute.dssp (the current document)
- parse.dssp
- mkdssp
The DSSP (Define Secondary Structure of Proteins) algorithm allows to assign secondary structure to the amino acids of a protein using the atomic coordinates of the protein (a PDB file).
DSSP, based on the identification of intra-backbone hydrogen bonds of the protein can identify eight types of secondary structure that can be grouped in three main categories:
-
Helices
G = 3-turn helixhelix. Min length 3 residues.
H = 4-turn helix α helix. Minimum length 4 residues.
I = 5-turn helix π helix. Minimum length 5 residues. -
Strands
E = extended strand in parallel and/or anti-parallel β-sheet conformation. Min length 2 residues.
B = residue in isolated β-bridge (single pair β-sheet hydrogen bond formation) -
Loops
T = hydrogen bonded turn (3, 4 or 5 turn)
S = bend (the only non-hydrogen-bond based assignment).
C = coil (residues which are not in any of the above conformations).
Given a PDB file (or its 4 letter ID) there are two different ways to get the corresponding dssp file. The one used by the function compute.dssp() consist in taking advantage of the REST API provided by the Centre for Molecular and Biomolecular Informatics, to carry out the computation online (see Facilities that make the PDB data collection more powerful for a recent review).
For instance, let’s obtain the dssp file for the Dynein light chain 2.
compute.dssp(pdb = '2xqq')
## [1] "Work done!. See file at: ./2xqq.dssp"
We can now parse the obtained dssp file:
Dynein <- parse.dssp('./2xqq.dssp')
kable(head(Dynein))
resnum | respdb | chain | aa | ss | sasa | phi | psi |
---|---|---|---|---|---|---|---|
1 | 3 | A | D | C | 130 | 360.0 | 108.6 |
2 | 4 | A | R | C | 106 | -135.5 | 24.4 |
3 | 5 | A | K | C | 71 | -59.1 | 133.9 |
4 | 6 | A | A | E | 8 | -95.2 | 133.8 |
5 | 7 | A | V | E | 45 | -133.9 | 116.1 |
6 | 8 | A | I | E | 7 | -82.0 | 121.5 |
A drawback of this function is that it depends on the XSSP server and in ocasions it can take a long time to process the request. Thus, an alternative option to convert a PDB file into a DSSP file is to carry out the computation on your in-house computer, using the function mkdssp(). To do that, previously you will have had to install the mkdssp program as an executable. Some help can be found here.
Dynein <- mkdssp(pdb = '2xqq', method = 'ptm')
kable(tail(Dynein))
resnum | respdb | chain | aa | ss | sasa | phi | psi | |
---|---|---|---|---|---|---|---|---|
377 | 366 | 2 | H | R | E | 84 | -143.9 | 149.2 |
378 | 367 | 3 | H | G | E | 47 | -109.0 | 146.8 |
379 | 368 | 4 | H | T | E | 13 | -131.4 | 155.7 |
380 | 369 | 5 | H | Q | E | 122 | -148.4 | 125.8 |
381 | 370 | 6 | H | T | C | 5 | -68.3 | 150.2 |
382 | 371 | 7 | H | E | C | 201 | -81.4 | 360.0 |
A warning words
PDB entries are notirously hard to parse. It is no unusual that the entry contains UNK residues, Cα-only residues, or residues with otherwise missin atoms, just to mention a few issues. For that reason we provide different alternative approaches to compute the desired dssp file, in the hope that they complement each other and together allow obtaining the desired calculations for a large majority of PDB files.