Entering edit mode
At 05:30 AM 11/02/2005, Hua Weng wrote:
>Dear Dr. Smyth and Bioconductor members:
>
>I have a question about M Values in toptable in LIMMA package. I know
the
>M in toptable is not a simple average from all the replicates, it is
a
>coefficient value from lmFit. I have three biological replicate
array
>and within each array I have six technical replicates. My commands
are the
>following:
>
>design <- c(1,1,1)
> fit <- lmFit(MA.norm, design, ndups=6, spacing=800)
If you have duplicate spots, you should also estimate the correlation
between them. The default correlation for duplicates is 0.75. Is this
really what you intend? Given the spacing between your duplicates, it
could
be larger than ideal.
>eb <- ebayes(fit)
>x <- toptable(number=length(fit$coefficients), genelist=genes,
fit=fit, A
>= fit$Amean, eb=eb, adjust="fdr")
>
>These commands seems successful, I got what I want. For most of the
genes,
>their M very close to simple average across 18 replicates. But one M
vaule
>for one gene seems wired.
>
>The result for this gene from toptable :
> Block Row Column
> Name ID M A
T
> P.value B
>"58" "1" "6" "8" "P24-E1" "P24-E1"
1.441473
> 12.652 4.74793 2.507e-04 0.9625
>The M values I pluged in to run lmFit:
>ID M(bio rep1) A weight M(bio
>rep2) A weight M(bio rep3) A weight
>"P24-E1" 1.388976 14.8516 1.0 1.367237
13.1931
> 1.0 1.4567540 13.6927 1.0
>P24-E1" 1.682181 15.0347 1.0 1.410991
13.3535
> 1.0 0.9180444 13.7189 1.0
>"P24-E1" 1.419217 14.9294 1.0 0.978001
13.1710
> 1.0 -1.0304558 3.3577 0.1
>"P24-E1" 0.911255 14.8090 1.0 1.007387
13.1383
> 1.0 0.5174605 13.2928 1.0
>"P24-E1" 1.058592 14.8387 1.0 0.972540
13.1374
> 1.0 0.6585728 13.4881 1.0
>"P24-E1" 0.343243 14.2827 1.0 0.859519
12.9058
> 1.0 -2.1799057 2.5352 0.1
>
>But the simple average for these replicates exclude those with weight
of
>0.1 is 1.05938. I tried to reproduce 1.441473, but it seems out of my
>limmit. Could you help me to explain how this happens? How dose LIMMA
>calculate the M in toptable?
limma computes generalized least squares, using any weights which it
finds
in your object 'norm' and taking into account the correlations between
duplicates. It is not a simple average, nor even a simple weighted
average,
because the spots are correlated.
You have given weights above for biological replicates, but limma uses
weights for individual spots.
Gordon
>Thanks,
>Hua