[BioC] arrayQualityMetrics error with MAList

Daniel Aaen Hansen daniel at intomics.com
Wed Mar 28 21:57:27 CEST 2012

Dear Wolfgang,

The plots are definitely more useful now. Thanks.

Regarding implementing an option for plotting all MA-plots and spatial  
plots, I would suggest a user option 'plot.all' which are false by  
default to mimic the current behavior. Then in the functions  
'aqm.maplot' and 'spatialplot', I suggest adding:

     if (plot.all) {
         whj = order(stat, decreasing = TRUE)
         lay = c(4, ceiling(x$numArrays/4))
         legOrder = ""
     else if (x$numArrays <= 8) {
         ... (default behavior)

Thus, if plot.all is set to true, all arrays are plottet and if not,  
it will behave as it does now. I still think it's useful to order  
plots by the statistic and I also changed the layout to always be 4  
columns. This is only relevant to the MA-plots and spatial plots since  
for the other plots, all arrays are already included in the plots.


On Mar 15, 2012, at 11:17 PM, Wolfgang Huber wrote:

> Dear Daniel
> thank you for pointing out this problem. In version 3.11.4, the  
> values for the red and green channels were computed by  
> exponentiating (base 2) the values R = A+M/2 and G = A-M/2. From  
> version, 3.11.5 (in subversion, should be on the web in a few days),  
> no exponentiating is done. I hope you will find that behaviour more  
> pleasing.
> If questions persist, please send me your example dataset and  
> script. More below.
> Mar/9/12 12:33 PM, Daniel Aaen Hansen scripsit::
>> Dear Wolfgang,
>> I just tested arrayQualityMetrics 3.11.4 on 'MAList' objects and it
>> is working for me (it generates a report). However, I am not sure I
>> understand what is going on. From the box plot and density plot it
>> looks like it is using data that are not log transformed as some
>> expression values are very large. Surprisingly, it makes no
>> difference whether I set 'do.logtransform=FALSE' or
>> 'do.logtransform=TRUE'. The plots are identical and looks as if they
>> are made on non-log-transformed data.
>> I also tried to convert the data manually, as you suggested: eset<-
>> as(MA, 'ExpressionSet'). However, this yielded expression values from
>> -9 to 13 and did not work:
> Yes, this creates an ExpressionSet from the M values only. The value  
> range you quote seems consistent with that. However, doing that  
> conversion is much inferior to the current functionality for MAList  
> in arrayQualityMetrics, so please ignore that previous suggestion.
>>> min(exprs(eset))
>> [1] -9.230704
>>> max(exprs(eset))
>> [1] 13.12851
>> Another question: is there a way to make arrayQualityMetrics create
>> MA-plots and spatial plots for all arrays and not just a subset? I
>> think that would be a nice feature, but I could not find it. For
>> example, it would make it easier to compare MA-plots before and after
>> normalization. As it is now, it may plot MA-plots for different
>> arrays before and after normalization.
> Currently, it is not that easy, but of course, this being R and open  
> source, it is possible. You need to create your own version of the  
> function 'aqm.maplot', and e.g. replace the line
>   if (x$numArrays <= 8) {
> by
>   if (TRUE) {
> Then you also need to make sure that the function  
> 'arrayQualityMetrics' finds your version of 'aqm.maplot'. This is  
> done either by putting the latter back into the namespace of the  
> package 'arrayQualityMetrics', or by also creating your own version  
> of the function 'arrayQualityMetrics' (which is quite short and  
> simple, it just successively calls the functions creating the  
> various report parts.)
> See also the vignette "Advanced topics: Customizing  
> arrayQualityMetrics reports and programmatic processing of the  
> output".
> If someone comes up with a user-interface that allows exposing this  
> (and similar) options to the user at the level of the  
> 'arrayQualityMetrics' function without creating a plethora of  
> parameter options, I will implement it in the package.
> (The 'philosophy' of the package is to produce a reasonable report  
> for almost everyone with default settings; whereas customisations  
> can be obtained through using the flexibility of the R language, and  
> a modular design of the package functionality - rather than banging  
> in lots and lots of parameters and options into a monolithic  
> function.)
> Best wishes
> 	Wolfgang
> Wolfgang Huber
> http://www.embl.de/research/units/genome_biology/huber

More information about the Bioconductor mailing list