# rmsd: Root Mean Square Deviation In bio3d: Biological Structure Analysis

## Description

Calculate the RMSD between coordinate sets.

## Usage

 `1` ```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).

Barry Grant

## References

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

`fit.xyz`, `rot.lsq`, `read.pdb`, `read.fasta.pdb`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20``` ```# 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) ```