R: Convert to PDB format

as.pdb {bio3d} | R Documentation

## Convert to PDB format

### Description

Convert Tripos Mol2 format, or Amber parameter/topology and coordinate data to PDB format.

### Usage

    as.pdb(...)

    ## S3 method for class 'mol2'
    as.pdb(mol, ...)

    ## S3 method for class 'prmtop'
    as.pdb(prmtop, crd=NULL, inds=NULL, inds.crd=inds, ncore=NULL, ...)

    ## Default S3 method:
    as.pdb(pdb=NULL, xyz=NULL, type=NULL, resno=NULL,
                       resid=NULL, eleno=NULL, elety=NULL, chain=NULL,
                       insert=NULL, alt=NULL, o=NULL, b=NULL, segid=NULL,
                       elesy=NULL, charge=NULL, verbose=TRUE, ...)

### Arguments

`...` | arguments passed to and from functions.
`mol` | a list object of type `"mol2"` (obtained with `read.mol2`).
`prmtop` | a list object of type `"prmtop"` (obtained with `read.prmtop`).
`crd` | a list object of type `"crd"` (obtained with `read.crd.amber`).
`inds` | a list object of type `"select"` as obtained from `atom.select`. The indices points to which atoms in the PRMTOP object to convert.
`inds.crd` | same as the ‘inds’ argument, but pointing to the atoms in CRD object to convert. By default, this argument equals to ‘inds’, assuming the same number and sequence of atoms in the PRMTOP and CRD objects.
`ncore` | number of CPU cores used to do the calculation. `ncore>1` requires package ‘parallel’ installed.
`pdb` | an object of class ‘pdb’ as obtained from `read.pdb`.
`xyz` | a numeric vector/matrix of Cartesian coordinates. If provided, the number of atoms in the new PDB object will be set to `ncol(as.xyz(xyz))/3` (see `as.xyz`). If `xyz` is not provided the number of atoms will be based on the length of `eleno`, `resno`, or `resid` (in that order).
`type` | a character vector of record types, i.e. "ATOM" or "HETATM", with length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`resno` | a numeric vector of residue numbers of length equal to `ncol(as.xyz(xyz))/3`.
`resid` | a character vector of residue types/ids of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`eleno` | a numeric vector of element/atom numbers of length equal to `ncol(as.xyz(xyz))/3`.
`elety` | a character vector of element/atom types of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`chain` | a character vector of chain identifiers with length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`insert` | a character vector of insertion code with length equal to `ncol(as.xyz(xyz))/3`.
`alt` | a character vector of alternate record with length equal to `ncol(as.xyz(xyz))/3`.
`o` | a numeric vector of occupancy values of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element numeric vector can be provided which will be repeated for to match the number of atoms.
`b` | a numeric vector of B-factors of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element numeric vector can be provided which will be repeated to match the number of atoms.
`segid` | a character vector of segment id of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`elesy` | a character vector of element symbol of length equal to `ncol(as.xyz(xyz))/3`. Alternatively, a single element character vector can be provided which will be repeated to match the number of atoms.
`charge` | a numeric vector of atomic charge of length equal to `ncol(as.xyz(xyz))/3`.
`verbose` | logical, if TRUE details of the PDB generation process is printed to screen.

### Details

This function converts Tripos Mol2 format, Amber formatted parameter/topology (PRMTOP) and coordinate objects, and vector data to a PDB object.

While `as.pdb.mol2` and `as.pdb.prmtop` converts specific objects to a PDB object, `as.pdb.default` provides basic functionality to convert raw data such as vectors of e.g. residue numbers, residue identifiers, Cartesian coordinates, etc to a PDB object. When `pdb` is provided the returned PDB object is built from the input object with fields replaced by any input vector arguments. e.g. `as.pdb(pdb, xyz=crd)` will return the same PDB object, with only the Cartesian coordinates changed to `crd`.

### Value

Returns a list of class `"pdb"` with the following components:

`atom` | a data.frame containing all atomic coordinate ATOM data, with a row per ATOM and a column per record type. See below for details of the record type naming convention (useful for accessing columns).
`xyz` | a numeric matrix of ATOM coordinate data of class `xyz`.
`calpha` | logical vector with length equal to `nrow(atom)` with TRUE values indicating a C-alpha “elety”.
`call` | the matched call.

### Author(s)

Lars Skjaerven

### References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695–2696. http://ambermd.org/formats.html

### See Also

`read.crd`, `read.ncdf`, `atom.select`, `read.pdb`

### Examples

    ## Vector(s) to PDB object
    pdb <- as.pdb(resno=1:6, elety="CA", resid="ALA", chain="A")
    pdb

    ## Not run:
    ## Read a PRMTOP file
    prmtop <- read.prmtop(system.file("examples/crambin.prmtop", package="bio3d"))

    ## Read Amber coordinates
    crds <- read.crd(system.file("examples/crambin.inpcrd", package="bio3d"))

    ## Atom selection
    ca.inds <- atom.select(prmtop, "calpha")

    ## Convert to PDB format
    pdb <- as.pdb(prmtop, crds, inds=ca.inds)

    ## Read a single entry MOL2 file
    ## (returns a single object)
    mol <- read.mol2( system.file("examples/aspirin.mol2", package="bio3d") )

    ## Convert to PDB
    pdb <- as.pdb(mol)

    ## End(Not run)

[Package bio3d version 2.3-4 Index]