Learn R Programming

OLIN (version 1.50.0)

bas: Between-array scaling

Description

This function performs an between-array scaling

Usage

bas(obj,mode="var")

Arguments

obj
object of “marrayNorm”
mode
mode of scaling. Default option is scaling of arrays to have the same within-array variance of logged ratios (var). Alternatively, mad qq can be used (see details)

Details

The function bsv adjust the scale of logged ratios (M=(log2(Ch2)-log2(Ch1))) between the different arrays stored in obj.

Following schemes (mode) are implemented:

  • mode="var": Logged ratios M are scaled to show the same (within-array) variance for all arrays in the batch stored in obj. The variance is calculated using var.

  • mode="mad": The same procedure as for mode="var" is applied using, however, median absolute deviation (mad) as robust estimate for withing-array variance.
  • mode="qq": The quantile scaling is using the same procedure as the quantile normalisation described by Bolstad et al. (2003). In brief: Given X is the matrix with logged ratios (column corresponding to arrays, rows to genes)
    1. Sort each column of X (independently) producing Xs,
    2. Replace values in each row of Xs by the mean value of the row producing Xsm,
    3. Rearrange the ordering for each column of matrix Xsm, so that it has the columns have same ordering as for the original matrix X.
    The last step yields the scaled logged ratios M.

    References

    Bolstad et al., A comparison of normalization methods for high density oligonucleotide array data based on variance and bias, Bioinformatics, 19: 185-193, 2003

    See Also

    marrayNorm,var,mad

    Examples

    Run this code
    
    
    # DISTRIBUTION OF M BEFORE SCALING
    data(sw.olin)
    
    col <- c("red","blue","green","orange")
    M <- maM(sw.olin)
    
    plot(density(M[,4]),col=col[4],xlim=c(-2,2))
    for (i in 1:3){
      lines(density(M[,i]),col=col[i])
    }
    
    
    # SCALING AND VISUALISATION  
    sw.olin.s <- bas(sw.olin,mode="var")
      
    M <- maM(sw.olin.s)
    
    plot(density(M[,4]),col=col[4],xlim=c(-2,2))
    for (i in 1:3){
      lines(density(M[,i]),col=col[i])
    }
    
    

    Run the code above in your browser using DataLab