Secondary structure assignment according to the method of Kabsch and Sander (DSSP) or the method of Frishman and Argos (STRIDE).

dssp(...)

# S3 method for pdb
dssp(pdb, exefile = "dssp", resno=TRUE, full=FALSE, verbose=FALSE, ...)

# S3 method for pdbs
dssp(pdbs, ...)

# S3 method for xyz
dssp(xyz, pdb, ...)

stride(pdb, exefile = "stride", resno=TRUE)

# S3 method for sse
print(x, ...)

Arguments

pdb

a structure object of class "pdb", obtained from read.pdb.

exefile

file path to the ‘DSSP’ or ‘STRIDE’ program on your system (i.e. how is ‘DSSP’ or ‘STRIDE’ invoked).

resno

logical, if TRUE output is in terms of residue numbers rather than residue index (position in sequence).

full

logical, if TRUE bridge pairs and hbonds columns are parsed.

verbose

logical, if TRUE ‘DSSP’ warning and error messages are printed.

pdbs

a list object of class "pdbs" (obtained with pdbaln or read.fasta.pdb).

xyz

a trajectory object of class "xyz", obtained from read.ncdf, read.dcd, read.crd.

x

an sse object obtained from dssp.pdb or stride.

...

additional arguments to and from functions.

Details

This function calls the ‘DSSP’ or ‘STRIDE’ program to define secondary structure and psi and phi torsion angles.

Value

Returns a list with the following components:

helix

‘start’, ‘end’, ‘length’, ‘chain’ and ‘type’ of helix, where start and end are residue numbers or residue index positions depending on the value of “resno” input argument.

sheet

‘start’, ‘end’ and ‘length’ of E type sse, where start and end are residue numbers “resno”.

turn

‘start’, ‘end’ and ‘length’ of T type sse, where start and end are residue numbers “resno”.

phi

a numeric vector of phi angles.

psi

a numeric vector of psi angles.

acc

a numeric vector of solvent accessibility.

sse

a character vector of secondary structure type per residue.

hbonds

a 10 or 16 column matrix containing the bridge pair records as well as backbone NH-->O and O-->NH H-bond records. (Only available for dssp

References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.

‘DSSP’ is the work of Kabsch and Sander: Kabsch and Sander (1983) Biopolymers. 12, 2577--2637.

For information on obtaining ‘DSSP’, see:
http://swift.cmbi.ru.nl/gv/dssp/.

‘STRIDE’ is the work of Frishman and Argos: Frishman and Argos (1995) Proteins. 3, 566--579.

For information on obtaining the ‘STRIDE’ program, see:
http://webclu.bio.wzw.tum.de/stride/, or copy it from an installation of VMD.

Author

Barry Grant, Lars Skjaerven (dssp.pdbs)

Note

A system call is made to the ‘DSSP’ or ‘STRIDE’ program, which must be installed on your system and in the search path for executables. See http://thegrantlab.org/bio3d/tutorials/installing-bio3d for instructions of how to install these programs.

For the hbonds list component the column names can be used as a convenient means of data access, namely:
Bridge pair 1 “BP1”,
Bridge pair 2 “BP2”,
Backbone H-bond (NH-->O) “NH-O.1”,
H-bond energy of NH-->O “E1”,
Backbone H-bond (O-->NH) “O-HN.1”,
H-bond energy of O-->NH “E2”,
Backbone H-bond (NH-->O) “NH-O.2”,
H-bond energy of NH-->O “E3”,
Backbone H-bond (O-->NH) “O-HN.2”,
H-bond energy of O-->NH “E4”.

If ‘resno=TRUE’ the following additional columns are included:
Chain ID of resno “BP1”: “ChainBP1”,
Chain ID of resno “BP2”: “ChainBP2”,
Chain ID of resno “O-HN.1”: “Chain1”,
Chain ID of resno “NH-O.2”: “Chain2”,
Chain ID of resno “O-HN.1”: “Chain3”,
Chain ID of resno “NH-O.2”: “Chain4”.

See also

Examples

if (FALSE) { ##- PDB example # Read a PDB file pdb <- read.pdb("1bg2") sse <- dssp(pdb) sse2 <- stride(pdb) ## Short summary sse sse2 # Helix data sse$helix # Precent SSE content sum(sse$helix$length)/sum(pdb$calpha) * 100 sum(sse$sheet$length)/sum(pdb$calpha) * 100 ##- PDBs example aln <- read.fasta( system.file("examples/kif1a.fa",package="bio3d") ) pdbs <- read.fasta.pdb( aln ) ## Aligned PDB defined secondary structure pdbs$sse ## Aligned DSSP defined secondary structure sse <- dssp(pdbs) ##- XYZ Trajectory pdb <- read.pdb("2mda", multi=TRUE) dssp.xyz(pdb$xyz, pdb) ## Note. for large MD trajectories you may want to skip some frames, e.g. xyz <- rbind(pdb$xyz, pdb$xyz) ## dummy trajectory frames <- seq(1, to=nrow(xyz), by=4) ## frame numbers to examine ss <- dssp.xyz(xyz[frames, ], pdb) ## matrix of sse frame x residue }