combine.select {bio3d} | R Documentation

## 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.

### 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 ...`.

### 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.

### Author(s)

Xin-Qiu Yao

### References

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

### See Also

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

### Examples

    # 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, ] )

[Package bio3d version 2.3-4 Index]