[BioC] arrayQualityMetrics() doesn't work for one-color non Affy arrays

Wolfgang Huber whuber at embl.de
Sat Jun 9 10:02:29 CEST 2012


Dear Alex

Thanks for reporting this. It looks like the range of values in your 
ExpressionSet esetPROC is outside of what the plotting function for MA 
plots expects. Can you do please do the following

1. Update to the most recent release of 'arrayQualityMetrics', and if 
you're up to it, better even the current devel version:
http://www.bioconductor.org/packages/release/bioc/html/arrayQualityMetrics.html
http://www.bioconductor.org/packages/devel/bioc/html/arrayQualityMetrics.html

2. Establish that the reports work for you with a "well-behaved" 
ExpressionSet x for which the following holds

   !any(is.na(exprs(x)))
   all(exprs(x) > 0)
   all(is.finite(exprs(x))

3. With a non well-behaved data set, the software might produce 
non-sensical plots, but it should not stop with an error. If it does, 
can you please send me the offending data object esetPROC so that I can 
reproduce the error and catch it more gracefully in future versions.

	Best wishes
	Wolfgang

Jun/8/12 9:39 AM, Alogmail2 at aol.com scripsit::
> Dear List,
>
> Could you share your experience with arrayQualityMetrics() for  one-color
> non Affy arrays: it doesn't work for me (please see the code  below).
>
> Thanks
>
> Alex Loguinov
>
> UC, Berkeley
>
>
>
>
>> options(error = recover, warn = 2)
>> options(bitmapType =  "cairo")
>> .HaveDummy = !interactive()
>> if(.HaveDummy)  pdf("dummy.pdf")
>
>> library("arrayQualityMetrics")
>
>> head(targets)
> FileName Treatment GErep Time Conc
> T0-Control-Cu_61_new_252961010035_2_4
> T0-Control-Cu_61_new_252961010035_2_4.txt     C.t0.0     0    0     0
> T0-Control-Cu_62_new_252961010036_2_1
> T0-Control-Cu_62_new_252961010036_2_1.txt     C.t0.0     0    0     0
> T0-Control-Cu_64_252961010031_2_2
> T0-Control-Cu_64_252961010031_2_2.txt     C.t0.0     0    0     0
> T0-Control-Cu_65_new_252961010037_2_2
> T0-Control-Cu_65_new_252961010037_2_2.txt     C.t0.0     0    0     0
> T04h-Contr_06_new_252961010037_2_4
> T04h-Contr_06_new_252961010037_2_4.txt     C.t4.0     1    4     0
> T04h-Contr_10_new_252961010035_1_2
> T04h-Contr_10_new_252961010035_1_2.txt     C.t4.0     1    4    0
>
>
>>     ddaux = read.maimages(files = targets$FileName,  source = "agilent",
> other.columns  = list(IsFound = "gIsFound", IsWellAboveBG =
> "IsWellAboveBG",gIsPosAndSignif="gIsPosAndSignif",
> IsSaturated = "gIsSaturated", IsFeatNonUnifOF = "gIsFeatNonUnifOL",
> IsFeatPopnOL = "gIsFeatPopnOL", ChrCoord =
> "chr_coord",Row="Row",Column="Col"),
> columns =  list(Rf = "gProcessedSignal", Gf = "gMeanSignal",
> Rb =  "gBGMedianSignal", Gb = "gBGUsed"), verbose = T,
> sep = "\t", quote = "")
>
>
>> class(ddaux)
> [1] "RGList"
> attr(,"package")
> [1]  "limma"
>> names(ddaux)
> [1] "R"        "G"       "Rb"       "Gb"      "targets" "genes"   "source"
>   "printer" "other"
>
>
> I could apply:
>>
>> class(ddaux$G)
> [1] "matrix"
>
>> all(rownames(targets)==colnames(ddaux$G))
> [1] TRUE
>
>> esetPROC = new("ExpressionSet", exprs = ddaux$G)
>
> But it results in errors:
>
>> arrayQualityMetrics(expressionset=esetPROC,outdir ="esetPROC",force  =T)
>
> The directory 'esetPROC' has been created.
> Error: no function to return  from, jumping to top level
>
> Enter a frame number, or 0 to exit
>
>   1: arrayQualityMetrics(expressionset = esetPROC, outdir = "esetPROC",
> force = T)
> 2: aqm.writereport(modules = m, arrayTable = x$pData,  reporttitle =
> reporttitle, outdir = outdir)
> 3: reportModule(p = p,  module = modules[[i]], currentIndex = currentIndex,
> arrayTable =  arrayTableCompact, outdir = outdir)
> 4: makePlot(module)
> 5:  print(_x at plot_ (mailto:x at plot) )
> 6: print.trellis(_x at plot_ (mailto:x at plot) )
> 7: printFunction(x, ...)
> 8:  tryCatch(checkArgsAndCall(panel, pargs), error = function(e)
> panel.error(e))
> 9: tryCatchList(expr, classes, parentenv,  handlers)
> 10: tryCatchOne(expr, names, parentenv, handlers[[1]])
> 11:  doTryCatch(return(expr), name, parentenv, handler)
> 12:  checkArgsAndCall(panel, pargs)
> 13: do.call(FUN, args)
> 14: function (x, y =  NULL, subscripts, groups, panel.groups =
> "panel.xyplot", ..., col = "black",  col.line = superpose.line$col, col.symbol =
> superpose.symb
> 15:  .signalSimpleWarning("closing unused connection 5
> (Report_for_exampleSet/index.html)", quote(NULL))
> 16: withRestarts({
> 17:  withOneRestart(expr, restarts[[1]])
> 18: doWithOneRestart(return(expr),  restart)
>
> Selection: 0
>
>
> Error in KernSmooth::bkde2D(x, bandwidth = bandwidth, gridsize =  nbin,  :
> (converted from warning) Binning grid too coarse for  current (small)
> bandwidth: consider increasing 'gridsize'
>
> Enter a frame number, or 0 to exit
>
>   1: arrayQualityMetrics(expressionset = esetPROC, outdir = "esetPROC",
> force = T)
> 2: aqm.writereport(modules = m, arrayTable = x$pData,  reporttitle =
> reporttitle, outdir = outdir)
> 3: reportModule(p = p,  module = modules[[i]], currentIndex = currentIndex,
> arrayTable =  arrayTableCompact, outdir = outdir)
> 4: makePlot(module)
> 5:  do.call(_x at plot_ (mailto:x at plot) , args = list())
> 6: function  ()
> 7: meanSdPlot(x$M, cex.axis = 0.9, ylab = "Standard deviation of  the
> intensities", xlab = "Rank(mean of intensities)")
> 8:  meanSdPlot(x$M, cex.axis = 0.9, ylab = "Standard deviation of the
> intensities",  xlab = "Rank(mean of intensities)")
> 9: smoothScatter(res$px, res$py,  xlab = xlab, ylab = ylab, ...)
> 10: grDevices:::.smoothScatterCalcDensity(x,  nbin, bandwidth)
> 11: KernSmooth::bkde2D(x, bandwidth = bandwidth, gridsize =  nbin, range.x
> = range.x)
> 12: warning("Binning grid too coarse for current  (small) bandwidth:
> consider increasing 'gridsize'")
> 13:  .signalSimpleWarning("Binning grid too coarse for current (small)
> bandwidth:  consider increasing 'gridsize'", quote(KernSmooth::bkde2D(x,
> bandwidth =  ba
> 14: withRestarts({
> 15: withOneRestart(expr, restarts[[1]])
> 16:  doWithOneRestart(return(expr), restart)
>
> Selection: 0
>
>
>> sessionInfo()
> R version 2.14.2 (2012-02-29)
> Platform:  i386-pc-mingw32/i386 (32-bit)
>
> locale:
> [1] LC_COLLATE=English_United States.1252   LC_CTYPE=English_United
> States.1252    LC_MONETARY=English_United  States.1252
> [4]  LC_NUMERIC=C                            LC_TIME=English_United
> States.1252
>
> attached base packages:
> [1] stats     graphics   grDevices utils     datasets  methods    base
>
> other attached packages:
> [1]  CCl4_1.0.11                 vsn_3.22.0
> arrayQualityMetrics_3.10.0 Agi4x44PreProcess_1.14.0    genefilter_1.36.0
> [6]  annotate_1.32.3             AnnotationDbi_1.16.19       limma_3.10.3
>               Biobase_2.14.0
>
> loaded via a namespace (and not attached):
> [1]  affy_1.32.1            affyio_1.22.0          affyPLM_1.30.0
> beadarray_2.4.2        BiocInstaller_1.2.1   Biostrings_2.22.0
> [7]  Cairo_1.5-1            cluster_1.14.2         colorspace_1.1-1
> DBI_0.2-5              grid_2.14.2            Hmisc_3.9-3
> [13]  hwriter_1.3            IRanges_1.12.6         KernSmooth_2.23-7
> lattice_0.20-6         latticeExtra_0.6-19    plyr_1.7.1
> [19]  preprocessCore_1.16.0 RColorBrewer_1.0-5     reshape2_1.2.1
> RSQLite_0.11.1         setRNG_2011.11-2       splines_2.14.2
> [25]  stringr_0.6            survival_2.36-14      SVGAnnotation_0.9-0
> tools_2.14.2           XML_3.9-4.1            xtable_1.7-0
> [31]  zlibbioc_1.0.1
>
>
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor


-- 
Best wishes
	Wolfgang

Wolfgang Huber
EMBL
http://www.embl.de/research/units/genome_biology/huber



More information about the Bioconductor mailing list