[BioC] Combining HGU133A & HGU133B data

Laurent Gautier laurent at cbs.dtu.dk
Mon Sep 15 15:43:17 MEST 2003

On Mon, Sep 15, 2003 at 02:19:01PM +0200, w.huber at dkfz-heidelberg.de wrote:
> Hi
> On Mon, 15 Sep 2003, Laurent Gautier wrote:
> > Wolgang Huber and Robert Gentleman have certainly a word to say about
> > that. Did you check the function 'combine' in the package 'matchprobes'
> > (section 'devel') ?
> The combine function in the matchprobes package is useful for combining
> data from different chip types. The combination is done on the
> probe-level, before normalization, and it requires that there is an
> appreciable overlap in probe sequences (as, for example, with
> hu6800/hgu95av2 or mgu74a/mgu74av2). The combination is based on the
> INTERSECTION of probes that have the same sequence, and from the point of
> view of the expression matrix, it corresponds, loosely speaking, to a
> What Adaikalavan is looking for is much simpler: something that works on
> the UNION of all probes/genes on HGU133A and HGU133B, and from the point
> of view of the expression matrix corresponds to an RBIND.
> I am not aware of a simpler method for doing this than calling
> new("exprSet", ....) with the arguments patched together from the
> individual two HGU133A and HGU133B exprSets.
> Best regards
>   Wolfgang
> -------------------------------------
> 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/mga/whuber
> -------------------------------------

Ooops... sorry for the confusion (I never used combined (...yet)).

In this case, the union of expression values is a straightforward 'rbind'
as Wolfgang suggests. The probe business is slightly more tricjy because
of the cdfenvs. The following scheme should make it (more or less I
did not test it):

##abatch.a and abatch.b are the AffyBatch objects

abatch.ab <- new("AffyBatch", exprs=rbind(exprs(abatch.a), exprs(abatch.b)), cdfName="cdfenv.ab")

## make a cdfenv for the union-combined-chips
cdfenv.ab <- new.env(hash=TRUE)

cdfenv.a <- getCdfInfo(abatch.a)
for (i in ls(cdfenv.a)) {
  assign(i, get(i, envir=cdfenv.a), envir=cdfenv.ab)
offset <- nrow(exprs(abatch.a))
cdfenv.b <- getCdfInfo(abatch.b)
for (i in ls(cdfenv.b)) {
  if (exists(i, envir=cdfenv.a))
    stop(paste(i, ": id already in use !"))
  assign(i, get(i, envir=cdfenv.b)+offset, envir=cdfenv.ab)

## from now, this should be like a regular AffyBatch
## (expect quirks with some methods/functions 
## dealing with spatial features of the probes, ex: image) 

Hopin' it helps,


Laurent Gautier			CBS, Building 208, DTU
PhD. Student			DK-2800 Lyngby,Denmark	
tel: +45 45 25 24 89		http://www.cbs.dtu.dk/laurent

More information about the Bioconductor mailing list