[BioC] Limma: four suggestions related to weights and background
correction
Ramon Diaz-Uriarte
rdiaz at cnio.es
Fri Jan 23 17:05:10 MET 2004
Dear Gordon and other bioconductor-users,
We have encountered a few recurrent problem when using limma. If I may, I'd
like to make four suggestions for changes which might benefit other people:
1. When "backgroundCorrect(temp1, method = "none")" is used columns for Rb and
Gb are eliminated from the RGList object. We have found this problematic,
because, even if one does not want to do background subtraction, one might
still want to look at image plots of background, just to check nothing funny
has happened with the background. The problem is that the subsequent step of
using "normalizeWithinArrays" calls MA.RG, which itself uses the presence or
absence of the Rb and Gb to do (or not) the subtraction. Then, if we still
want to plot background and do the normalization, we either have to make sure
we are done with all background business before we do the normalization
(since after that all background info will be lost) or we need to keep the
normalized and the unnormalized objects around. None of these seem ideal. We
wonder if it would be possible to pass the type of subtraction to
"normalizeWithinArrays" and to "MA.RG" as a parameter, so that the original
object preservers all the information, but still we can do no background
subtraction. (We are hacking the code here, for our internal use).
2. We have found it slightly confussing that the M value of a point with
weight 0 for the normalization is not an NA. Sure, the points with weight = 0
do not get used to fit the loess curve, but they still have a residual. But,
so far, with the wet lab people we have worked, it has always been the case
that if a point was deemed unsuitable for the normalization it was also
unsuitable for further analyses (though, occasionally, points suitable for
fitting the normalization curve have been deemed unsuitable for further
analyses).
Are we missing something obvious here?
3. Occasionally, a complet print-tip group might be missing which will make
"normalizeWithinArrays" to fail. We have added the following to that
function, in the print-tip loess case, right before the line "spots <- spots
+ nspots" (and substituting the direct call to loessFit):
******************************************
num.fill <- length(object$M[spots, j])
object$M[spots, j] <- rep(NA, num.fill)
no.objects <-
try(object$M[spots, j]
<- loessFit(y, x, w, span = span,
iterations = iterations)$residuals)
if(class(no.objects) == "try-error")
print(paste("WARNING: in print-tip loess normalization",
"no samples in array", j, "grid row", gridr,
"grid column", gridc))
********************************************
4. When all weights are either 0 or 1, there are slight differences in the
results of the normalization (of points with weight = 1) depending on whether
or not the cases with weight of 0 are passed to subsequent calls. Sure, these
differences are irrelevant, but it can be disconcerting. Wouldn't it be
appropriate to check for the binary situation of weights either 0 or 1, and
if so, exclude points with weight 0, which would allow us to call directly
".C("lowess"", instead of ".vsimpleLoess" (inside "loessFit")?
***************
The following is an example.
(The data sets are at:
http://bioinfo.cnio.es/~rdiaz/00G66.txt)
temp01 <- read.maimages(files = "00G66.txt",
source = "genepix",
wt.fun=wtflags(0))
temp01.b <- temp01
set.to.na <- which(temp01.b$weights == 0)
temp01.b$R[set.to.na] <- NA
temp01.b$G[set.to.na] <- NA
temp01.c <- temp01.b
temp01.c$weights <- NULL
n1c <- normalizeWithinArrays(temp01.c, layout = temp.layout,
iterations = 5,
method = "loess")
n1b <- normalizeWithinArrays(temp01.b, layout = temp.layout,
iterations = 5,
method = "loess")
n1 <- normalizeWithinArrays(temp01, layout = temp.layout,
iterations = 5,
method = "loess")
pairs(cbind(n1$M, n1b$M, n1c$M))
summary(n1$M - n1b$M)
******************
Best,
R.
--
Ramón Díaz-Uriarte
Bioinformatics Unit
Centro Nacional de Investigaciones Oncológicas (CNIO)
(Spanish National Cancer Center)
Melchor Fernández Almagro, 3
28029 Madrid (Spain)
Fax: +-34-91-224-6972
Phone: +-34-91-224-6900
http://bioinfo.cnio.es/~rdiaz
PGP KeyID: 0xE89B3462
(http://bioinfo.cnio.es/~rdiaz/0xE89B3462.asc)
More information about the Bioconductor
mailing list