beadCountWeights {limma} | R Documentation |
Estimates weights which account for biological variation and technical variation resulting from varying bead numbers.
beadCountWeights(y, x, design = NULL, bead.stdev = NULL, bead.stderr = NULL, nbeads = NULL, array.cv = TRUE, scale = FALSE)
y |
an |
x |
an |
design |
the design matrix of the microarray experiment, with rows
corresponding to arrays and columns to coefficients to be
estimated. Defaults to |
bead.stdev |
numeric matrix of bead-level standard deviations. |
bead.stderr |
numeric matrix of bead-level standard errors. Not required if |
nbeads |
numeric matrix containing number of beads. |
array.cv |
logical, should technical variation for each observation be calculated from a constant or array-specific coefficient of variation? The default is to use array-specific coefficients of variation. |
scale |
logical, should weights be scaled so that the average weight size is the mean of the inverse technical variance along a probe? By default, weights are scaled so that the average weight size along a probe is 1. |
This function estimates optimum weights using the bead statistics for each probe for an Illumina expression BeadChip. It can be used with any Illumina expression BeadChip, but is most likely to be useful with HumanHT-12 BeadChips.
Arguments x
and y
are both required.
x
contains the raw expression values and y
contains the corresponding log2 values for the same probes and the same arrays after background correction and normalization.
x
and y
be any type of object that can be coerced to a matrix, with rows corresponding to probes and columns to arrays.
x
and y
must contain the same rows and columns in the same order.
The reliability of the normalized expression value for each probe on each array is measured by estimating its technical and biological variability. The bead number weights are the inverse sum of the technical and biological variances.
The technical variance for each probe on each array is inversely proportional to the number of beads and is estimated using array-specific bead-level coefficients of variation.
Coefficients of variation are calculated using raw expression values.
The biological variance for each probe across the arrays are estimated using a Newton iteration, with the assumption that the total residual deviance for each probe from lmFit
is inversely proportional to the sum of the technical variance and biological variance.
Only one of bead.stdev
or bead.stderr
needs to be set.
If bead.stdev
is not provided, then it will be computed as bead.stderr * sqrt(nbeads)
.
If arguments bead.stdev
and nbeads
are not set explicitly in the call, then they will be extracted fromy$other$BEAD_STDEV
and y$other$Avg_NBEADS
.
An EList
object containing these components can be created by read.idat
or read.ilmn
, see the example code below.
A list object with the following components:
weights |
numeric matrix of bead number weights |
cv.constant |
numeric value of constant bead-level coefficient of variation |
cv.array |
numeric vector of array-specific bead-level coefficient of variation |
var.technical |
numeric matrix of technical variances |
var.biological |
numeric vector of biological variances |
Charity Law and Gordon Smyth
Law, CW (2013). Precision weights for gene expression analysis. PhD Thesis. University of Melbourne, Australia. http://repository.unimelb.edu.au/10187/17598
An overview of linear model functions in limma is given by 06.LinearModels.
## Not run: z <- read.ilmn(files="probesummaryprofile.txt", ctrfiles="controlprobesummary.txt", other.columns=c("BEAD_STDEV","Avg_NBEADS")) y <- neqc(z) x <- z[z$genes$Status=="regular",] bcw <- beadCountWeights(y,x,design) fit <- lmFit(y,design,weights=bcw$weights) fit <- eBayes(fit) ## End(Not run)