plot.fluct {bio3d} | R Documentation

## Plot Fluctuations

### Description

Produces a plot of atomic fluctuations obtained from ensemble normal mode analysis or molecular dynamics simulations.

### Usage

    ## S3 method for class 'fluct'
    plot(x,
            col = NULL, label = rownames(x), signif = FALSE,
            p.cutoff = 0.005, q.cutoff = 0.04,
            s.cutoff = 5, n.cutoff = 2, mean = FALSE, polygon = FALSE,
            spread = FALSE, offset = 1,
            ncore = NULL, ...)

### Arguments

`x` | a numeric vector or matrix containing atomic fluctuation data obtained from e.g. `nma.pdbs` or `rmsf`.
`col` | a character vector of plotting colors. Used also to group fluctuation profiles. NA values in col will omit the corresponding fluctuation profile in the plot.
`label` | a character vector of plotting labels with length matching `nrow(x)`. If `mean=TRUE`, the length of `label` can be equal to the number of categories indicated by `col`.
`signif` | logical, if TRUE significance of fluctuation difference is calculated and annotated for each atomic position.
`p.cutoff` | Cutoff of p-value to define significance.
`q.cutoff` | Cutoff of the mean fluctuation difference to define significance.
`s.cutoff` | Cutoff of sample size in each group to calculate the significance.
`n.cutoff` | Cutoff of consecutive residue positions with significant fluctuation difference. If the actual number is less than the cutoff, correponding postions will not be annotated.
`mean` | logical, if TRUE plot mean fluctuations of each group. Significance is still calculated with the original data.
`polygon` | logical, if TRUE a nicer plot with area under the line for the first row of `x` are filled with polygons.
`ncore` | number of CPU cores used to do the calculation. By default (`ncore=NULL`), use all available CPU cores. The argument is only used when `signif=TRUE`.
`spread` | logical, if TRUE the fluctuation profiles are spread - i.e. not on top of each other.
`offset` | numerical offset value in use when ‘spread=TRUE’.
`...` | extra plotting arguments passed to `plot.bio3d`.

### Details

The significance calculation is performed when `signif=TRUE` and there are at least two groups with sample size larger than or equal to `s.cutoff`. A "two-sided" student's t-test is performed for each atomic position (each column of `x`). If `x` contains gaps, indicated by `NA`s, only non-gapped positions are considered. The position is considered significant if both `p-value <= p.cutoff` and the mean value difference of the two groups, q, satisfies `q >= q.cutoff`. If more than two groups are available, every pair of groups are subjected to the t-test calculation and the minimal p-value along with the q-value for the corresponding pair are used for the significance evaluation.

### Value

If significance is calculated, return a vector indicating significant positions.

### Author(s)

Xin-Qiu Yao, Lars Skjaerven, Barry Grant

### References

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

### See Also

`plot.bio3d`, `rmsf`, `nma.pdbs`, `t.test`, `polygon`.

### Examples

    ## Not run:
    ## load transducin example data
    attach(transducin)

    ## subset of pdbs to analyze
    inds = c(1:5, 16:20)
    pdbs <- trim(pdbs, row.inds=inds)
    gaps.res = gap.inspect(pdbs$ali)

    ## reference RESNO and SSE for axis annotations
    resno <- pdbs$resno[1, gaps.res$f.inds]
    sse <- pdbs$sse[1, gaps.res$f.inds]

    ## eNMA calculation and obtain modes of motion including atomic fluctuations
    modes <- nma(pdbs, ncore=NULL)
    x = modes$fluctuation

    ## simple line plot with SSE annotation
    plot.fluct(x, sse=sse, resno=resno)

    ## group data by specifying colors of each fluctuation line; same color indicates
    ## same group. Also do significance calculation and annotation
    col = c(rep('red', 5), rep('blue', 5))
    plot.fluct(x, col=col, signif=TRUE, sse=sse, resno=resno)

    ## spread lines
    plot.fluct(x, col=col, signif=TRUE, sse=sse, resno=resno, typ='l', spread=TRUE)

    ## show only line of mean values for each group.
    ## Nicer plot with area shaded for the first group.
    plot.fluct(x, col=col, signif=TRUE, sse=sse, resno=resno, mean=TRUE,
               polygon=TRUE, label=c('GTP', 'GDI'))

    detach(transducin)

    ## End(Not run)

[Package bio3d version 2.3-4 Index]