# Batch effects correction

### Description

Computes the SpC matrix where the fixed effects of a blocking factor are substracted.

### Usage

1 |

### Arguments

`dat` |
A SpC matrix with proteins in the rows and samples in the columns. |

`fbatch` |
A blocking factor of length equal to the number of columns in the expression matrix. |

`half` |
When FALSE, the contrast coefficients are of the contr.treatment style. When TRUE, the contrast coefficients are of the contr.sum style, its aim is to distribute equally the effect to each batch level, instead of having untouched reference levels. |

`sqrt.trans` |
When TRUE the fit is done on the square root transformed SpC matrix. |

### Details

A model with intercept and the blocking factor is fitted. The batch effects
corrected SpC matrix is computed by substracting the estimated effect of the
given blocking factor. When there is no clear reference batch level, the
default option `half=TRUE`

should be preferred.
The square root transformation is known to stabilize the variance of Poisson
distributed counts (with variance equal to the mean). The linear model fitting
gives more accurate errors and p-values on the square root transformed SpC
matrix. Nevertheless with exploratory data analysis purposes, both the raw and
square root transformed SpC matrix may give good results.

### Value

The batch effects corrected SpC matrix.

### Author(s)

Josep Gregori

### See Also

The `MSnSet`

class documentation and `normalize`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
data(msms.dataset)
msnset <- pp.msms.data(msms.dataset)
### Plot the PCA on the two first PC, and colour by treatment level
ftreat <- pData(msnset)$treat
counts.pca(msnset, facs=ftreat, do.plot=TRUE, snms=as.character(ftreat))
### Correct the batch effects
spcm <- exprs(msnset)
fbatch <- pData(msnset)$batch
spcm2 <- batch.neutralize(spcm, fbatch, half=TRUE, sqrt.trans=TRUE)
### Plot the PCA on the two first PC, and colour by treatment level
### to visualize the improvement.
exprs(msnset) <- spcm2
counts.pca(msnset, facs=ftreat, do.plot=TRUE, snms=as.character(ftreat))
### Incidence of the correction
summary(as.vector(spcm-spcm2))
plot(density(as.vector(spcm-spcm2)))
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.