[BioC] Design/Contrast for Two-Channel Experimental Setup

Joseph Shaw josph.sh at gmail.com
Tue Jan 7 00:32:54 CET 2014

Dear Gordon,

Thank you very much for your response!

I have two brief follow-on questions pertaining to your previous mail.

On Sun, Jan 5, 2014 at 10:39 PM, Gordon K Smyth <smyth at wehi.edu.au> wrote:
>> Date: Sat, 4 Jan 2014 19:58:32 +0000
>> From: Joseph Shaw <josph.sh at gmail.com>
>> To: Ryan <rct at thompsonclan.org>
>> Cc: bioconductor at r-project.org
>> Subject: Re: [BioC] Design/Contrast for Two-Channel Experimental Setup
>> It was my belief that the experimental setup would imply that the dye
>> effect would be confounded with the biological effect - thanks for
>> clarifying that this is indeed the case. However, I'm still slightly
>> confused about the dye effect term; specifically, shouldn't the loess
>> normalisation (performed by normalizeWithinArrays() function) correct
>> for the dye effect? If this is the case, why is a dye effect term
>> required?
> The loess normalization done by normalizeWithinArrays() accounts for a
> global dye effect trend.  However it is possible that some of the probes on
> the array might show special dye effects specific to those probes which
> don't follow the overall dye effect trend.  It is the purpose of a dye
> effect term in the linear model to allow for the possibility of such
> probe-specific dye effects.

Am I correct in suggesting that such a dye-effect term (assuming one
exists) will be represented by a model parameter (intercept) estimate
common to all observations in a given gene model? If this is the case,
this dye effect (the intercept estimate) will be applied to all
observations (across replicates) for a given gene model as opposed to
any single observation within the gene model. As such, the dye-effect
term is a gene-specific as opposed to observation specific.

>> Also, with a view to identifying differentially expressed genes, is the
>> sample code provided in my previous mail otherwise correct? Are there any
>> alterations that I should consider?
> The line
>  MA.b=normalizeBetweenArrays(MA, method="quantile")
> is not needed, and is obviously superfluous in your code anyway.

Could you briefly elaborate on why this line is not needed? As I
currently understand it, normalization between arrays is advantageous
if there exists a disparity between replicate distributions (in which
case a scaling procedure such as quantile normalization can be
implemented); is this correct?

Kind regards,


More information about the Bioconductor mailing list