lmi {bio3d} | R Documentation

## LMI: Linear Mutual Information Matrix

### Description

Calculate the linear mutual information correlations of atomic displacements.

### Usage

    lmi(trj, grpby=NULL, ncore=1)

### Arguments

`trj` | a numeric matrix of Cartesian coordinates with a row per structure/frame.
`grpby` | a vector counting connective duplicated elements that indicate the elements of `trj` that should be considered as a group (e.g. atoms from a particular residue).
`ncore` | number of CPU cores used to do the calculation. `ncore>1` requires package ‘parallel’ installed.

### Details

The correlation of the atomic fluctuations of a system can be assessed by the Linear Mutual Information (LMI) and the LMI has no unwanted dependency on the relative orientation of the fluctuations which the Pearson coefficient suffers from.

This function returns a matrix of all atom-wise linear mutual information whose elements are denoted as Cij. If Cij = 1, the fluctuations of atoms i and j are completely correlated and if Cij = 0, the fluctuations of atoms i and j are not correlated.

### Value

Returns a linear mutual information matrix.

### Author(s)

Hongyang Li & Barry Grant

### References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695–2696. Lange, O.F. and Grubmuller, H. (2006) PROTEINS: Structure, Function, and Bioinformatics 62:1053–1061.

### Examples

    # Redundant testing excluded

    ##-- Read example trajectory file
    trtfile <- system.file("examples/hivp.dcd", package="bio3d")
    trj <- read.dcd(trtfile)

    ## Read the starting PDB file to determine atom correspondence
    pdbfile <- system.file("examples/hivp.pdb", package="bio3d")
    pdb <- read.pdb(pdbfile)

    ## select residues 24 to 27 and 85 to 90 in both chains
    inds <- atom.select(pdb, resno=c(24:27,85:90), elety='CA')

    ## lsq fit of trj on pdb
    xyz <- fit.xyz(pdb$xyz, trj, fixed.inds=inds$xyz, mobile.inds=inds$xyz)

    ## LMI matrix (slow to run so restrict to Calpha)
    cij <- lmi(xyz)

    ## Plot LMI matrix
    #plot(cij)
    col.scale <- colorRampPalette(c("gray95", "cyan"))(5)
    plot(cij, at=seq(0.4,1, length=5), col.regions=col.scale)

[Package bio3d version 2.3-4 Index]