[BioC] Problem with lmfit
Paolo Innocenti
paolo.innocenti at ebc.uu.se
Mon Aug 9 15:29:57 CEST 2010
Hi,
I can reproduce the error, which seems to be caused by your
expressionset having only one feature. If you try with 2 lines, it works:
library(Biobase)
library(limma)
design <- matrix(c(1,0),ncol=2,nrow=5,byrow=T)
design <- rbind(design,c(0,1),c(0,1))
colnames(design) <- c("HEALTHY","DISEASE")
# 2 (identical) features
data <- matrix(rep(c(25.92000, 25.66667, 23.14667, 26.28667, 25.48667
,21.19000, 20.81000),2),nrow=2,ncol=7, byrow=T)
mydata.eset=new("ExpressionSet",exprs=data)
lmFit(mydata.eset, design=design)
I have no idea if lmFit is meant to work with 1 feature (I guess it
yield the same result as "lm"), but the error seem to be caused by the
function "nonEstimable" called by limma (but I am no expert, someone
else might want to comment on this).
Hope this helps.
paolo
# lm code:
y <- c(25.92000, 25.66667, 23.14667, 26.28667, 25.48667 ,21.19000, 20.81000)
treat <- factor(c(rep("healthy",5),rep("dis",2)))
summary(lm(y ~ treat))
On 08/09/2010 02:59 PM, David martin wrote:
> Hello,
> I have a strange problem while fitting a design to my data. Here is the
> output code. You can reproduce the problem by copy paste the code below.
>
>
> > design
> HEALTHY DISEASE
> 1 1 0
> 2 1 0
> 3 1 0
> 4 1 0
> 5 1 0
> 6 0 1
> 7 0 1
> attr(,"assign")
> [1] 1 1
> attr(,"contrasts")
> attr(,"contrasts")$groups
> [1] "contr.treatment"
>
> > exprs(mydata.eset)
> healthy1 healthy2 healthy3 healthy4 N25 disease1 disease2
> 1 25.92 25.66667 23.14667 26.28667 25.48667 21.19 20.81
>
> > lmFit(exprs(mydata.eset), design=design)
> Error in fit$effects[(fit$rank + 1):narrays, , drop = FALSE] :
> incorrect number of dimensions
>
>
> ### Here is the code to reproduce the error
> library(Biobase)
> library(limma)
> design <- matrix(c(1,0),ncol=2,nrow=5,byrow=T)
> design <- rbind(design,c(0,1),c(0,1))
> colnames(design) <- c("HEALTHY","DISEASE")
> data <- matrix(c(25.92000, 25.66667, 23.14667, 26.28667, 25.48667
> ,21.19000, 20.81000),nrow=1,ncol=7)
> mydata.eset=new("ExpressionSet",exprs=data)
> colnames(exprs(mydata.eset)) <-
> c("healthy1","healthy2","healthy3","healthy4","healthy5","disease1","disease2")
>
> lmFit(mydata.eset, design=design)
>
>
> thanks for leting me know,
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives:
> http://news.gmane.org/gmane.science.biology.informatics.conductor
>
--
Paolo Innocenti
Department of Animal Ecology, EBC
Uppsala University
Norbyvägen 18D
75236 Uppsala, Sweden
More information about the Bioconductor
mailing list