[BioC] technical replicates and lmFit error
Gordon K Smyth
smyth at wehi.EDU.AU
Sat Jul 21 02:33:24 CEST 2012
Dear Elaine,
Well, you are trying to fit a model with 12 coefficients to a dataset with
only 12 arrays. It is no surprise that this causes a problem.
I have had a look at the targets file. If I understand the meaning of the
labels is the file, it appears that the mixing up of technical replicates
with biological replicates is very complex. So complex that I do not know
of any practical approach that would unravel them in an analysis.
I suggest that you simply treat all your technical replicates as ordinary
biological replicates, so that a ordinary limma analysis is
straightforward. Then take the p-values that you get at the end with a
grain of salt, because they will be somewhat smaller than they should be.
Best wishes
Gordon
PS. lmFit has given a warning, not an error. There's a difference!
> Date: Thu, 19 Jul 2012 07:19:26 +0000
> From: "Ommen Kloeke, A.E.E. van" <elaine.van.ommenkloeke at vu.nl>
> To: "'bioconductor at r-project.org'" <bioconductor at r-project.org>
> Subject: [BioC] technical replicates and lmFit error
>
> Dear Bioconductor team,
>
> I am working on a 2-colour Agilent dataset which has both biological and
> technical replicates. A problem which many people already encountered as
> I could see from the previous posts, so my apologies for bringing it up
> again. However, I tried the script given for this situation in the Limma
> user guide, but my lmFit gives an error if I try this!
>
> My experiment contains three treatments: "AC", "low" and "high" - each
> has 4 biological replicates and 2 technical replicates as indicated in
> the attached target file. The main contrasts of interest are "low-AC"
> and "high-AC". Here's the script I tried:
>
> design = modelMatrix(targets, ref = "AC1")
> design = cbind(Dye = 1, design)
> colnames(design)
> #[1] "Dye" "AC2" "AC4" "AC5" "high1" "high2" "high4" "high5" "low1" "low3" "low4" "low5"
>
> fit = lmFit(MAbet, design)
> cont.matrix = makeContrasts(ACvsLow = (high1+high2+high4+low5-AC2-AC4-AC5)/4,levels = design)
> fit2 = contrasts.fit(fit, cont.matrix)
> fit2 = eBayes(fit2)
> topTable(fit2, adjust = "fdr")
>
> However the LmFit gives an error:
>> fit = lmFit(MAbet, design)
> Coefficients not estimable: low4 low5
> Warning message:
> Partial NA coefficients for 43803 probe(s)
>
> I understand this has to do with my design, but I don't know how to fix it:
>> design
> Dye AC2 AC4 AC5 high1 high2 high4 high5 low1 low3 low4 low5
> [1,] 1 0 0 0 0 0 0 0 0 0 1 0
> [2,] 1 -1 0 0 0 0 0 0 0 0 0 1
> [3,] 1 0 1 0 0 0 0 0 -1 0 0 0
> [4,] 1 0 0 1 0 0 0 0 0 -1 0 0
> [5,] 1 0 0 0 0 0 1 0 0 0 0 0
> [6,] 1 -1 0 0 0 0 0 1 0 0 0 0
> [7,] 1 0 1 0 -1 0 0 0 0 0 0 0
> [8,] 1 0 0 1 0 -1 0 0 0 0 0 0
> [9,] 1 0 0 0 -1 0 0 0 0 0 1 0
> [10,] 1 0 0 0 0 -1 0 0 0 0 0 1
> [11,] 1 0 0 0 0 0 1 0 -1 0 0 0
> [12,] 1 0 0 0 0 0 0 1 0 -1 0 0
>> is.fullrank(design)
> [1] FALSE
>
> I completely trust in your expertise! Any help is very welcome and appreciated.
>
> Much obliged and many thanks!
>
> Elaine van Ommen Kloeke
>
>
>
> VU university Amsterdam
> Department of Ecological Science
> room: H-119
> phone: 020-5987217
> www.falw.vu.nl/animalecology<http://www.falw.vu.nl/animalecology>
______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}
More information about the Bioconductor
mailing list