[BioC] reading single channel Agilent data with limma [was arrayQualityMetrics d...

Gordon K Smyth smyth at wehi.EDU.AU
Thu Jun 14 01:57:06 CEST 2012


Dear Alex,

When I answer a question on the Bioconductor list, I am always refering to 
current Bioconductor release unless stated otherwise.  I don't think it is 
unreasonable to ask you to look at the current documentation:

http://bioconductor.org/packages/2.10/bioc/vignettes/limma/inst/doc/usersguide.pdf

Please send questions about arrayQualityMetrics to the authors of that 
package.

I'm not an author of the Agi4x44PreProcess package.  You could write to 
the authors and suggest they update the import procedure.

Best wishes
Gordon

---------------------------------------------
Professor Gordon K Smyth,
Bioinformatics Division,
Walter and Eliza Hall Institute of Medical Research,
1G Royal Parade, Parkville, Vic 3052, Australia.
http://www.statsci.org/smyth

On Wed, 13 Jun 2012, Alogmail2 at aol.com wrote:

> Hi Gordon,
>
> Why creating ExpressionSet
>
>> esetPROC = new("ExpressionSet", exprs = ddaux$G)
>
> results in error if then running
>
>> arrayQualityMetrics(expressionset=esetPROC,outdir  ="esetPROC",force  =T)
>
> ?
>
> Developers (Audrey Kauffmann and Wolfgang Huber) claim that
> "expressionset is an object of class ExpressionSet for one color non
> Affymetrix data"
> (see definitions for prepdata() in their reference manual).
>
> As to bg-correction: I agree that it makes sense usually.
> I looked at the LIMMA user guide(11 November 2011): Agilent is mentioned in
> pp.16, 19, and 26 ...
> and nothing special about one-color Agilent arrays.
>
> But your read.maimages() is used in read.AgilentFE() from package
> Agi4x44PreProcess to import Agilent one-color data sets as RGlist.
>
> Thanks
>
> Alex
>
>
>
> In a message dated 6/9/2012 8:12:37 P.M. Pacific Daylight Time,
> smyth at wehi.EDU.AU writes:
>
> Hi  Alex,
>
> I don't know arrayQualityMetrics, but you are using the limma  package to
> read single-channel Agilent data in a way that I think might  cause
> problems with down-stream analyses.  Basically you're creating  a two-color
> data object when your data is not actually of that type.   This was a time
> when I suggested this sort of work-around as a stop-gap  measure for some
> data problems, but hasn't been necessary for quite a few  years.
>
> I'd also recommend that you do some background correction.   If I
> understand your code correctly, I don't think it is currently making  use
> of the background intensity column.
>
> There is a case study in  the limma User's Guide that deals with single
> channel Agilent data.   Could you please have a read of that for a cleaner
> way to read Agilent  data?
>
> I don't know whether that will be enough to solve your  arrayQualityMetrics
> problem, but perhaps it might.
>
> Best  wishes
> Gordon
>
> ------------- original message -------------
> [BioC]  arrayQualityMetrics() doesn't work for one-color non Affy arrays
> Alogmail2  at aol.com Alogmail2 at aol.com
> Fri Jun 8 09:39:21 CEST 2012
>
> 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

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



More information about the Bioconductor mailing list