isa2 (version 0.3.4)

isa.normalize: Normalize input data for use with ISA

Description

Normalize a matrix and create a form that can be effectively used for ISA runs.

Usage

"isa.normalize"(data, ...)

Arguments

data
A numeric matrix, the input data. It might contains NA and/or NaN values.
...
Additional arguments, see details below.

Value

A list of two normalized matrices, the first one is transposed.

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/or NaN 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.

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

Run this code
## 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")
}

Run the code above in your browser using DataLab