[BioC] Limma and spot-specific dye effects for an environmental microarray

Gordon K Smyth smyth at wehi.EDU.AU
Fri Jun 24 02:38:12 CEST 2011


On Fri, 24 Jun 2011, Ross Chapman wrote:

> Dear Gordon
>
> Thank you for your prompt and helpful reply.
>
> I chose the 'two channel' analysis instead of the log ratios for a
> couple of reasons.
>
> Firstly, the two channel analysis was more intuitive and easier for me
> to understand given my ecological  background.
>
> Secondly, in the experiment I have 4 samples (veg.1 to veg.4) hybridised
> using two dyes (cye3 and5) across 8 arrays.  Veg.1 is paired with all
> other samples, but on only one array for Veg.2 and Veg.3, I was
> uncertain as to whether this design was sufficiently connected for a
> log-ratio design, and would welcome your comments on the feasibility and
> benefits of the log-ratios approach.

Shouldn't be a problem.

> Also, I was wanting to look at the profile of all probes across all reps
> of all vegetations - the functions that are not changed between
> ecosystems can be as informative as those that differ.  Is there a way
> to remove the spot*dye effect from the normalised data from individual
> arrays so I can make an equal comparison of values from all samples
> using, for a heatmap for example, without dye effects confounding the
> result.

Yes, removeBatchEffect() can take out the dye effect, while leaving other 
effects in.  Be sure to specify the design as well as the batch.

Best wishes
Gordon

> Thanks for your assistance.
>
> Regards
>
> Ross
>
>
> On Fri, 2011-06-24 at 08:35 +1000, Gordon K Smyth wrote:
>
>> Dear Ross,
>>
>> Yes, you've accounted for probe-specific dye effects.
>>
>> Your experiment doesn't seem to have any special complications.  Why did
>> you decide to do a separate channel analysis, rather than the log-ratio
>> style analysis illustrated in the limma User's Guide Case Studies of
>> two-colour designs?
>>
>> Best wishes
>> Gordon
>>
>>> Date: Thu, 23 Jun 2011 14:06:36 +1000
>>> From: Ross Chapman <ross.chapman at ecogeonomix.com>
>>> To: bioconductor at r-project.org
>>> Subject: [BioC] Limma and spot-specific dye effects for an
>>> 	environmental	microarray
>>>
>>> Hi all
>>>
>>> I am trying to utilise Limma to analyses data from a two colour
>>> environmental microarray in an experiment that is investigating
>>> microbial function under contrasting vegetation types.
>>>
>>> After loading the data and performing background subtraction and
>>> normalisation, I have attempted to correct for spot-specific dye effects
>>> by including a "dye factor" in the design matrix.  My code is as
>>> follows:
>>>
>>>> #create design that included dye factor aswell as vegetation types ...
>>>> #
>>>> design.sc<-model.matrix(~0+factor(targets2$Target)+factor(targets2
>>> $channel.col))
>>>> colnames(design.sc)<-c("veg.3","veg.4","veg.2","veg.1","Dye")
>>>> design.sc
>>>   veg.3 veg.4 veg.2 veg.1 Dye
>>> 1       0       0   0     1   0
>>> 2       0       0   1     0   1
>>> 3       0       0   1     0   0
>>> 4       0       1   0     0   1
>>> 5       0       1   0     0   0
>>> 6       1       0   0     0   1
>>> 7       1       0   0     0   0
>>> 8       0       0   0     1   1
>>> 9       0       0   0     1   0
>>> 10      0       1   0     0   1
>>> 11      0       1   0     0   0
>>> 12      0       0   0     1   1
>>> 13      0       0   1     0   0
>>> 14      1       0   0     0   1
>>> 15      1       0   0     0   0
>>> 16      0       0   1     0   1
>>> attr(,"assign")
>>> [1] 1 1 1 1 2
>>> attr(,"contrasts")
>>> attr(,"contrasts")$`factor(targets2$Target)`
>>> [1] "contr.treatment"
>>>
>>> attr(,"contrasts")$`factor(targets2$channel.col)`
>>> [1] "contr.treatment"
>>>
>>>> # next do intraspot correlation ...
>>>> library(limma)
>>>> corfit<-intraspotCorrelation(MA,design.sc)
>>> Loading required package: statmod
>>> Warning messages:
>>> 1: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 2: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 3: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 4: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 5: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 6: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 7: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 8: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>> 9: In remlscore(y, X, Z) : reml: Max iterations exceeded
>>>> fit<-lmscFit(MA,design.sc,correlation=corfit$consensus)
>>>> fit <- eBayes(fit)
>>>> #make contrasts ...
>>>> cont.matrix1 <- makeContrasts("veg.1-veg.2",levels=design.sc)
>>>> fit2.1 <- contrasts.fit(fit, cont.matrix1)
>>>> cont.matrix2 <- makeContrasts("veg.1-veg.3",levels=design.sc)
>>>> fit2.2 <- contrasts.fit(fit, cont.matrix2)
>>>> cont.matrix3 <- makeContrasts("veg.1-veg.4",levels=design.sc)
>>>> fit2.3 <- contrasts.fit(fit, cont.matrix3)
>>>> fit2.1<-eBayes(fit2.1)
>>>> fit2.2<-eBayes(fit2.2)
>>>> fit2.3<-eBayes(fit2.3)
>>>
>>> This is all a bit new for me, can someone please confirm if I have
>>> correctly addressed any spot*dye effects with this code.
>>>
>>> Many thanks in advance for your help.
>>>
>>> Regards
>>>
>>> Ross
>>
>> ______________________________________________________________________
>> The information in this email is confidential and intended solely for the addressee.
>> You must not disclose, forward, print or use it without the permission of the sender.
>> ______________________________________________________________________
>
>
>

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



More information about the Bioconductor mailing list