[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?
>
>
> ----------------------------------------------------------------------------
> -
>
> Notes:
>
> (a.) I believe that this is why my background adjustment is then not
> correct:
>
>   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