voomLmFit | R Documentation |
Transform count data to log2-counts per million (logCPM), estimate voom precision weights and fit limma linear models while allowing for loss of residual degrees of freedom due to exact zeros.
voomLmFit(counts, design = NULL, block = NULL, prior.weights = NULL, sample.weights = FALSE, var.design = NULL, var.group = NULL, lib.size = NULL, normalize.method = "none", span = 0.5, plot = FALSE, save.plot = FALSE, keep.EList = TRUE)
counts |
a numeric |
design |
design matrix with rows corresponding to samples and columns to coefficients to be estimated. Defaults to the unit vector meaning that samples are treated as replicates. |
block |
vector or factor specifying a blocking variable on the samples.
Has length equal to the number of |
prior.weights |
prior weights.
Can be a numeric matrix of individual weights of same dimensions as the |
sample.weights |
logical value, if |
var.design |
optional design matrix for the sample weights. Defaults to the sample-specific model whereby each sample has a distinct variance. |
var.group |
optional vector or factor indicating groups to have different array weights.
This is another way to specify |
lib.size |
numeric vector containing total library sizes for each sample.
Defaults to the normalized (effective) library sizes in |
normalize.method |
the microarray-style normalization method to be applied to the logCPM values (if any).
Choices are as for the |
span |
width of the smoothing window used for the lowess mean-variance trend. Expressed as a proportion between 0 and 1. |
plot |
logical, should a plot of the mean-variance trend be displayed? |
save.plot |
logical, should the coordinates and line of the plot be saved in the output? |
keep.EList |
logical. If |
This function adapts the limma voom method (Law et al, 2014) to allow for loss of residual degrees of freedom due to exact zero counts (Lun and Smyth, 2017).
The loss residual df occurs when all the counts in a group are zero or when there are blocking factors that can fit zero counts exactly.
The function transforms the counts to the log2-CPM scale, computes voom precision weights and fits limma linear models.
Residual df are computed similarly as far glmQLFit
.
The function is analogous to calling voom
followed by duplicateCorrelation
and lmFit
except for the modified residual df values and residual standard deviation sigma
values.
This function returns df.residual
values that are less than or equal to those from lmFit
and sigma
values that are greater than or equal to those from lmFit
.
voomLmFit
is more robust to zero counts than calling voom
, duplicateCorrelation
and lmFit
separately and provides more rigorous error rate control.
If block
is specified, then the intra-block correlation is estimated using duplicateCorrelation
In that case, the voom weights and the intra-block correlation are each estimated twice to achieve effective convergence.
Empirical sample quality weights will be estimated if sample.weights=TRUE
or if var.design
or var.group
are non-NULL (Liu et al 2015).
In that case, voomLmFit
is analogous to running voomWithQualityWeights
followed by lmFit
.
voomLmFit
is usually followed by running eBayes
on the fitted model object.
An MArrayLM object containing linear model fits for each row of data.
The object includes a targets
data.frame component containing sample annotation.
Columns of targets
include lib.size
and sample.weight
(if sample.weights=TRUE
).
If save.plot=TRUE
then the output object will include components voom.xy
and voom.line
.
voom.xy
contains the x and y coordinates of the points in the voom mean-variance plot in the same format as produced by xy.coords
and voom.line
contained the estimated trend curve.
If keep.EList=TRUE
then the output object includes component EList
, which is an EList
object in the same format as produced by voom
containing the voom log2-CPM values and the voom weights.
Gordon Smyth
Law, CW, Chen, Y, Shi, W, Smyth, GK (2014). Voom: precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biology 15, R29. See also the Preprint Version at http://www.statsci.org/smyth/pubs/VoomPreprint.pdf incorporating some notational corrections.
Lun, ATL, Smyth, GK (2017). No counts, no variance: allowing for loss of degrees of freedom when assessing biological variability from RNA-seq data. Statistical Applications in Genetics and Molecular Biology 16(2), 83-93. doi: 10.1515/sagmb-2017-0010
Liu, R, Holik, AZ, Su, S, Jansz, N, Chen, K, Leong, HS, Blewitt, ME, Asselin-Labat, M-L, Smyth, GK, Ritchie, ME (2015). Why weight? Modelling sample and observational level variability improves power in RNA-seq analyses. Nucleic Acids Research 43, e97. doi: 10.1093/nar/gkv412
voom
,
lmFit
,
voomWithQualityWeights
,
duplicateCorrelation
,
arrayWeights
,
MArrayLM-class
.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.