isa.normalize {isa2} | R Documentation |
Normalize input data for use with ISA
Description
Normalize a matrix and create a form that can be effectively used for ISA runs.
Usage
## S4 method for signature 'matrix'
isa.normalize(data, ...)
Arguments
data |
A numeric matrix, the input data. It might contains
|
... |
Additional arguments, see details below. |
Details
This function can be called as
isa.normalize(data, prenormalize = FALSE)
where the arguments are:
- data
A numeric matrix, the input data. It might contains
NA
and/orNaN
values.- prenormalize
Logical scalar, see details below.
It was observed that the ISA works better if the input matrix is scaled and its rows have mean zero and standard deviation one.
An ISA step consists of two sub-steps, and this implies two different normalizations, in the first the rows, in the second the columns of the input matrix will be scaled.
If the prenormalize
argument is set to TRUE
, then
row-wise scaling is calculated on the column-wise scaled matrix and
not on the input matrix directly.
Value
A list of two normalized matrices, the first one is transposed.
Author(s)
Gabor Csardi Gabor.Csardi@unil.ch
References
Bergmann S, Ihmels J, Barkai N: Iterative signature algorithm for the analysis of large-scale gene expression data Phys Rev E Stat Nonlin Soft Matter Phys. 2003 Mar;67(3 Pt 1):031902. Epub 2003 Mar 11.
Ihmels J, Friedlander G, Bergmann S, Sarig O, Ziv Y, Barkai N: Revealing modular organization in the yeast transcriptional network Nat Genet. 2002 Aug;31(4):370-7. Epub 2002 Jul 22
Ihmels J, Bergmann S, Barkai N: Defining transcription modules using large-scale gene expression data Bioinformatics 2004 Sep 1;20(13):1993-2003. Epub 2004 Mar 25.
See Also
isa2-package for a short introduction on the Iterative
Signature Algorithm. See isa
for an easy way of running
ISA.
Examples
## In-silico data
set.seed(1)
insili <- isa.in.silico()
nm <- isa.normalize(insili[[1]])
## Check it
max(abs(rowSums(nm[[1]])))
max(abs(rowSums(nm[[2]])))
max(abs(apply(t(nm[[1]]), 2, sd) - 1))
max(abs(apply(t(nm[[2]]), 2, sd) - 1))
## Plot them
if (interactive()) {
layout(rbind(1:2,3:4))
image(insili[[1]], main="Original data")
image(t(nm[[1]]), main="Row normalized")
image(nm[[2]], main="Column normalized")
}