R: Normalize input data for use with ISA

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 `NA` and/or `NaN` values.
`...` | 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/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.

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

[Package isa2 version 0.3.5 Index]