[BioC] How to perform differential expression analysis on a pre-normalized dataset?
Karthi Sivaraman
k.sivan at gmail.com
Wed Sep 29 22:28:54 CEST 2010
Dear Jim,
Thanks for pointing out the silly mistake. Sorry for the trouble.
Thanks. Warm regards,
k
On 29/09/2010 21:14, James W. MacDonald wrote:
> Hi Karthi,
>
> On 9/29/2010 3:19 AM, Karthi Sivaraman wrote:
>> Dear List,
>>
>> I am sure this has been discussed before in the list, so I would be
>> happy even if someone points me to the right previous discussion.
>>
>> I have a Nimblegen gene expression dataset as .pairs file. Using dummy
>> 2nd channel reading, I have managed to normalize this dataset (vsn
>> normalization). lmFit also works with the normalized dataset. However,
>> when I try to perform eBayes fit, I am hitting a snag. eBayes fit
>> returns a lot of error at this last stage.
>>
>> I have given the steps / results from each step in this workflow. If
>> someone has already faced this issue and resolved it - i would be happy
>> to try it. Also, if there is a basic mistake I am making, can someone
>> please let me know. Thanks. -- k.
>> ===========================================================*
>> > library(limma)
>> > target=readTargets('list')
>> >
>> x=read.maimages(target$FileName,columns=list(R="PM",G="PM"),annotation=c("PROBE_ID","X","Y"))
>>
>> Read GSM519643.pair.val
>> Read GSM519644.pair.val
>> Read GSM519645.pair.val
>> Read GSM519646.pair.val
>> Read GSM519647.pair.val
>> Read GSM519648.pair.val
>> Read GSM519649.pair.val
>> Read GSM519650.pair.val
>> Read GSM519651.pair.val
>> > x$R=NULL
>> > xNorm=backgroundCorrect(x,method="normexp")
>> > library(arrayQualityMetrics)
>> Loading required package: affyPLM
>> Loading required package: affy
>> Loading required package: Biobase
>>
>> Welcome to Bioconductor
>>
>> Vignettes contain introductory material. To view, type
>> 'openVignette()'. To cite Bioconductor, see
>> 'citation("Biobase")' and for packages 'citation(pkgname)'.
>>
>> Loading required package: gcrma
>> Loading required package: preprocessCore
>>
>> Attaching package: 'affyPLM'
>>
>>
>> The following object(s) are masked from package:stats :
>>
>> resid,
>> residuals,
>> weights
>>
>> > xEsetNorm=new("ExpressionSet",exprs=xNorm$G)
>> > library(vsn)
>> > xEsetVsn=vsn(xEsetNorm)
>> Note:
>> The function 'vsn' has been superseded by 'vsn2'.
>> The function 'vsn' remains in the package for backward compatibility,
>> but for new projects, please use 'vsn2'.
>
> You might read (and follow) the note...
>
>>
>> vsn: 389307 x 9 matrix (1 stratum). 100% done.
>> > design=model.matrix(~ -1+factor(c(1,1,1,2,2,2,3,3,3,))
>> + )
>> Error in factor(c(1, 1, 1, 2, 2, 2, 3, 3, 3, )) :
>> element 9 is empty;
>> the part of the args list of 'c' being evaluated was:
>> (1, 1, 2, 2, 2, 3, 3, 3, )
>> > design=model.matrix(~ -1+factor(c(1,1,1,2,2,2,3,3,3)))
>> > colnames(design)=c('Ctrl','Chlr1','Chlr2')
>> > design
>> Ctrl Chlr1 Chlr2
>> 1 1 0 0
>> 2 1 0 0
>> 3 1 0 0
>> 4 0 1 0
>> 5 0 1 0
>> 6 0 1 0
>> 7 0 0 1
>> 8 0 0 1
>> 9 0 0 1
>> attr(,"assign")
>> [1] 1 1 1
>> attr(,"contrasts")
>> attr(,"contrasts")$`factor(c(1, 1, 1, 2, 2, 2, 3, 3, 3))`
>> [1] "contr.treatment"
>>
>> > xFit=lmFit(xEsetVsn,design)
>> > contmat=makeContrasts(Chlr1-Ctrl,Chlr2-Ctrl,levels=design)
>> > contmat
>> Contrasts
>> Levels Chlr1 - Ctrl Chlr2 - Ctrl
>> Ctrl -1 -1
>> Chlr1 1 0
>> Chlr2 0 1
>> > xFit2=eBayes(xFit
>> xFit
>> > xFit2=eBayes(xFit,contmat)
>
> There are no arguments for eBayes() that take a contrasts matrix, so I
> am not sure what you are trying to do here. You want to do the usual:
>
> xFit2 <- contrasts.fit(xFit, contmat)
> xFit2 <- eBayes(xFit2)
>
> Best,
>
> Jim
>
>
>
>> Error in log(proportion/(1 - proportion)) - log(r)/2 :
>> non-conformable arrays
>> In addition: Warning messages:
>> 1: In if (ntarget< 1) return(NA) :
>> the condition has length> 1 and only the first element will be used
>> 2: In if (ntarget< 1) return(NA) :
>> the condition has length> 1 and only the first element will be used
>> 3: In if (ntarget< 1) return(NA) :
>> the condition has length> 1 and only the first element will be used
>> 4: In ebayes(fit = fit, proportion = proportion, stdev.coef.lim =
>> stdev.coef.lim) :
>> Estimation of var.prior failed - set to default value
>> 5: In log(proportion/(1 - proportion)) : NaNs produced
>> *=========================================================================
>>
>>
>
--
=======================================
From Ignorance to Truth,
From Darkness to Light,
From Mortality to Immortality ...
More information about the Bioconductor
mailing list