angle.xyz(xyz, atm.inc = 3)
A function for basic bond angle determination.
Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.
With atm.inc=1
, angles are calculated for each set of
three successive atoms contained in xyz
(i.e. moving along one
atom, or three elements of xyz
, between sucessive
evaluations). With atm.inc=3
, angles are calculated for each set
of three successive non-overlapping atoms contained in xyz
(i.e. moving along three atoms, or nine elements of xyz
, between
sucessive evaluations).
## Read a PDB file pdb <- read.pdb( system.file("examples/1hel.pdb", package="bio3d") ) ## Angle between N-CA-C atoms of residue four inds <- atom.select(pdb, resno=4, elety=c("N","CA","C")) angle.xyz(pdb$xyz[inds$xyz])[1] 106.7501## Basic stats of all N-CA-C bound angles inds <- atom.select(pdb, elety=c("N","CA","C")) summary( angle.xyz(pdb$xyz[inds$xyz]) )Min. 1st Qu. Median Mean 3rd Qu. Max. 105.9 109.9 112.0 112.1 113.8 122.2#hist( angle.xyz(pdb$xyz[inds$xyz]), xlab="Angle" )