Learn R Programming

cellHTS (version 1.42.0)

Bscore: B score normalization

Description

Correction of plate and spatial effects of the data xraw of a cellHTS object using the B score method. Using this method, a two-way median polish is fitted in a per-plate basis to account for row and column effects. Optionally, the obtained residuals within each plate can be further divided by their median absolute deviations to standardize for plate-to-plate variability. Optionally, a transformation to z-scores can be performed.

Usage

Bscore(x, what="xraw", adjustPlateMedian = TRUE, scale = TRUE, save.model = FALSE)

Arguments

x
a cellHTS object that has already been configured. See details.
what
a character indicating the slot of x to consider: "xraw" (default) or "xnorm".
adjustPlateMedian
a logical value indicating whether the estimated average of each plate should also be subtracted to the raw intensity values.
scale
a logical value indicating if the per-plate model residuals should be further scaled by their variance. See details.
save.model
a logical value specifying whether the per-plate models should be saved, and given as output. See details.

Value

An object of class cellHTS, which is a copy of the argument x, plus an additional slot xnorm containing the normalized data. This is an array of the same dimensions as xraw. Furthermore, if save.model=TRUE, the slots residuals, rowcol.effects, and overall.effects (only if adjustPlateMedian was also set to TRUE) are added to x. The latter slots are arrays with the same dimension as x$xraw, except the overall.effects, which have dimensions 1 x nr Plates x nr Replicates x nr Channels.Moreover, the processing status of the cellHTS object is updated in the slot state to x$state["normalized"]=TRUE.

Details

The normalization is performed in a per-plate fashion using the B score method. This function can be called direclty, or indirectly, using normalizePlates or summarizeChannels. In the B score method, the residual $r_{ijp}$ of the measurement for row i and column j on the p-th plate is obtained by fitting a two-way median polish, in order to account for both row and column effects within the plate:

$$r_{ijp} = y_{ijp} - \hat{y}_{ijp} = y_{ijp} - (\hat{\mu}_p + \hat{R}_{ip} + \hat{C}_{jp})$$

$y_{ijp}$ is the measurement value in row i and column j of plate p (taken from x$xraw), and $yest_{ijp}$ is the corresponding fitted value. This is defined as the sum between the estimated average of the plate ($mu_p$), the estimated systematic offset for row i ($R_{ip}$), and the systematic offset for column j ($C_{jp}$).

If scale=TRUE, for each plate p, each of the obtained residual values $r_{ijp}$'s are divided by the median absolute deviation of the residuals in plate p ($MAD_p$), giving the B score value:

$${B_{score}}_{ijp} = \frac{r_{ijp}}{MAD_p}$$

If adjustPlateMedian is set to FALSE, the estimated overall plate average ($mu_p$) is not removed from the intensity values $y_{ijp}$'s.

If save.model=TRUE, the models residuals ($r_{ijp}$'s), row and column offsets and overall offsets are stored in the slots residuals, rowcol.effects and overall.effects of the cellHTS object x.

References

Brideau, C., Gunter, B., Pikounis, B. and Liaw, A. (2003) Improved statistical methods for hit selection in high-throughput screening, J. Biomol. Screen 8, 634--647.

Malo, N., Hanley, J.A., Cerquozzi, S., Pelletier, J. and Nadon, R. (2006) Statistical practice in high-throughput screening data analysis, Nature Biotechn 24(2), 167--175.

See Also

medpolish, plotSpatialEffects, normalizePlates, summarizeChannels

Examples

Run this code
    data(KcViabSmall)
    x <- KcViabSmall
    x <- Bscore(x, save.model = TRUE)
    ## identical result, but calling Bscore function from "normalizePlates"
    xopt <- normalizePlates(x, normalizationMethod="Bscore", save.model = TRUE)
    all(x$xnorm==xopt$xnorm, na.rm=TRUE)

Run the code above in your browser using DataLab