[BioC] Coefficients not estimable

Gordon K Smyth smyth at wehi.EDU.AU
Wed Feb 8 04:23:44 CET 2012


Or perhaps as a nested fixed model

   model.matrix(~gender+gender:donor+day)

Whether to fit donor as a fixed term or as a block really depends on what 
questions you want to answer and, in particular, what you want to 
interpret from a donor "main effect".

Best wishes
Gordon

---------------------------------------------
Professor Gordon K Smyth,
Bioinformatics Division,
Walter and Eliza Hall Institute of Medical Research,
1G Royal Parade, Parkville, Vic 3052, Australia.
smyth at wehi.edu.au
http://www.wehi.edu.au
http://www.statsci.org/smyth

On Tue, 7 Feb 2012, Naomi Altman wrote:

> The problem is that donor is nested within gender.  The only way I am aware 
> of to handle this in limma is to use donor as a block.
>
> Regards,
> Naomi
>
>
> At 11:24 AM 2/7/2012, somnath bandyopadhyay wrote:
>
>
>>  Dear Gordon and limma users,
>> 
>> I am trying to fit a linear model to assess variability in healthy donors 
>> over days for both genders using Affymetrix microarray data. I am 
>> interested in assessing variability arising from geneder, day of blood 
>> donated and individual donors. When I tried to do a linear fit in using 
>> limma, I am not able to assess the coefficients for gender.System is 
>> computationally singular for the gender main effect. Is there any way to 
>> assess the variability arising from all three main effects? Any help would 
>> be greatly appreciated.
>> 
>> Following is my target file:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Array_NUID
>> gender
>> day
>> donor
>> 
>> NUID.0000.0133.2260
>> male
>> d1
>> M1
>> 
>> NUID.0000.0133.2261
>> male
>> d2
>> M1
>> 
>> NUID.0000.0133.2262
>> male
>> d8
>> M1
>> 
>> NUID.0000.0133.2230
>> female
>> d1
>> F2
>> 
>> NUID.0000.0133.6809
>> female
>> d2
>> F2
>> 
>> NUID.0000.0133.2251
>> female
>> d8
>> F2
>> 
>> NUID.0000.0133.2228
>> female
>> d15
>> F2
>> 
>> NUID.0000.0133.2229
>> female
>> d28
>> F2
>> 
>> NUID.0000.0133.2231
>> female
>> d1
>> F3
>> 
>> NUID.0000.0133.2232
>> female
>> d2
>> F3
>> 
>> NUID.0000.0133.2233
>> female
>> d8
>> F3
>> 
>> NUID.0000.0133.2234
>> female
>> d15
>> F3
>> 
>> NUID.0000.0133.2265
>> male
>> d1
>> M4
>> 
>> NUID.0000.0133.2267
>> male
>> d8
>> M4
>> 
>> NUID.0000.0133.2268
>> male
>> d15
>> M4
>> 
>> NUID.0000.0133.2269
>> male
>> d28
>> M4
>> 
>> NUID.0000.0133.2236
>> female
>> d1
>> F5
>> 
>> NUID.0000.0133.2237
>> female
>> d2
>> F5
>> 
>> NUID.0000.0133.2238
>> female
>> d8
>> F5
>> 
>> NUID.0000.0133.6810
>> female
>> d15
>> F5
>> 
>> NUID.0000.0133.2240
>> female
>> d28
>> F5
>> 
>> NUID.0000.0133.2270
>> male
>> d1
>> M6
>> 
>> NUID.0000.0133.2271
>> male
>> d2
>> M6
>> 
>> NUID.0000.0133.2272
>> male
>> d8
>> M6
>> 
>> NUID.0000.0133.2273
>> male
>> d15
>> M6
>> 
>> NUID.0000.0133.2274
>> male
>> d28
>> M6
>> 
>> NUID.0000.0133.2241
>> female
>> d1
>> F7
>> 
>> NUID.0000.0133.2242
>> female
>> d2
>> F7
>> 
>> NUID.0000.0133.2243
>> female
>> d8
>> F7
>> 
>> NUID.0000.0133.2244
>> female
>> d15
>> F7
>> 
>> NUID.0000.0133.2245
>> female
>> d28
>> F7
>> 
>> NUID.0000.0133.2246
>> female
>> d1
>> F8
>> 
>> NUID.0000.0133.2247
>> female
>> d2
>> F8
>> 
>> NUID.0000.0133.2248
>> female
>> d8
>> F8
>> 
>> NUID.0000.0133.2249
>> female
>> d15
>> F8
>> 
>> NUID.0000.0133.2250
>> female
>> d28
>> F8
>> 
>> 
>> Following is the code I am using:
>> library("limma")
>> rna <- read.table('qced_non_redundant_rma_data.txt', header=T, row.names=1, 
>> sep= "\t")
>> annotation <- read.table('Test_Samples_Annotation.txt', header=T, 
>> row.names=1, sep= "\t")
>> ## rearrange the annotations to conform to the RMA data
>> annotation <- annotation[colnames(rna),]
>> ## check that the annotations and data match
>> if (sum(sort(rownames(annotation)) == sort(colnames(rna))) != 
>> length(rownames(annotation))) {
>>   stop ("ERROR: annotation rownames and RMA colnames do not match")
>> }
>> donor <- factor(annotation$donor)
>> day <- factor(annotation$day)
>> gender <- factor(annotation$gender)
>> design <- model.matrix(~ donor + gender + day, data=annotation)
>> fit <- lmFit(rna,design)
>> fit2 <- eBayes(fit)
>> write.fit(fit,file="effects.txt",digits=30, adjust="BH", 
>> method="separate",sep="\t")
>> 
>> 
>> 
>> Following is my sessionInfo:
>> > sessionInfo()
>> R version 2.10.1 (2009-12-14)
>> x86_64-unknown-linux-gnu
>> locale:
>>  [1] LC_CTYPE=en_US.iso885915       LC_NUMERIC=C
>>  [3] LC_TIME=en_US.iso885915        LC_COLLATE=en_US.iso885915
>>  [5] LC_MONETARY=C                  LC_MESSAGES=en_US.iso885915
>>  [7] LC_PAPER=en_US.iso885915       LC_NAME=C
>>  [9] LC_ADDRESS=C                   LC_TELEPHONE=C
>> [11] LC_MEASUREMENT=en_US.iso885915 LC_IDENTIFICATION=C
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> other attached packages:
>> [1] limma_3.2.3
>> loaded via a namespace (and not attached):
>> [1] tools_2.10.1
>>         [[alternative HTML version deleted]]
>> 
>> _______________________________________________
>> 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
>
>
>
>

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



More information about the Bioconductor mailing list