Biological Units Construction

Usage

biounit(pdb, biomat = NULL, multi = FALSE, ncore = NULL)

Arguments

pdb
an object of class pdb as obtained from function read.pdb.
biomat
a list object as returned by read.pdb (pdb$remark$biomat), containing matrices for symmetry operation on individual chains to build biological units. It will override the matrices stored in pdb.
multi
logical, if TRUE the biological unit is returned as a 'multi-model' pdb object with each symmetric copy a distinct structural 'MODEL'. Otherwise, all copies are represented as separated chains.
ncore
number of CPU cores used to do the calculation. By default (ncore=NULL), use all available CPU cores.

Value

a list of pdb objects with each representing an individual biological unit.

Description

Construct biological assemblies/units based on a 'pdb' object.

Details

A valid structural/simulation study should be performed on the biological unit of a protein system. For example, the alpha2-beta2 tetramer form of hemoglobin. However, canonical PDB files usually contain the asymmetric unit of the crystal cell, which can be:

  1. One biological unit
  2. A portion of a biological unit
  3. Multiple biological units

The function performs symmetry operations to the coordinates based on the transformation matrices stored in a 'pdb' object returned by read.pdb, and returns biological units stored as a list of pdb objects.

Examples

# PDB server connection required - testing excluded pdb <- read.pdb("2dn1")
Note: Accessing on-line PDB file
biounit <- biounit(pdb) pdb
Call: read.pdb(file = "2dn1") Total Models#: 1 Total Atoms#: 2506, XYZs#: 7518 Chains#: 2 (values: A B) Protein Atoms#: 2172 (residues/Calpha atoms#: 285) Nucleic acid Atoms#: 0 (residues/phosphate atoms#: 0) Non-protein/nucleic Atoms#: 334 (residues: 236) Non-protein/nucleic resid values: [ HEM (2), HOH (230), MBN (2), OXY (2) ] Protein sequence: LSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKK VADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAV HASLDKFLASVSTVLTSKYRHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRF FESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFA...<cut>...HKYH + attr: atom, xyz, seqres, helix, calpha, remark, call
biounit
$`AUTHOR.determined.tetramer (4 chains)` Call: biounit(pdb = pdb) Total Models#: 1 Total Atoms#: 5012, XYZs#: 15036 Chains#: 4 (values: A B C D) Protein Atoms#: 4344 (residues/Calpha atoms#: 570) Nucleic acid Atoms#: 0 (residues/phosphate atoms#: 0) Non-protein/nucleic Atoms#: 668 (residues: 472) Non-protein/nucleic resid values: [ HEM (4), HOH (460), MBN (4), OXY (4) ] Protein sequence: LSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKK VADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAV HASLDKFLASVSTVLTSKYRHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRF FESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLDNLKGTFA...<cut>...HKYH + attr: atom, helix, sheet, seqres, xyz, calpha, call, log
biounit <- biounit(read.pdb("2bfu"), multi=TRUE)
Note: Accessing on-line PDB file
write.pdb(biounit[[1]], file="biounit.pdb") # open the pdb file in VMD to have a look on the biological unit

See also

read.pdb

Author

Xin-Qiu Yao