Learn R Programming

bio3d (version 2.4-4)

binding.site: Binding Site Residues

Description

Determines the interacting residues between two PDB entities.

Usage

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

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.

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.

Author

Lars Skjaerven

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.

References

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

See Also

read.pdb, atom.select, dm

Examples

Run this code
   # \donttest{
    # PDB server connection required - testing excluded

     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)
   # }


   if (FALSE) {  
     # 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)
   }

   # \donttest{
    # 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)
   # }

Run the code above in your browser using DataLab