# First roughly normalize the data by aligning the medians log.intensity <- sweep( log.intensity, 2, apply( log.intensity, 2, median ) ) + mean( log.intensity) # Then construct a reference log.standard <- apply( log.intensity, 1, mean, trim=.1) N = dim(log.intensity)[2] par(mfrow=c(1,2),mar=c(3,3,3,1)) plot( density( log.standard),main="Mean Density") for ( ii in 1:N ) lines( density( log.intensity[,ii]), col=rainbow(16,end=.7)[ii]) boxplot( as.data.frame( log.intensity),pch='.') library( geneplotter) n = floor( sqrt(N)) par( mfrow=c( n, n ), mar= c(2,1,2,1)) for ( ii in 1:(n^2) ) { smoothScatter( log.standard, log.intensity[,ii] - log.standard, ylim=c(-1,1), xlim=quantile(log.standard,c(0,.99) ) ) title(main=colnames(log.intensity)[ii]) abline( h = 0, col=2 ) lines( lowess( log.standard, log.intensity[,ii] - log.standard, f=.3 ), col=7, lwd=2 ) }