library(affy) setwd("/path/to/version1") My.version1 <- ReadAffy() setwd("/path/to/version2") My.version2 <- ReadAffy() #download and install the mgu74av12mix cdfenv install.packages("mgu74av12mixcdf",contriburl="http://www.stat.berkeley.edu/~bolstad/mixtureCDF/") #or download and install the hgu95av12mix cdfenv install.packages("hgu95av12mixcdf",contriburl="http://www.stat.berkeley.edu/~bolstad/mixtureCDF/") #a function to merge to affybatchs merge.mix <- function(x, y,annotation=paste(annotation(x), annotation(y)), description=NULL, notes=paste(x@notes, y@notes), mergecdfName,...) { if ((nrow(x) != nrow(y)) || (ncol(x) != ncol(y))) stop("cannot merge chips of different sizes !") if (is.null(description)) description <- paste("merged") phenodata <- phenoData(x) pData(phenodata) <- rbind(pData(x),pData(y)) return(new("AffyBatch", exprs=cbind(intensity(x),intensity(y)), cdfName=mergecdfName, nrow=nrow(x), ncol=ncol(x), phenoData=phenodata, annotation=x@annotation, description=description(x), notes=paste(x@notes,y@notes)) ) } #for MGU74A (version 1 and 2) do something like my.merged <- merge.mix(My.version1,My.version2,mergecdfName="MGU74A_V12mix") eset.merged <- rma(my.merged) #to merge HGU95A versions 1 and version 2 do something like my.merged <- merge.mix(My.version1,My.version2,mergecdfName="HGU95A_V12mix") eset.merged <- rma(my.merged)