[BioC] problem with "just.gcrma" and a fix

Jenny Bryan jenny at stat.ubc.ca
Thu Oct 7 02:00:40 CEST 2004


First, many thanks to those behind this method and package.  I have
gcrma 1.1.0.

I've experienced a problem with just.gcrma and I'm pretty sure it's
not user error.  I am pre-computing the probe affinity info and
passing it via the "affinity.info" argument. The "just.gcrma" function
is not passing that affinity info on to "fast.bkg" and/or "mem.bkg".

Failure with pre-computed affinity info:
> moe430a.ai <- compute.affinities("moe430a")
> jeset.A <-
+   just.gcrma(filenames = paste(where.am.i, "data/celfiles/",
+         chip.details.sel[take.me,
+                          "chip.names"],
+                sep=""),
+              phenoData = pD.A[1:4,],
+              affinity.info = moe430a.ai,
+              type="affinities")
Adjusting for optical effect.....Done.
Error in sample(1:length(pms[index.affinities, ]), 25000) : 
	Object "index.affinities" not found

Success when allowing just.gcrma to re-compute the affinity info:
> jeset.A <-
+   just.gcrma(filenames = paste(where.am.i, "data/celfiles/",
        chip.details.sel[take.me,
+                          "chip.names"],
+ +                sep=""),
+              phenoData = pD.A[1:4,],
+              type="affinities")
Computing affinities..Done.
Adjusting for optical effect.....Done.
Adjusting for non-specific binding....Done.
Normalizing
Calculating Expression

Success with pre-computed affinity info, with a slight fix in
just.gcrma:
> jeset.A2 <-
+   jb.just.gcrma(filenames = paste(where.am.i, "data/celfiles/",
+                   chip.details.sel[take.me,
+                                    "chip.names"],
+                   sep=""),
+                 phenoData = pD.A[1:4,],
+                 affinity.info = moe430a.ai,
+                 type="affinities")
Adjusting for optical effect.....Done.
Adjusting for non-specific binding....Done.
Normalizing
Calculating Expression
 
The statements inside "if (needaff & is.null(affinity.info)) {...}
could be replaced with:

  if (needaff) {
    if (is.null(affinity.info)) {
      if (verbose) 
        cat("Computing affinities.")
      affinity.info <- compute.affinities(cdfName, verbose = verbose)
      int.aff.calc <- TRUE   # is the garbage collection important?
      if (verbose) 
        cat("Done.\n")
    } else int.aff.calc <- FALSE  # allows garbage collection below
    pm.affinities <- pm(affinity.info)
    mm.affinities <- mm(affinity.info)
    index.affinities <- which(!is.na(pm.affinities))
    pm.affinities <- pm.affinities[index.affinities]
    mm.affinities <- mm.affinities[index.affinities]
    if (int.aff.calc) {
      rm(affinity.info)
      gc()
    }
  }

-- 
Jenny Bryan, Ph.D.
*----------------------------------*
* Assistant Professor              *
* Department of Statistics and     *
*   the Michael Smith Laboratories *
* University of British Columbia   *
*----------------------------------*
333-6356 Agricultural Road        
Vancouver, BC V6T 1Z2 Canada      
http://hajek.stat.ubc.ca/~jenny/  
tel:   604.822.6422   
fax:   604.822.6960   
email: jenny at stat.ubc.ca



More information about the Bioconductor mailing list