[BioC] liimma and Across Array Normalisation
Gordon K Smyth
smyth at wehi.EDU.AU
Wed Feb 12 00:20:07 CET 2014
Although not documented, you can actually shorten the read command further
to:
x <- read.maimages(targets,source="genepix",green.only=TRUE)
The function will automatically look for a column called "FileName" in
targets.
Gordon
On Wed, 12 Feb 2014, Gordon K Smyth wrote:
> On Tue, 11 Feb 2014, Saket Choudhary wrote:
>
>> On 11-Feb-2014, at 10:52 PM, Gordon K Smyth <smyth at wehi.edu.au> wrote:
>>
>>> On Tue, 11 Feb 2014, Saket Choudhary wrote:
>>>
>>>> On 11-Feb-2014, at 10:31 PM, Gordon K Smyth <smyth at wehi.edu.au> wrote:
>>>>
>>>>> Yes, obviously there'll be a baseline shift when you subtract
>>>>> background, then add an offset and log transform.
>>>>>
>>>>> You plots do not appear to be a valid MA plots.
>>>>
>>>> Could you please point out the error?
>>>> I understand a base line shoft is expected, but I cant figure out what
>>>> is going wrong otherwise.
>>>
>>> Well, you manually create an MAList object from your single channel data,
>>> even though an MAList is strictly for two colour data.
>>>
>>> If you deceive limma as to the true nature of your data, it's not
>>> surprising that the resulting plot might not be correct.
>>>
>>> I am not clear why you need to make so many variations on the standard
>>> limma single channel analysis pipeline.
>>>
>>
>> Is there any other way to visualise MA plots for single channel data?
>
> plotMA() already works directly on any data object:
>
> x <- read.maimages(targets$FileName,source="genepix",green.only=TRUE)
> plotMA(x)
>
> What could be easier than that?
>
> Gordon
>
>>
>>> Gordon
>>>
>>>
>>>>
>>>> Thanks,
>>>> Saket
>>>>
>>>>
>>>>> Gordon
>>>>>
>>>>> On Tue, 11 Feb 2014, Saket Choudhary wrote:
>>>>>
>>>>>> Hello Gordon,
>>>>>>
>>>>>> Is there a reason to believe the MA plots should inherently be
>>>>>> baseline shifted after normalisation?
>>>>>>
>>>>>> Raw MA: https://db.tt/kDBod1EJ
>>>>>> background correction with 'nec': https://db.tt/0vVWeD21
>>>>>> background correction with nec followed by normalisation:
>>>>>> https://db.tt/f0M0rWeg
>>>>>> background correction with 'normexp: https://db.tt/OJO0zea5
>>>>>> background correction with normexp followed by normalisation:
>>>>>> https://db.tt/rbLJmFBE
>>>>>>
>>>>>>
>>>>>> The files are a bit heavy so might take some time to load into any pdf
>>>>>> reader.
>>>>>>
>>>>>> Code: https://gist.github.com/saketkc/8931951
>>>>>>
>>>>>> Saket
>>>>>>
>>>>>> On 9 February 2014 20:45, Saket Choudhary <saketkc at gmail.com> wrote:
>>>>>>> Related question: Similar to your case, my final topTable()'s output
>>>>>>> indicates some genes having a negative logFC, though literature
>>>>>>> expects them to have a positive logFC.
>>>>>>>
>>>>>>> I looked up the calculations and the transition from positive to
>>>>>>> negative logFC for these genes seems to happen after the
>>>>>>> normalizeBetweenArrays step (irrespective of the kind of normalisation
>>>>>>> I choose).
>>>>>>>
>>>>>>> This is a naive question again, but I am trying to understand what
>>>>>>> should be
>>>>>>> a good metric to decide which method tends to give the least false
>>>>>>> positives like this, given tham I have limited knowledge of which
>>>>>>> genes should be up or down regulated(unlike in your case, where you
>>>>>>> knew the kind of regulation[up/down] expected).
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Saket
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 9 February 2014 04:00, Gordon K Smyth <smyth at wehi.edu.au> wrote:
>>>>>>>>
>>>>>>>> On Sat, 8 Feb 2014, Saket Choudhary wrote:
>>>>>>>>
>>>>>>>>> Hello Gordon,
>>>>>>>>>
>>>>>>>>> I had a chance to go through the paper. I have a set of negative and
>>>>>>>>> positive controls, arising out of single channel Genepix platform.
>>>>>>>>> From what I could gather, 'nec' method in limma performs
>>>>>>>>> backgroundcorrection using these negative control spots.
>>>>>>>>
>>>>>>>>
>>>>>>>> Yes, but the negative controls are assumed to behave exactly like
>>>>>>>> probes for
>>>>>>>> unexpressed genes. This is true for Illumina Beadchips, but is often
>>>>>>>> not
>>>>>>>> the case for other platforms. If not, then you would be better to
>>>>>>>> stick
>>>>>>>> with normexp as you are already using.
>>>>>>>>
>>>>>>>>
>>>>>>>>> However one of the inputs to 'nec' is also "detection.p", which the
>>>>>>>>> .gprs don't have.
>>>>>>>>
>>>>>>>>
>>>>>>>> detection.p is not a required argument. It is used only when
>>>>>>>> negative
>>>>>>>> controls are not available.
>>>>>>>>
>>>>>>>>
>>>>>>>>> I could simply take a mean of all the negative controls E and Eb,
>>>>>>>>> and
>>>>>>>>> subtract it from each probe's E&Eb, doing it for all the arrays.
>>>>>>>>> Would
>>>>>>>>> this mimic what I want to acheive with the 'nec' function?
>>>>>>>>
>>>>>>>>
>>>>>>>> No, that naive approach is not equivalent and typically performs
>>>>>>>> poorly.
>>>>>>>>
>>>>>>>> Gordon
>>>>>>>>
>>>>>>>>
>>>>>>>>> Saket
>>>>>>>>>
>>>>>>>>> On 6 February 2014 13:04, Saket Choudhary <saketkc at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Hello Gordon,
>>>>>>>>>>
>>>>>>>>>> Unfortunately I do not have access to this as of now. I will
>>>>>>>>>> however
>>>>>>>>>> get hold of it soon.
>>>>>>>>>>
>>>>>>>>>> After implementing this, I would expect the 'CONTROL' to have
>>>>>>>>>> similar,
>>>>>>>>>> if not same values, right?
>>>>>>>>>>
>>>>>>>>>> However some of the values for these Control genes after the
>>>>>>>>>> normalisebetweenarray step have high variance. Is this behaviour
>>>>>>>>>> normal or am I missing something?
>>>>>>>>>>
>>>>>>>>>> Saket
>>>>>>>>>>
>>>>>>>>>> On 6 February 2014 06:32, Gordon K Smyth <smyth at wehi.edu.au> wrote:
>>>>>>>>>>>
>>>>>>>>>>> If 'x' is your background-corrected EList, then
>>>>>>>>>>>
>>>>>>>>>>> w <- rep(1,nrow(x))
>>>>>>>>>>> w[controls] <- 100
>>>>>>>>>>> y <- normalizeBetweenArrays(x, method="cyclicloess", weights=w)
>>>>>>>>>>>
>>>>>>>>>>> does what you want.
>>>>>>>>>>>
>>>>>>>>>>> For an example of this approach:
>>>>>>>>>>>
>>>>>>>>>>> http://rnajournal.cshlp.org/content/19/7/876
>>>>>>>>>>>
>>>>>>>>>>> Best wishes
>>>>>>>>>>> Gordon
>>>>>>>>>>>
>>>>>>>>>>> --------- original message ----------
>>>>>>>>>>> Saket Choudhary saketkc at gmail.com
>>>>>>>>>>> Thu Feb 6 06:59:42 CET 2014
>>>>>>>>>>>
>>>>>>>>>>> I am analysing a proteomics microarray data set for a two group
>>>>>>>>>>> sample(Normal and Disease) using single color channel. The arrays
>>>>>>>>>>> have a
>>>>>>>>>>> set
>>>>>>>>>>> of pre-defined CONTROL points whose expression levels are supposed
>>>>>>>>>>> to be
>>>>>>>>>>> similar/same across all the arrays.
>>>>>>>>>>>
>>>>>>>>>>> I would like to 'normalise' the levels of all probes such that
>>>>>>>>>>> normalisation
>>>>>>>>>>> ends up with all CONTROL points having similar expression levels.
>>>>>>>>>>> If I
>>>>>>>>>>> understand it right, normalizebetweenarray does not allow this
>>>>>>>>>>> kind of
>>>>>>>>>>> normalisation.
>>>>>>>>>>>
>>>>>>>>>>> Is there a pre-implemented function to do this? If not, what would
>>>>>>>>>>> be a
>>>>>>>>>>> way
>>>>>>>>>>> to acheive this kind of normalisation?
>>>>>>>>>>>
>>>>>>>>>>> Code: https://gist.github.com/saketkc/8669586
______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}
More information about the Bioconductor
mailing list