[BioC] Problem with A mean in Limma
david hot
David.Hot at pasteur-lille.fr
Wed Feb 22 14:45:07 CET 2006
Dear All,
I have posted a mail to the list 2 weeks ago with no answer so far. My first message was probably not very clear so I try again.
I am using Limma 2.4.7 on R 2.2.1 to analyse two-color arrays and I have noticed something strange in the way the mean 'A' value is calculated when one use a contrast matrix.
In my experiment I want to compare the effect of a stimulation on Tcells. This stimulation was applied on Tcells during 6h or during 24h. The 6h stimulated Tcells and 24h stimulated Tcells were compared to the same non stimulated cells (= reference). I have got the following Targets Frame :
FileName Cy3 Cy5
CtrlCy5vsTh2_24hCy3.dav 24h Ref
CtrlCy5vsTh2_6hCy3.dav 6h Ref
Th2_24hCy5vsCtrlCy3.dav Ref 24h
Th2_6hCy5vsCtrlCy3.dav Ref 6h
I would like to know which genes are modulated after 6h of stimulation, which are modulated after 24h and genes modulated between 6h and 24h. After normalisation of the data I use the following script to create a matrix and a contrast matrix:
> design <- cbind("6h"=c(0,-1,0,1),"24h"=c(-1,0,1,0))
> targets <- readTargets()
> rownames(design) <- removeExt(targets$FileName)
> design
6h 24h
CtrlCy5vsTh2_24hCy3 0 -1
CtrlCy5vsTh2_6hCy3 -1 0
Th2_24hCy5vsCtrlCy3 0 1
Th2_6hCy5vsCtrlCy3 1 0
> fit <- lmFit(MA, design)
> cont.matrix <- cbind("24h-6h"=c(-1, 1), "6h"=c(1,0), "24h"=c(0,1))
> rownames(cont.matrix) <- cbind("6h","24h")
> cont.matrix
24h-6h 6h 24h
6h -1 1 0
24h 1 0 1
> fitcont <- contrasts.fit(fit, cont.matrix)
> fitcontbayes<-eBayes(fitcont)
If one look at the results of the 3 coef of the contrast matrix (: 24h-6h, 6h and 24h) everything seem OK :
> topTable(fitcontbayes, coef=1, n=10, adjust="fdr")
Block Column Row ID Name Status M A t P.Value B
21897 39 9 1 46861 PRAC Gene 2.876222 8.631290 8.433385 0.03855747 3.506137
20473 36 1 14 28828 PAPD1 Gene -2.383738 6.927029 -7.473090 0.03855747 2.783536
19040 34 8 2 78497 CLDN23 Gene -3.139618 5.859508 -8.299092 0.03855747 2.386795
6221 11 5 20 84193 LOC115749 Gene 3.010418 5.792223 7.957571 0.03855747 2.193344
19497 34 9 21 125848 CRISP3 Gene -2.376080 6.925017 -6.742931 0.07172051 2.143568
21099 37 3 16 147050 HCG2P7 Gene -2.724596 6.706554 -7.202047 0.07172051 1.713956
6196 11 4 19 64892 ETR101 Gene 1.954074 8.169356 6.048570 0.13538457 1.453035
6199 11 7 19 149357 #NA Gene 1.898843 8.060294 5.954056 0.14110973 1.352464
21132 37 12 17 155265 LOC440590 Gene -2.527218 6.638719 -6.680307 0.10272218 1.336678
20556 36 12 17 160410 #NA Gene 2.082918 7.656239 5.881841 0.14362662 1.274528
> topTable(fitcontbayes, coef=2, n=10, adjust="fdr")
Block Column Row ID Name Status M A t P.Value B
2603 5 11 13 128320 CA2 Gene 2.312298 8.323775 12.690864 0.0004900596 7.446470
23250 41 18 9 83486 CYP1B1 Gene 1.365898 9.351358 7.529896 0.0168728265 4.118037
14667 26 3 12 89981 TPO Gene -1.370724 9.825983 -7.441705 0.0168728265 4.018976
17543 31 23 11 95124 TNC Gene 1.362982 11.478777 7.450669 0.0176675806 3.633118
27313 48 1 11 59209 CTSC Gene 1.337229 10.259389 6.727203 0.0276792498 3.169911
2542 5 22 10 91105 FABP5 Gene 1.180159 10.683417 6.708199 0.0276792498 3.146168
19497 34 9 21 125848 CRISP3 Gene 2.254023 6.925017 7.834144 0.0168728265 3.042473
4862 9 14 11 158129 CAPN14 Gene 2.252979 5.170231 8.422209 0.0168728265 3.002382
18922 33 10 21 49700 DKFZp547F072 Gene 2.241397 6.368605 8.378910 0.0168728265 2.975528
20210 36 2 3 129217 MGC10854 Gene 2.155348 6.019866 8.057238 0.0176289711 2.768940
> topTable(fitcontbayes, coef=3, n=10, adjust="fdr")
Block Column Row ID Name Status M A t P.Value B
23257 41 1 10 119072 CDH26 Gene 2.045561 8.618405 10.977306 0.0007520237 8.012605
2550 5 6 11 112799 SERPINB3 Gene 1.905378 9.951108 10.146438 0.0007520237 7.297240
21897 39 9 1 46861 PRAC Gene 3.036560 8.631290 10.904529 0.0007520237 6.084763
6221 11 5 20 84193 LOC115749 Gene 3.157852 5.792223 11.804853 0.0007520237 5.857994
20473 36 1 14 28828 PAPD1 Gene -2.693871 6.927029 -10.343418 0.0009737256 5.746556
27313 48 1 11 59209 CTSC Gene 1.677554 10.259389 8.439275 0.0036026318 5.575635
17543 31 23 11 95124 TNC Gene 2.432964 11.478777 9.404284 0.0022965417 5.110162
18097 32 1 11 104580 CTSC Gene 1.414608 9.663292 8.014200 0.0056176380 5.087315
22151 39 23 11 104788 COL6A3 Gene 1.507607 9.470752 7.775592 0.0069709347 4.801786
8275 15 19 9 53347 TXN delta 3 Gene 1.340699 11.341639 7.522172 0.0090096504 4.489250
But when I sort the table according to the 'A' value one can see that the genes have exactly the same 'A' values for the 1st the 2d and the 3d coef :
> topTable(fitcontbayes, coef=1, n=10, adjust="fdr", sort.by="A")
Block Column Row ID Name Status M A t P.Value B
4716 9 12 5 17228 CPSF4 Gene NA 15.16203 NA NA NA
2944 6 16 3 96063 RBM4 Gene NA 15.12503 NA NA NA
772 2 4 9 5198 KCNAB3 Gene NA 15.06048 NA NA NA
18041 32 17 8 101204 GABBR1 Gene NA 15.03191 NA NA NA
16817 30 17 5 15058 PRKAA1 Gene NA 14.98546 NA NA NA
7642 14 10 7 90324 GSTA3 Gene NA 14.85254 NA NA NA
5105 9 17 21 149752 LOC199800 Gene NA 14.83062 NA NA NA
20702 36 14 23 104223 #NA Gene NA 14.81930 NA NA NA
4270 8 22 10 94545 SERPINA6 Gene NA 14.79895 NA NA NA
6429 12 21 4 96944 MAD1L1 Gene NA 14.79082 NA NA NA
> topTable(fitcontbayes, coef=2, n=10, adjust="fdr", sort.by="A")
Block Column Row ID Name Status M A t P.Value B
4716 9 12 5 17228 CPSF4 Gene NA 15.16203 NA NA NA
2944 6 16 3 96063 RBM4 Gene NA 15.12503 NA NA NA
772 2 4 9 5198 KCNAB3 Gene NA 15.06048 NA NA NA
18041 32 17 8 101204 GABBR1 Gene NA 15.03191 NA NA NA
16817 30 17 5 15058 PRKAA1 Gene NA 14.98546 NA NA NA
7642 14 10 7 90324 GSTA3 Gene NA 14.85254 NA NA NA
5105 9 17 21 149752 LOC199800 Gene NA 14.83062 NA NA NA
20702 36 14 23 104223 #NA Gene NA 14.81930 NA NA NA
4270 8 22 10 94545 SERPINA6 Gene NA 14.79895 NA NA NA
6429 12 21 4 96944 MAD1L1 Gene NA 14.79082 NA NA NA
> topTable(fitcontbayes, coef=3, n=10, adjust="fdr", sort.by="A")
Block Column Row ID Name Status M A t P.Value B
4716 9 12 5 17228 CPSF4 Gene NA 15.16203 NA NA NA
2944 6 16 3 96063 RBM4 Gene NA 15.12503 NA NA NA
772 2 4 9 5198 KCNAB3 Gene NA 15.06048 NA NA NA
18041 32 17 8 101204 GABBR1 Gene NA 15.03191 NA NA NA
16817 30 17 5 15058 PRKAA1 Gene NA 14.98546 NA NA NA
7642 14 10 7 90324 GSTA3 Gene NA 14.85254 NA NA NA
5105 9 17 21 149752 LOC199800 Gene NA 14.83062 NA NA NA
20702 36 14 23 104223 #NA Gene NA 14.81930 NA NA NA
4270 8 22 10 94545 SERPINA6 Gene NA 14.79895 NA NA NA
6429 12 21 4 96944 MAD1L1 Gene NA 14.79082 NA NA NA
In all the 3 tables the mean 'A' value is the mean of the 'A' values from the 4 slides where I expected for the second and third table (coef=2 and coef=3) a mean between only 2 slides (slides 2 and 4 for 6h (coef=2) and slides 1 and 3 for 24h (coef=3)). I first though it was just a problem in the report of 'A' values in topTable but it seems to have an effect also on the P.value and B value.
Is that a mistake in 'lmFit' or 'contrasts.fit' functions or am I doing something wrong in the design of my matrix and contrast matrix?
Many thanks for any help or comments.
David
######################################
David HOT, PhD.
Laboratoire d'Etudes Transcriptomiques et Génomiques Appliquées - Plate-forme Biopuces
UMR8161 - IFR142
Institut Pasteur de Lille
1, rue du professeur Calmette
59 019 LILLE, Cedex.
FRANCE
Tél : +33 (0)3 20 87 72 09
Fax : +33 (0)3 20 87 73 11
More information about the Bioconductor
mailing list