Learn R Programming

bio3d (version 2.3-4)

combine.select: Combine Atom Selections From PDB Structure

Description

Do "and", "or", or "not" set operations between two or more atom selections made by atom.select

Usage

combine.select(sel1=NULL, sel2=NULL, …, operator="AND", verbose=TRUE)

Arguments

sel1

an atom selection object of class "select", obtained from atom.select.

sel2

a second atom selection object of class "select", obtained from atom.select.

more select objects for the set operation.

operator

name of the set operation.

verbose

logical, if TRUE details of the selection combination are printed.

Value

Returns a list of class "select" with components:

atom

atom indices of selected atoms.

xyz

xyz indices of selected atoms.

call

the matched call.

Details

The value of operator should be one of following: (1) "AND", "and", or "&" for set intersect, (2) "OR", "or", "|", or "+" for set union, (3) "NOT", "not", "!", or "-" for set difference sel1 - sel2 - sel3 ....

References

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

See Also

atom.select, as.select read.pdb, trim.pdb

Examples

Run this code
# NOT RUN {
# Read a PDB file
pdb <- read.pdb( system.file("examples/1hel.pdb", package="bio3d") )

## - Build atom selections to be operated
# Select C-alpha atoms of entire system
ca.global.inds <- atom.select(pdb, "calpha")

# Select C-beta atoms of entire protein
cb.global.inds <- atom.select(pdb, "protein", elety="CB")

# Select backbone atoms of entire system
bb.global.inds <- atom.select(pdb, "backbone")

# Select all atoms with residue number from 46 to 50
aa.local.inds <- atom.select(pdb, resno=46:50)


# Do set intersect:
# - Return C-alpha atoms with residue number from 46 to 50
ca.local.inds <- combine.select(ca.global.inds, aa.local.inds)
print( pdb$atom[ ca.local.inds$atom, ] )

# Do set subtract:
# - Return side-chain atoms with residue number from 46 to 50
sc.local.inds <- combine.select(aa.local.inds, bb.global.inds, operator="-")
print( pdb$atom[ sc.local.inds$atom, ] )

# Do set union:
# - Return C-alpha and side-chain atoms with residue number from 46 to 50
casc.local.inds <- combine.select(ca.local.inds, sc.local.inds, operator="+")
print( pdb$atom[ casc.local.inds$atom, ] )

# More than two selections:
# - Return side-chain atoms (but not C-beta) with residue number from 46 to 50
sc2.local.inds <- combine.select(aa.local.inds, bb.global.inds, cb.global.inds, operator="-")
print( pdb$atom[ sc2.local.inds$atom, ] )

# }

Run the code above in your browser using DataLab