Binding Site Residues

Usage

binding.site(a, b=NULL, a.inds=NULL, b.inds=NULL, cutoff=5, hydrogens=TRUE, byres=TRUE, verbose=FALSE)

Arguments

a
an object of class pdb as obtained from function read.pdb.
b
an object of class pdb as obtained from function read.pdb.
a.inds
atom and xyz coordinate indices obtained from atom.select that selects the elements of a upon which the calculation should be based.
b.inds
atom and xyz coordinate indices obtained from atom.select that selects the elements of b upon which the calculation should be based.
cutoff
distance cutoff
hydrogens
logical, if FALSE hydrogen atoms are omitted from the calculation.
byres
logical, if TRUE all atoms in a contacting residue is returned.
verbose
logical, if TRUE details of the selection are printed.

Description

Determines the interacting residues between two PDB entities.

Details

This function reports the residues of a closer than a cutoff to b. This is a wrapper function calling the underlying function dist.xyz.

If b=NULL then b.inds should be elements of a upon which the calculation is based (typically chain A and B of the same PDB file).

If b=a.inds=b.inds=NULL the function will use atom.select with arguments "protein" and "ligand" to determine receptor and ligand, respectively.

Value

Returns a list with the following components:
inds
object of class select with atom and xyz components.

inds$atom
atom indices of a.

inds$xyz
xyz indices of a.

resnames
a character vector of interacting residues.

resno
a numeric vector of interacting residues numbers.

chain
a character vector of the associated chain identifiers of "resno".

call
the matched call.

References

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

Examples

# PDB server connection required - testing excluded pdb <- read.pdb('3dnd')
Note: Accessing on-line PDB file PDB has ALT records, taking A only, rm.alt=TRUE
## automatically identify 'protein' and 'ligand' bs <- binding.site(pdb) bs$resnames
[1] "LEU 49 (A)" "GLY 50 (A)" "VAL 57 (A)" "ALA 70 (A)" "VAL 104 (A)" [6] "MET 120 (A)" "GLU 121 (A)" "TYR 122 (A)" "VAL 123 (A)" "GLU 127 (A)" [11] "GLU 170 (A)" "ASN 171 (A)" "LEU 173 (A)" "THR 183 (A)" "PHE 327 (A)"
#pdb$atom[bs$inds$atom, ] # provide indices rec.inds <- atom.select(pdb, chain="A", resno=1:350) lig.inds <- atom.select(pdb, chain="A", resno=351) bs <- binding.site(pdb, a.inds=rec.inds, b.inds=lig.inds) # Interaction between peptide and protein rec.inds <- atom.select(pdb, chain='A', resno=c(1:350)) lig.inds <- atom.select(pdb, chain='I', resno=c(5:24)) bs <- binding.site(pdb, a.inds=rec.inds, b.inds=lig.inds) # Redundant testing excluded # Interaction between two PDB entities #rec <- read.pdb("receptor.pdb") #lig <- read.pdb("ligand.pdb") rec <- trim.pdb(pdb, inds=rec.inds) lig <- trim.pdb(pdb, inds=lig.inds) bs <- binding.site(rec, lig, hydrogens=FALSE)

See also

read.pdb, atom.select, dm

Author

Lars Skjaerven