[BioC] limma, voom, weights: factorial versus nested interaction results
Ryan C. Thompson
rct at thompsonclan.org
Wed Jan 2 19:47:19 CET 2013
It would probably help to have the exact code that you used to call
voom. voom can take a lot of arguments, and I'm not sure which ones
would make a difference here.
On 01/02/2013 07:31 AM, Reiner Schulz wrote:
> Dear all,
>
> Am analysing an RNA-seq experiment with a two-way factorial design, and
> am observing different results for two contrasts of interest depending
> on whether I use a factorial model matrix or a nested interaction model
> matrix. I only observe this if the data are pre-processed w/ voom:
>> counts.voom= voom( ...
> i.e., when there are observational level weights passed to lmFit. If I
> only pass counts.voom$E (no observational level weights) to lmFit, the
> results for the two contrasts of interest are identical for the
> factorial and nested interaction model matrices.
> Is this to be expected, and if so, what is the explanation?
>
> Much appreciated, Reiner
>
> PS: some more details ...
>
>> strain
> [1] MUT MUT MUT MUT MUT MUT MUT MUT MUT MUT MUT MUT MUT WT WT WT WT
> WT WT
> [20] WT WT WT WT WT WT WT
> Levels: WT MUT
>> treat
> [1] U T2 T1 U T2 T1 U U T2 T1 U T2 T1 U T2 T1 U T2 T1 U U T2
> T1 U T2
> [26] T1
> Levels: U T1 T2
>
>> cond= factor( paste( sep='.', strain, treat), lev=c('WT.U', 'MUT.U',
> 'WT.T1', 'MUT.T1', 'WT.T2', 'MUT.T2'))
>> design.matrix= model.matrix( ~0 + cond)
>> design.matrix
> WT.U MUT.U WT.T1 MUT.T1 WT.T2 MUT.T2
> 1 0 1 0 0 0 0
> 2 0 0 0 0 0 1
> 3 0 0 0 1 0 0
> 4 0 1 0 0 0 0
> 5 0 0 0 0 0 1
> 6 0 0 0 1 0 0
> 7 0 1 0 0 0 0
> 8 0 1 0 0 0 0
> 9 0 0 0 0 0 1
> 10 0 0 0 1 0 0
> 11 0 1 0 0 0 0
> 12 0 0 0 0 0 1
> 13 0 0 0 1 0 0
> 14 1 0 0 0 0 0
> 15 0 0 0 0 1 0
> 16 0 0 1 0 0 0
> 17 1 0 0 0 0 0
> 18 0 0 0 0 1 0
> 19 0 0 1 0 0 0
> 20 1 0 0 0 0 0
> 21 1 0 0 0 0 0
> 22 0 0 0 0 1 0
> 23 0 0 1 0 0 0
> 24 1 0 0 0 0 0
> 25 0 0 0 0 1 0
> 26 0 0 1 0 0 0
>
>> design.matrix.alt= model.matrix( ~strain + strain:treat)
>> design.matrix.alt
> Intercept MUT WT:T1 MUT:T1 WT:T2 MUT:T2
> 1 1 1 0 0 0 0
> 2 1 1 0 0 0 1
> 3 1 1 0 1 0 0
> 4 1 1 0 0 0 0
> 5 1 1 0 0 0 1
> 6 1 1 0 1 0 0
> 7 1 1 0 0 0 0
> 8 1 1 0 0 0 0
> 9 1 1 0 0 0 1
> 10 1 1 0 1 0 0
> 11 1 1 0 0 0 0
> 12 1 1 0 0 0 1
> 13 1 1 0 1 0 0
> 14 1 0 0 0 0 0
> 15 1 0 0 0 1 0
> 16 1 0 1 0 0 0
> 17 1 0 0 0 0 0
> 18 1 0 0 0 1 0
> 19 1 0 1 0 0 0
> 20 1 0 0 0 0 0
> 21 1 0 0 0 0 0
> 22 1 0 0 0 1 0
> 23 1 0 1 0 0 0
> 24 1 0 0 0 0 0
> 25 1 0 0 0 1 0
> 26 1 0 1 0 0 0
>
> Observed equalities (as expected):
> MUT == MUT.U - WT.U
> WT:T1 == WT.T1 - WT.U
> MUT:T1 == MUT.T1 - MUT.U
> WT:T2 == WT.T2 - WT.U
> MUT:T2 == MUT.T2 - MUT.U
> MUT:T1 - WT:T1 == (MUT.T1 - MUT.U) - (WT.T1 - WT.U)
> MUT:T2 - WT:T2 == (MUT.T2 - MUT.U) - (WT.T2 - WT.U)
>
> Observed inequalities (only w/ voom pre-processed data; unexpected):
> WT:T1 - WT:T2 != (WT.T1 - WT.U) - (WT.T2 - WT.U)
> MUT:T1 - MUT:T2 != (MUT.T1 - MUT.U) - (MUT.T2 - MUT.U)
>
> --
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
More information about the Bioconductor
mailing list