Bscore: B score normalization

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/perPlateScaling.R

Description

Correction of plate and spatial effects of data stored in slot assayData of a cellHTS object using the B score method (without variance adjustment of the residuals). Using this method, a two-way median polish is fitted, on a per-plate basis, to account for row and column effects.

Usage

1
Bscore(object, save.model = FALSE)

Arguments

object

a cellHTS object that has already been configured. See details.

save.model

a logical value specifying whether the per-plate models should be stored in slots rowcol.effects and overal.effects. See details.

Details

This function is usually not called directly by the user, but from within the normalizePlates function. The normalization is performed in a per-plate fashion using the B score method, for each replicate and channel. 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} - yest_{ijp} = y_{ijp} - (mu_p + R_{ip} + C_{jp})

y_{ijp} is the measurement value in row i and column j of plate p (taken from slot assayData - only sample wells are considered), 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}).

NOTE: In the original B score method, as presented by Malo et al., a further step is performed: 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), resulting in:

r_{ijp}/MAD_p

The intention of such a further adjustment is to compensate for plate-to-plate variability in dynamic range. In the Bscore function, this step is not automatically performed, but can be done if B score normalization is called using the function normalizePlates with arguments method="Bscore" and varianceAdjust="byPlate". See the latter function for more details.

If save.model=TRUE, the models row and column offsets and overall offsets are stored in the slots rowcol.effects and overall.effects of object.

Value

An object of class cellHTS with B-score normalized data stored in slot assayData.

Furthermore, if save.model=TRUE, the row and column effects and the overall effects are stored in slots rowcol.effects and overall.effects , respectively. The latter slots are arrays with the same dimension as Data(object), except the overall.effects slot, which has dimensions nr Plates x nr Samples x nr Channels.

After calling this function, the processing status of the cellHTS object is updated in the slot state to object@state["normalized"]=TRUE.

Author(s)

Ligia Bras

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.

Boutros, M., Br\'as, L.P. and Huber, W. (2006) Analysis of cell-based RNAi screens, Genome Biology 7, R66.

See Also

medpolish, loess, locfit.robust, plotSpatialEffects, normalizePlates, summarizeChannels plateEffects

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
data("KcViabSmall")
xb <- Bscore(KcViabSmall, save.model = TRUE)
## Calling Bscore function from "normalizePlates" and adding the per-plate variance adjustment step:
xopt <- normalizePlates(KcViabSmall, method="Bscore", varianceAdjust="byPlate", save.model = TRUE)
## Access the slots overall.effects and rowcol.effects
ef1 = plateEffects(xb)
ef2 = plateEffects(xopt)


## double-check 
stopifnot(
  all(xb@rowcol.effects==xopt@rowcol.effects, na.rm=TRUE),
  all(xb@overall.effects==xopt@overall.effects, na.rm=TRUE),
  identical(ef1, ef2)
)

cellHTS2 documentation built on Nov. 8, 2020, 6 p.m.