normn_MA: Multi-dimensional MA normalization for plate effect

Description Usage Arguments Value Author(s) References Examples

View source: R/normn_MA.R

Description

Normalize data to minimize the difference among the subgroups of the samples generated by experimental factor such as multiple plates (batch effects)
- the primary method is Multi-MA, but other fitting function, f in the reference (e.g. loess) is available, too.
This method is based on the assumptions stated below

  1. The geometric mean value of the samples in each subgroup (or plate) for a single target is ideally same as those from the other subgroups.

  2. The subgroup (or plate) effects that influence those mean values for multiple observed targets are dependent on the values themselves. (intensity dependent effects)


This function calls the normn_MA of the package MDimNormn.

Usage

1
2
3
4
5
6
7
normn_MA(
  baf,
  expGroupVar = batch_colname(baf, "sample"),
  represent_FUN = function(x) mean(x, na.rm = T),
  fitting_FUN = NULL,
  isLog = TRUE
)

Arguments

baf

a BAf-class object

expGroupVar

the column name in @sinfo which contains the experimental factor to be used for grouping

represent_FUN

a function that computes representative values for each experimental group (e.g. plate). The default is mean ignoring any NA

fitting_FUN

NULL or a function that fits to data in MA-coordinates.
If it is NULL as the default, 'Multi-MA' method is employed.
If a function is used, two arguments of m_j and A are required, which are m_j coordinate in M_d and A coordinate, respectively.

isLog

TRUE or FALSE, if the normalization should be conducted after log-transformation. The affinity proteomics data from suspension bead arrays is recommended to be normalized using the default, isLog = TRUE.

Value

The BAf-class object with normalized values

Author(s)

Mun-Gwan Hong mun-gwan.hong@scilifelab.se

References

Hong M-G, Lee W, Nilsson P, Pawitan Y, & Schwenk JM (2016) Multidimensional normalization to minimize plate effects of suspension bead array data. J. Proteome Res., 15(10) pp 3473-80.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data(sba)
B <- sba[sba@sinfo$cohort != "EMPTY", ]
C <- normn_MA(B)		# normalize excluding "EMPTY"

i_rnd <- sample(1:ncol(C), 1)
sd(log(sX(B)[, i_rnd]))
sd(log(sX(C)[, i_rnd]))         # reduced variation

# MA-loess normalization
C1 <- normn_MA(B, fitting_FUN= function(m_j, A) loess(m_j ~ A)$fitted)

# On MA coordinates, weighted linear regression normalization
C2 <- normn_MA(B, fitting_FUN= function(m_j, A) {
	beta <- lm(m_j ~ A, weights= 1/A)$coefficients
	beta[1] + beta[2] * A
})

# On MA coordinates, robust linear regression normalization
if(any(search() == "package:MASS")) {	# excutable only when MASS package was loaded.
  C3 <- normn_MA(B, fitting_FUN= function(m_j, A) {
		 beta <- rlm(m_j ~ A, maxit= 100)$coefficients
		 beta[1] + beta[2] * A
	 })
}

Rundmus/BAf-R_package documentation built on May 18, 2020, 12:59 p.m.