[BioC] Re: Limma: M value in toptable

Gordon Smyth smyth at wehi.edu.au
Thu Feb 10 22:30:08 CET 2005


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



More information about the Bioconductor mailing list