Entering edit mode
Peter White
▴
130
@peter-white-3162
Last seen 10.3 years ago
I have noticed an issue with the limma normalizeWithinArrays function
(and also with marray and maNorm). When normalizing two color data
generated with an Agilent 20-bt scanner it fails to normalize the high
intensity data (i.e. any points with an A value > 16). In our dataset
we have in excess of 400 elements with red and green intensities
ranging from 65500 to 475100. When we loess normalize the data any
points beyond A=16 appear to be untouched by the normalization. If the
attached figures come through this should be clear - when using maNorm
and maPlot it will plot the loess line and you can see it stop at 16.
Is it possible for loess normalization to be extended to this higher
intensity data? Or am I just doing something wrong?
Thanks,
Peter
Peter White, Ph.D.
Director, Biomedical Genomics Core<http: genomics.nchresearch.org=""/>
Research Assistant Professor of Pediatrics
The Research Institute at
Nationwide Children's Hospital and
The Ohio State University
Mailing Address:
The Research Institute at
Nationwide Children's Hospital
700 Children's Drive, W510
Columbus, OH 43205
Assistant (Jennifer Neelans): (614) 722-2915
Office: (614) 355-2671
Lab: (614) 355-5252
Fax: (614) 722-2818
Web: http://genomics.nchresearch.org/
________________________________
Confidentiality Notice: The following mail message,
incl...{{dropped:17}}
Dear Peter,
The plots on the permalink website do not correspond to the R code in your email. Apparently the plots are from the marray package, produced by R code which you do not give. I can't comment on the behaviour of someone else's package.
As I've already told you, normalizeWithinArrays() uses all the points, and having an A-value over 16 is not an issue. However, the loess curve is designed to be quite stiff, and also to ignore outliers, and therefore the curve will not follow a highly localized J-curve at the right end of the range, which is what your MA-plot seems to show. The loess curve is designed to follow the main trend, not local trends involving small proportions of the points. If you believe that your platform has a different MvsA relationship for A>16 than for A<16, and this should be removed by the normalization curve, then you can do one of two things. One possibility is simply to make the curve more local by reducing the span paramater:
Choosing span small enough will certainly remove the J-curve. However I don't recommend this approach, as it is not specific to A>16. I recommend instead that you use the modifyWeights() function to give the spots with A>16 increased weights, so the loess curve will follow it more closely. You might find a combination of slightly reduced span and increased weights will work best.
BTW, I would recommend that you use spottypes to display control spots, and weights to downweight them in the loess normalization, rather than hacking NA values into your data. It gives you more information and flexibility.
Best wishes
Gordon
Dear Gordon,
Thanks so much for your detailed response. I did try setting the span to and it definitely improved the J-curve. Scroll all the way to the bottom of:
http://permalink.gmane.org/gmane.science.biology.informatics.conductor/27771
I also tried setting the span to 0.01 and it looked even better (lower than that and crazy things started to happen):
http://permalink.gmane.org/gmane.science.biology.informatics.conductor/27770
As far as I could see lowering the span had no effect on the elements less than an average log2 intensity of 16. I did try adding a weight function that elements with a median red or green intensity > 60,000 were weighted 5, but it made no discernable difference to the default normalization.
All the best,
Peter
With the weights, you could easily increase them to 100 without any likely problems.
Gordon