[BioC] Normalization using control spots

Alison Waller alison.waller at utoronto.ca
Wed Jul 22 19:04:20 CEST 2009


Thank you for the reply Gordon,

Yes, I should have looked at the plots earlier.  It appears as if the  
second set (16S) is not appropriate (due to variation in their  
response) and the first set (Arab) is too small as you mentioned.

It also appears as if the majority of the spots are not differentially  
expressed so I can probably just use loess normalization on all of the  
spots.

However, I don't want to totally ignore the data from the control  
spots, as for some arrays the Arab control spots are further from M=0  
than others, see MA plots below.

I decided to try using the modifyWeights function.

The MA plots resulting from this look reasonable.  Do you think this  
is a valid approach given the small number of control spots, and the  
fact that they have higher intensities than the majority of the spots?

w<-modifyWeights(array(1,dim(RGnm)), RGnm$genes$Status,  
c("All","Arab"), c(1,2))
MAnmw<-normalizeWithinArrays(RGnm,weights=w)



-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedGraphic.pdf
Type: application/pdf
Size: 473111 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/bioconductor/attachments/20090722/cf946176/attachment-0003.pdf>
-------------- next part --------------




-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedGraphic.pdf
Type: application/pdf
Size: 481585 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/bioconductor/attachments/20090722/cf946176/attachment-0004.pdf>
-------------- next part --------------


-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedGraphic.pdf
Type: application/pdf
Size: 472264 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/bioconductor/attachments/20090722/cf946176/attachment-0005.pdf>
-------------- next part --------------




On 17-Jul-09, at 10:29 PM, Gordon K Smyth wrote:

> Dear Alison,
>
>> Date: Fri, 17 Jul 2009 12:09:00 -0400
>> From: Alison Waller <alison.waller at utoronto.ca>
>> Subject: [BioC] Normalization using control spots
>> To: bioconductor at stat.math.ethz.ch
>>
>> Hello all,
>>
>> I have a set of 'boutique' Agilent arrays (ie. they are functional
>> gene arrays for which either a large or small number of gene can be
>> differenitally expressed).  We have printed a few different sets of
>> control spots to use for within array normalization.
>>
>> I have pasted by script below, and the error message and warnings.
>>
>> Because of the warnings I thought that the set of control spots (6  
>> out
>> of 3600 total) might be too small to fit a loess curve through
>
> Yes, 6 spots is far too few.
>
>> so I then tried with another 'control set" for which there are 220  
>> spots.
>
> But you haven't shown us any output using 220 spots, only for 6 spots.
>
>> And I still recieved the error " Error in qr.default(x) : NA/NaN/Inf
>> in foreign function call (arg 1) ", but there were no additional
>> warnings about too few degrees of freedom.
>>
>> Any thoughts on why I'm recieving this error message?
>
> I suspect that your control spots do not cover a reasonable range of  
> intensities. You need to look at your data.  Type
>
>  plotMA(RGnm)
>
> to see where the control spots are.  Does it seem sensible to put a  
> loess curve through them?
>
> Also, I'd remove the wt.fun, at least until you've solved the  
> normalization problem.
>
> Best wishes
> Gordon
>
>> Thanks,
>>
>> Alison
>>
>>
>>
>> Partial Script
>> >>>>>>
>> library(limma)
>> targets<-readTargets("EPBDIExprTargets.txt")
>> RG<-read.maimages(targets 
>> $FileName,source='genepix',wt.fun=wtflags(0.1))
>> spottypes<-readSpotTypes("SpotTypesEP.txt")
>> RGnm<-backgroundCorrect(RG,method='normexp')
>> RGnm$genes$Status<-controlStatus(spottypes,RG)
>> ControlSpots<-grep("Control",RGnm$genes$Status)
>> MAnmcntrl<-
>> normalizeWithinArrays 
>> (RGnm,method='control',controlspots=ControlSpots)
>> MAnmcntrlAqu<-normalizeBetweenArrays(MAnmcntrl,method='Aquantile')
>>
>>
>>
>> Partial Output
>> >>>>>>>>>>>>>>
>> Corrected array 9
>> Red channel
>> Corrected array 1
>> Corrected array 2
>> Corrected array 3
>> Corrected array 4
>> Corrected array 5
>> Corrected array 6
>> Corrected array 7
>> Corrected array 8
>> Corrected array 9
>> Matching patterns for: ID
>> Found 3600 All
>> Found 6 Control
>> Setting attributes: values col cex
>> Error in qr.default(x) : NA/NaN/Inf in foreign function call (arg 1)
>> In addition: There were 50 or more warnings (use warnings() to see  
>> the
>> first 50)
>> > warnings()
>> Warning messages:
>> 1: span too small.   fewer data values than degrees of freedom.
>> 2: zero-width neighborhood. make span bigger
>> 3: zero-width neighborhood. make span bigger
>> 4: zero-width neighborhood. make span bigger
>> 5: zero-width neighborhood. make span bigger
>> 6: zero-width neighborhood. make span bigger
>> 7: zero-width neighborhood. make span bigger
>> 8: Chernobyl! trL<k 0
>> 9: Chernobyl! trL<k 0
>> 10: span too small.   fewer data values than degrees of freedom.
>> 11: zero-width neighborhood. make span bigger
>> 12: zero-width neighborhood. make span bigger
>> 13: zero-width neighborhood. make span bigger
>> 14: zero-width neighborhood. make span bigger
>> 15: zero-width neighborhood. make span bigger
>> ---------------------------------------------------------
>> Alison Waller  Ph.D

---------------------------------------------------------
Alison Waller  Ph.D
alison.waller at utoronto.ca






More information about the Bioconductor mailing list