This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Combing two microarray datasets

Hi

Can anyone help me in sorting the below error

Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' must be of a vector type, was 'NULL'

I have been trying to combine two microarray datasets by using virtualArray package in R/Bioconductor but i am ending up with the error when I am trying to build a array.

r

It's usually easier if you show the command that produced the error.

> my_virtualArrays <- NULL
> my_virtualArrays$iPSC_hESC_noBatchEffect <- virtualArrayExpressionSets() #-- The error is after this command

I think if you paste more code, from the start, and something reproducible, it will be more helpful.

hi,

I have also been trying out this package and been getting the same error as hothriananya. Anyone could kindly advise please?

Hi Komal,

This is the examples that I followed:

library(virtualArray)
options(width=72)
library("GEOquery")
GSE23402 <- getGEO("GSE23402",GSEMatrix=T,AnnotGPL=FALSE)
GSE26428 <- getGEO("GSE26428",GSEMatrix=T,AnnotGPL=FALSE)
GSE23402 <- GSE23402[[1]][,1:24]
GSE26428 <- GSE26428[[1]]
summary(exprs(GSE23402)[,1:3])
summary(exprs(GSE26428))
exprs(GSE23402) <- log2(exprs(GSE23402))
exprs(GSE26428) <- (exprs(GSE26428)/20*16)
annotation(GSE23402) <- "hgu133plus2"
annotation(GSE26428) <- "hgug4112a"
my_virtualArrays <- NULL
options(width=60)
if(require(BiocParallel))
register(MulticoreParam(verbose=TRUE))
my_virtualArrays$iPSC_hESC_noBatchEffect <- virtualArrayExpressionSets()

Then I got this error:

> my_virtualArrays$iPSC_hESC_noBatchEffect <- virtualArrayExpressionSets()
Now preprocessing raw data of GSE23402: Loading annotations...
Usinghgu133plus2as Bioconductor annotation package for datasetGSE23402.
Loading required package: hgu133plus2.db
Loading required package: AnnotationDbi
Loading required package: GenomeInfoDb
Loading required package: org.Hs.eg.db
Loading required package: DBI


Now preprocessing raw data of GSE23402: Collapsing expression values to their median...
Using identifier as id variables
Now preprocessing raw data of GSE23402: Annotating expression values with SYMBOL...
Now preprocessing raw data of GSE26428: Loading annotations...
Usinghgug4112aas Bioconductor annotation package for datasetGSE26428.
Loading required package: hgug4112a.db

Now preprocessing raw data of GSE26428: Collapsing expression values to their median...
Using identifier as id variables
Now preprocessing raw data of GSE26428: Annotating expression values with SYMBOL...
Error: 2 errors; first error:
  Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' must be of a vector type, was 'NULL'

For more information, use bplasterror(). To resume
  calculation, re-call the function and set the
  argument 'BPRESUME' to TRUE or wrap the previous
  call in bpresume().

First traceback:
  22: virtualArrayExpressionSets()
  21: lapply(all_expression_sets, virtualArrayBuildfData, collapse_fun = collapse_fun, 
          identifier = identifier)
  20: lapply(all_expression_sets, virtualArrayBuildfData, collapse_fun = collapse_fun, 
          identifier = identifier)
  19: bplapply(X, FUN, ..., BPRESUME = BPRESUME, BPPARAM = BPPARAM)
  18: bplapply(X, FUN, ..., BPRESUME = BPRESUME, BPPARAM = BPPARAM)
  17: bplapply(X = X, FUN = FUN, ..., BPRESUME = BPRESUME, BPPARAM = SerialParam(catch.errors = BPPARAM$catch.errors))
  16: bplapply(X = X, FUN = FUN, ..., BPRESUME = BPRESUME, BPPARAM = SerialParam(catch.errors = BPPARAM$catch.errors))

Please help

I am getting exactly the same error, and I referred to the manual step by step. I am still trying to figure out what's wrong but I am pretty sure you are not doing anything incorrect, it is something with the code.

Hi Komal,

do you think there's any ways of getting round it?

thanks

It's probably simpler to simply post this to the bioconductor email list and CC the maintainer (aheider at trm.uni-leipzig.de). This looks like either a bug in the package or an error in the manual. Either way, it'd be simpler to just have the maintainer fix that.

Hopefully you get a speedy reply from the maintainer (I just saw that you posted to the bioconductor list) :)

Hi Sirus,

I have the same problems with this packages! and after adding your modified code in the virtualArrayExpressionSets function, there is another error for the function calculateOverlaps; unfourtunately the link that you have posted does not work :(. Could you help me with this function which R does not find? thks

2 answers

It seems there is a problem with the code (maybe was not updated by the authors)

I did the following changes in the virtualArrayBuildfData function, I remove the lines 62 and 63:

rownames(exprs_z$data) <- exprs_z$labels[[1]][, 1]  #this line
colnames(exprs_z$data) <- exprs_z$labels[[2]][, 1]  #this line
exprs_z <-  exprs_z$data

And replaced it as following (highlighted lines)

message("Now preprocessing raw data of ", as.character(x), 
        ": Annotating expression values with ", as.character(identifier), 
        "...")
    #rownames(exprs_z$data) <- exprs_z$labels[[1]][, 1]  #this line
    #colnames(exprs_z$data) <- exprs_z$labels[[2]][, 1]  #this line
    rownames(exprs_z) <- exprs_z$identifier  #this line
    exprs_z <- exprs_z[,-1]  #this line
    exprs(z) <- data.matrix(exprs_z, rownames.force = TRUE)
    match_fData_y2 <- match(rownames(exprs(z)), fData(z)[, 2])
    fData(z) <- fData(z)[match_fData_y2, ]

In my case the package cannot find the function calculateOverlaps if you get the same issue you can copy past the code from here

Hope it helps (even if it is 5 months later)

> my_virtualArrays <- NULL
> my_virtualArrays$iPSC_hESC_noBatchEffect <- virtualArrayExpressionSets() #-- The error is after this command

Log in to answer this question.