Bscore               package:cellHTS2               R Documentation

_B _s_c_o_r_e _n_o_r_m_a_l_i_z_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     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.

_U_s_a_g_e:

     Bscore(object, save.model = FALSE)

_A_r_g_u_m_e_n_t_s:

  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.

_D_e_t_a_i_l_s:

     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'.

_V_a_l_u_e:

     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'.

_A_u_t_h_o_r(_s):

     Ligia Bras ligia@ebi.ac.uk

_R_e_f_e_r_e_n_c_e_s:

     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.

_S_e_e _A_l_s_o:

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

_E_x_a_m_p_l_e_s:

     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)
     )

