[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