[BioC] Limma: Contrasts comparing one factor to multiple others
Daniel Brewer
daniel.brewer at icr.ac.uk
Wed Feb 11 15:52:10 CET 2009
Hello,
I am trying to get to the bottom of how limma works and was thinking
about what the best way is to compare one level of a variable to
multiple other levels. For example say we had three sample types A, B
and C and I want to find genes that are differentially expressed between
A and the other samples. I can see that there would be two ways to set
up the design matrix:
1) to have columns "A" and "Other"
2) to have columns "A", "B" and "C" and deal with the comparison in a
contrast
I would have expected both of these approaches to produce the same
results but they do not. Is this correct? And if they are different
which is the best approach to use and why are they different?
A test example is posted below:
Library(limma)
testexpr <- matrix(runif(100),ncol=10)
design2 <- matrix(c(rep(1,5),rep(0,5),rep(0,5),rep(1,5)),ncol=2)
> design2
A Other
[1,] 1 0
[2,] 1 0
[3,] 1 0
[4,] 1 0
[5,] 1 0
[6,] 0 1
[7,] 0 1
[8,] 0 1
[9,] 0 1
[10,] 0 1
design1 <- model.matrix(~as.factor(c(rep(1,5),2,2,3,3,3)))
> design1
A B C
1 1 0 0
2 1 0 0
3 1 0 0
4 1 0 0
5 1 0 0
6 0 1 0
7 0 1 0
8 0 0 1
9 0 0 1
10 0 0 1
fit1 <- lmFit(testexpr,design=design1)
contrasts.matrix1 <- makeContrasts("AvsOther"=A-(B+C)/2,levels=design1)
fit1 <- eBayes(contrasts.fit(fit1,contrasts=contrasts.matrix1))
fit2 <- lmFit(testexpr,design=design2)
contrasts.matrix2 <- makeContrasts("AvsOther"=A-Other,levels=design2)
fit2 <- eBayes(contrasts.fit(fit2,contrasts=contrasts.matrix2))
> topTable(fit1,coef=1)
logFC AveExpr t P.Value adj.P.Val B
4 0.4990143 0.4692092 2.5585742 0.01051024 0.1051024 -2.791453
8 -0.3745471 0.6429097 -1.9203987 0.05480755 0.2231148 -4.069512
3 -0.3573284 0.4941828 -1.8321141 0.06693443 0.2231148 -4.217641
1 -0.3137072 0.4258817 -1.6084570 0.10773513 0.2693378 -4.561710
7 0.2588919 0.5142112 1.3274050 0.18437474 0.3687495 -4.930648
5 -0.2243146 0.5899142 -1.1501181 0.25009522 0.4167625 -5.127042
2 0.2056316 0.4184454 1.0543258 0.29173376 0.4167625 -5.221461
9 0.1813196 0.5025485 0.9296718 0.35254105 0.4406763 -5.332042
6 -0.1109509 0.4021577 -0.5688735 0.56944202 0.6327134 -5.573792
10 0.0722048 0.5218702 0.3702125 0.71122419 0.7112242 -5.657208
> topTable(fit2,coef=1)
logFC AveExpr t P.Value adj.P.Val B
4 0.47838295 0.4692092 2.5633453 0.01036689 0.1036689 -2.781949
8 -0.37026456 0.6429097 -1.9840087 0.04725487 0.1692887 -3.961164
3 -0.36452956 0.4941828 -1.9532785 0.05078660 0.1692887 -4.015323
1 -0.28931647 0.4258817 -1.5502601 0.12107910 0.3026977 -4.647349
7 0.25213156 0.5142112 1.3510102 0.17669216 0.3533843 -4.906105
5 -0.23271487 0.5899142 -1.2469687 0.21240897 0.3540150 -5.027093
2 0.19075798 0.4184454 1.0221488 0.30671047 0.4381578 -5.255440
9 0.15219110 0.5025485 0.8154938 0.41478969 0.5184871 -5.425425
10 0.08103956 0.5218702 0.4342387 0.66411512 0.6936484 -5.638698
6 -0.07351301 0.4021577 -0.3939088 0.69364840 0.6936484 -5.653648
The resulting fits using the two different approaches are different.
Many thanks
Dan
--
**************************************************************
Daniel Brewer, Ph.D.
Institute of Cancer Research
Molecular Carcinogenesis
Email: daniel.brewer at icr.ac.uk
**************************************************************
The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company Limited by Guarantee, Registered in England under Company No. 534147 with its Registered Office at 123 Old Brompton Road, London SW7 3RP.
This e-mail message is confidential and for use by the a...{{dropped:2}}
More information about the Bioconductor
mailing list