binding.site | R Documentation |
Determines the interacting residues between two PDB entities.
binding.site(a, b=NULL, a.inds=NULL, b.inds=NULL, cutoff=5,
hydrogens=TRUE, byres=TRUE, verbose=FALSE)
a |
an object of class |
b |
an object of class |
a.inds |
atom and xyz coordinate indices obtained from |
b.inds |
atom and xyz coordinate indices obtained from |
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. |
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.
Returns a list with the following components:
inds |
object of class |
inds$atom |
atom indices of |
inds$xyz |
xyz indices of |
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 |
call |
the matched call. |
Lars Skjaerven
Grant, B.J. et al. (2006) Bioinformatics 22, 2695–2696.
read.pdb
, atom.select
, dm
# PDB server connection required - testing excluded
try({
pdb <- read.pdb('3dnd')
## automatically identify 'protein' and 'ligand'
bs <- binding.site(pdb)
bs$resnames
#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)
}, silent=TRUE)
if(inherits(.Last.value, "try-error")) {
message("Need internet to run the example")
}
## Not run:
# 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)
## End(Not run)
# Redundant testing excluded
try({
# 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)
}, silent=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.