backgroundCorrect           package:limma           R Documentation

_C_o_r_r_e_c_t _I_n_t_e_n_s_i_t_i_e_s _f_o_r _B_a_c_k_g_r_o_u_n_d

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

     Background correct microarray expression intensities.

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

     backgroundCorrect(RG, method="subtract", offset=0, printer=RG$printer, normexp.method="saddle", verbose=TRUE)

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

      RG: an 'RGList' object or a numeric matrix.

  method: character string specifying correction method.  Possible
          values are '"none"', '"subtract"', '"half"', '"minimum"',
          '"movingmin"', '"edwards"' or '"normexp"'. If 'RG' is a
          matrix, possible values are restricted to '"none"' or
          '"normexp"'.

  offset: numeric value to add to intensities

 printer: a list containing printer layout information, see
          'PrintLayout-class'. Ignored if 'RG' is a matrix.

normexp.method: character string specifying parameter estimation
          strategy used by normexp, ignored for other methods. Possible
          values are '"saddle"', '"mle"' or '"rma"'.

 verbose: logical. If 'TRUE', progress messages are sent to standard
          output

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

     This function implements the background correction methods
     reviewed or developed in Ritchie et al (2007) and Silver at al
     (2009). Ritchie et al (2007) recommend 'method="normexp"' whenever
     'RG' contains local background estimates. Silver et al (2009)
     shows that either 'normexp.method="mle"' or
     'normexp.method="saddle"' are excellent options for normexp. If
     'RG' contains morphological background estimates instead
     (available from SPOT or GenePix image analysis software), then
     'method="subtract"' performs well.

     If 'method="none"' then no correction is done, i.e., the
     background intensities are treated as zero. If 'method="subtract"'
     then the background intensities are subtracted from the foreground
     intensities. This is the traditional background correction method,
     but is not necessarily recommended. If 'method="movingmin"' then
     the background estimates are replaced with the minimums of the
     backgrounds of the spot and its eight neighbors, i.e., the
     background is replaced by a moving minimum of 3x3 grids of spots.

     The remaining methods are all designed to produce positive
     corrected intensities. If 'method="half"' then any intensity which
     is less than 0.5 after background subtraction is reset to be equal
     to 0.5. If 'method="minimum"' then any intensity which is zero or
     negative after background subtraction is set equal to half the
     minimum of the positive corrected intensities for that array. If
     'method="edwards"' a log-linear interpolation method is used to
     adjust lower intensities as in Edwards (2003). If
     'method="normexp"' a convolution of normal and exponential
     distributions is fitted to the foreground intensities using the
     background intensities as a covariate, and the expected signal
     given the observed foreground becomes the corrected intensity.
     This results in a smooth monotonic transformation of the
     background subtracted intensities such that all the corrected
     intensities are positive.

     The normexp method is available in a number of variants depending
     on how the model parameters are estimated, and these are selected
     by 'normexp.method'. Here '"saddle"' gives the saddle-point
     approximation to maximum likelihood from Ritchie et al (2007),
     '"mle"' gives exact maximum likelihood from Silver at al (2009),
     '"rma"' gives the background correction algorithm from the
     RMA-algorithm for Affymetrix microarray data as implemented in the
     affy package, and '"rma75"' gives the RMA-75 method from McGee and
     Chen (2006). In practice '"mle"' performs well and is nearly as
     fast as '"saddle"', but '"saddle"' is the default for backward
     compatibility. See 'normexp.fit' for more details.

     The 'offset' can be used to add a constant to the intensities
     before log-transforming, so that the log-ratios are shrunk towards
     zero at the lower intensities. This may eliminate or reverse the
     usual 'fanning' of log-ratios at low intensities associated with
     local background subtraction.

     Background correction (background subtraction) is also performed
     by the 'normalizeWithinArrays' method for 'RGList' objects, so it
     is not necessary to call 'backgroundCorrect' directly unless one
     wants to use a method other than simple subtraction. Calling
     'backgroundCorrect' before 'normalizeWithinArrays' will over-ride
     the default background correction.

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

     An 'RGList' object in which components 'R' and 'G' are background
     corrected and components 'Rb' and 'Gb' are removed.

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

     Gordon Smyth

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

     Edwards, D. E. (2003). Non-linear normalization and background
     correction in one-channel cDNA microarray studies _Bioinformatics_
     19, 825-833. 

     McGee, M., and Chen, Z. (2006). Parameter estimation for the
     exponential-normal convolution model for background correction of
     Affymetrix GeneChip data. _Stat Appl Genet Mol Biol_, Volume 5,
     Article 24.

     Ritchie, M. E., Silver, J., Oshlack, A., Silver, J., Holmes, M.,
     Diyagama, D., Holloway, A., and Smyth, G. K. (2007). A comparison
     of background correction methods for two-colour microarrays.
     _Bioinformatics_ 23, 2700-2707. <URL:
     http://bioinformatics.oxfordjournals.org/cgi/content/abstract/btm412>

     Silver, J., Ritchie, M. E., and Smyth, G. K. (2009). Microarray
     background correction: maximum likelihood estimation for the
     normal-exponential convolution model. _Biostatistics_. <URL:
     http://biostatistics.oxfordjournals.org/cgi/content/abstract/kxn042>

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

     An overview of background correction functions is given in
     '04.Background'.

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

     RG <- new("RGList", list(R=c(1,2,3,4),G=c(1,2,3,4),Rb=c(2,2,2,2),Gb=c(2,2,2,2)))
     backgroundCorrect(RG)
     backgroundCorrect(RG, method="half")
     backgroundCorrect(RG, method="minimum")
     backgroundCorrect(RG, offset=5)

