R: Root Mean Square Deviation

rmsd {bio3d} | R Documentation

## Root Mean Square Deviation

### Description

Calculate the RMSD between coordinate sets.

### Usage

    rmsd(a, b=NULL, a.inds=NULL, b.inds=NULL, fit=FALSE, ncore=1, nseg.scale=1)

### Arguments

`a` | a numeric vector containing the reference coordinate set for comparison with the coordinates in `b`. Alternatively, if `b=NULL` then `a` can be a matrix or list object containing multiple coordinates for pairwise comparison.
`b` | a numeric vector, matrix or list object with an `xyz` component, containing one or more coordinate sets to be compared with `a`.
`a.inds` | a vector of indices that selects the elements of `a` upon which the calculation should be based.
`b.inds` | a vector of indices that selects the elements of `b` upon which the calculation should be based.
`fit` | logical, if TRUE coordinate superposition is performed prior to RMSD calculation.
`ncore` | number of CPU cores used to do the calculation. `ncore>1` requires package ‘parallel’ installed.
`nseg.scale` | split input data into specified number of segments prior to running multiple core calculation. See `fit.xyz`.

### Details

RMSD is a standard measure of structural distance between coordinate sets.

Structure `a[a.inds]` and `b[b.inds]` should have the same length.

A least-squares fit is performed prior to RMSD calculation by setting `fit=TRUE`. See the function `fit.xyz` for more details of the fitting process.

### Value

Returns a numeric vector of RMSD value(s).

### Author(s)

Barry Grant

### References

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

### See Also

`fit.xyz`, `rot.lsq`, `read.pdb`, `read.fasta.pdb`

### Examples

    # Redundant testing excluded

    # -- Calculate RMSD between two or more structures
    aln <- read.fasta(system.file("examples/kif1a.fa",package="bio3d"))
    pdbs <- read.fasta.pdb(aln)

    # Gap positions
    inds <- gap.inspect(pdbs$xyz)

    # Superposition before pairwise RMSD
    rmsd(pdbs$xyz, fit=TRUE)

    # RMSD between structure 1 and structures 2 and 3
    rmsd(a=pdbs$xyz[1,], b=pdbs$xyz[2:3,], a.inds=inds$f.inds, b.inds=inds$f.inds, fit=TRUE)

    # RMSD between structure 1 and all structures in alignment
    rmsd(a=pdbs$xyz[1,], b=pdbs, a.inds=inds$f.inds, b.inds=inds$f.inds, fit=TRUE)

    # RMSD without superposition
    rmsd(pdbs$xyz)

[Package bio3d version 2.4-2 Index]