[BioC] Question on afy/gcrma probe indexes

Wolfgang Huber w.huber at dkfz-heidelberg.de
Wed Apr 28 13:22:02 CEST 2004


Hi Rich,

Affymetrix uses counting of the x- and y-coordinates that starts at 0, 
and so do the probe packages and the functions xy2i and i2xy from the 
CDF packages. For a historic reason, there is code around in
the affy package that uses coordinates that are incremented by 1.

In AffyBatch objects, x- and y-coordinates are not stored at all: the 
data is stored in a matrix, where columns correspond to different arrays 
and rows to all probes within one array. x and y coordinates can be 
reconstructed from the row index, e.g. by the function i2xy.

Otherwise, can you please be more specific? Which commands do you use to 
get (1.), which to get (2.), and what do you mean by "in affy" (which 
function, or which object)?


Hope that helps,
  Wolfgang


Rich Haney wrote:
> I am using gcrma with the HG-133A dataset.  When I ask for the location (
> index ) of the first probe I get:
> 
> (1.) Probe = 1007_s_at1
>   
>      Index = 129340    [ The probe is at (x,y) =(467,181) ]
> 
> As I understand it, the probe position is found using the affy routine
> 'xy2i'.  There, the logic for finding a position from x and y is 0-based for
> y and 1-based for x.  So:
> 
> (2.) Index = x + nrows * ( y - 1 )    with nrows = 712 and, as above, x=467
> and y=181
> 
>      Index = 467 + 712 * ( 181 - 1 )
>            = 128627 ( that is, 712 + 1 less than answer given above, 129340
> ).
> 
> So the question is, in affy, is the Index of probes stored with 1-based (
> not 0-based ) y- coordinates, while xy2i assumes 0-based coordinates?
> 
> Thanks for your help!
> 
> ----------------------------------------------------------------------------
> -
> 
> Notes:
> 
> (a.) I believe that this is why my background adjustment is then not
> correct:                
> 
> bg.adjust.optical <- function(abatch,minimum=1,verbose=TRUE){
>   Index <- unlist(indexProbes(abatch,"both"))
> 
>   if(verbose) cat("Adjusting for optical effect")
>   for(i in 1:length(abatch)){
>     if(verbose) cat(".")
>     exprs(abatch)[Index,i] <- exprs(abatch)[Index,i] -
>       min(exprs(abatch)[Index,i],na.rm=TRUE) + minimum
>   }
> 
> 
> (b.) The probe index is created using the following lines of gcrma:
> 
> ##put it in an affybatch
> tmp <- get("xy2i",paste("package:",cdfpackagename,sep=""))
> affinity.info <- new("AffyBatch",cdfName=cdfname)
> pmIndex <-  unlist(indexProbes(affinity.info,"pm"))
> mmIndex <-  unlist(indexProbes(affinity.info,"mm"))
> subIndex <- match(tmp(p$x,p$y),pmIndex)
> 
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://www.stat.math.ethz.ch/mailman/listinfo/bioconductor


-- 
-------------------------------------
Wolfgang Huber
Division of Molecular Genome Analysis
German Cancer Research Center
Heidelberg, Germany
Phone: +49 6221 424709
Fax:   +49 6221 42524709
Http:  www.dkfz.de/abt0840/whuber



More information about the Bioconductor mailing list