R: ENM Force Field Loader

load.enmff {bio3d} | R Documentation

## ENM Force Field Loader

### Description

Load force field for elastic network normal mode calculation.

### Usage

    load.enmff(ff = 'calpha')
    ff.calpha(r, rmin=2.9, ...)
    ff.anm(r, cutoff=15, gamma=1, ...)
    ff.pfanm(r, cutoff=NULL, ...)
    ff.sdenm(r, atom.id, pdb, ...)
    ff.reach(r, atom.id, ...)
    ff.aaenm(r, ...)
    ff.aaenm2(r, atom.id, pdb, ...)

### Arguments

`ff` | a character string specifying the force field to use: ‘calpha’, ‘anm’, ‘pfanm’, ‘reach’, or ‘sdenm’.
`r` | a numeric vector of c-alpha distances.
`rmin` | lowest allowed atom-atom distance for the force constant calculation. The default of 2.9A is based on an evaluation of 24 high-resolution X-ray structures (< 1A).
`cutoff` | numerical, cutoff for pair-wise interactions.
`gamma` | numerical, global scaling factor.
`atom.id` | atomic index.
`pdb` | a `pdb` object as obtained from function `read.pdb`.
`...` | additional arguments passed to and from functions.

### Details

This function provides a collection of elastic network model (ENM) force fields for normal modes analysis (NMA) of protein structures. It returns a function for calculating the residue-residue spring force constants.

The ‘calpha’ force field - originally developed by Konrad Hinsen - is the recommended one for most applications. It employs a spring force constant differentiating between nearest-neighbour pairs along the backbone and all other pairs. The force constant function was parameterized by fitting to a local minimum of a crambin model using the AMBER94 force field.

The implementation of the ‘ANM’ (Anisotropic Network Model) force field originates from the lab of Ivet Bahar. It uses a simplified (step function) spring force constant based on the pair-wise distance. A variant of this from the Jernigan lab is the so-called ‘pfANM’ (parameter free ANM) with interactions that fall off with the square of the distance.

The ‘sdENM’ (by Dehouck and Mikhailov) employs residue specific spring force constants. It has been parameterized through a statistical analysis of a total of 1500 NMR ensembles.

The ‘REACH’ force field (by Moritsugu and Smith) is parameterized based on variance-covariance matrices obtained from MD simulations. It employs force constants that fall off exponentially with distance for non-bonded pairs.

The all-atom ENM force fields (‘aaenm’ and ‘aaenm2’) was obtained by fitting to a local energy minimum of a crambin model derived from the AMBER99SB force field (same approach as in Hinsen et al 2000). It employs a pair force constant function which falls as r^-6. ‘aanma2’ employs additonally specific force constants for covalent and intra-residue atom pairs. See also `aanma` for more details.

See references for more details on the individual force fields.

### Value

‘load.enmff’ returns a function for calculating the spring force constants. The ‘ff’ functions returns a numeric vector of residue-residue spring force constants.

### Note

The arguments ‘atom.id’ and ‘pdb’ are used from within function ‘build.hessian’ for functions that are not simply a function of the pair-wise distance. e.g. the force constants in the ‘sdENM’ model computes the force constants based on a function of the residue types and calpha distance.

### Author(s)

Lars Skjaerven

### References

Skjaerven, L. et al. (2014) BMC Bioinformatics 15, 399. Hinsen, K. et al. (2000) Chemical Physics 261, 25–37. Atilgan, A.R. et al. (2001) Biophysical Journal 80, 505–515. Dehouck Y. & Mikhailov A.S. (2013) PLoS Comput Biol 9:e1003209. Moritsugu K. & Smith J.C. (2008) Biophysical Journal 95, 1639–1648. Yang, L. et al. (2009) PNAS 104, 12347-52. Grant, B.J. et al. (2006) Bioinformatics 22, 2695–2696.

### See Also

`nma`, `build.hessian`

### Examples

    ## Load the c-alpha force field
    pfc.fun <- load.enmff('calpha')

    ## Calculate the pair force constant for a set of C-alpha distances
    force.constants <- pfc.fun( seq(4,8, by=0.5) )

    ## Calculate the complete spring force constant matrix
    ## Fetch PDB
    pdb <- read.pdb( system.file("examples/1hel.pdb", package="bio3d") )

    ## Fetch only c-alpha coordinates
    ca.inds <- atom.select(pdb, 'calpha')
    xyz <- pdb$xyz[ca.inds$xyz]

    ## Calculate distance matrix
    dists <- dm.xyz(xyz, mask.lower=FALSE)

    ## all pair-wise spring force constants
    fc.matrix <- apply(dists, 1, pfc.fun)

[Package bio3d version 2.4-0 Index]