dviraran / SingleR

SingleR: Single-cell RNA-seq cell types Recognition (legacy version)
GNU General Public License v3.0
272 stars 98 forks source link

CreateBigSingleRObject() error #23

Open alexandruioanvoda opened 5 years ago

alexandruioanvoda commented 5 years ago

I've ran the following lines:

library("Seurat")
library("dplyr")
library("SingleR")
SingleR.numCores <- 31

exp.data <- Read10X_h5("/gfs/work/avoda/ibd/data/rna/HCA/immune_census/cord_blood/ica_cord_blood_h5.h5")

singler <- CreateBigSingleRObject(exp.data, annot = NULL, project.name = "28Jan_HCA_CB", xy = NULL, clusters = NULL,
                                  N = 10000, min.genes = 200, technology = "10X",
                                  species = "Human", citation = "", ref.list = hpca,
                                  normalize.gene.length = F, variable.genes = "de", fine.tune = F,
                                  reduce.file.size = T, do.signatures = F, do.main.types = T,
                                  temp.dir = getwd(), numCores = SingleR.numCores)

The reason why I ran it without fine-tuning is for speed & debugging purposes. And I get the following error:

[1] "Dimensions of counts data: 33694x10000"
[1] "Annotating data with HPCA..."
[1] "Variable genes method: de"
[1] "Number of DE genes:4394"
[1] "Number of cells: 5620"
[1] "Fine-tuning round on top cell types (using 31 CPU cores):"
Error in sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) : 
  write error, closing pipe to the master
Calls: CreateBigSingleRObject ... pbmclapply -> mclapply -> lapply -> FUN -> sendMaster
Error in dimnames(x) <- dn : 
  length of 'dimnames' [1] not equal to array extent
Calls: CreateBigSingleRObject ... SingleR.CreateObject -> SingleR -> SingleR.FineTune -> rownames<-
Execution halted

The expression matrix is available here: https://s3.amazonaws.com/preview-ica-expression-data/ica_cord_blood_h5.h5

dviraran commented 5 years ago

Yeah, the SingleR.Combine function is not capable to handle non fine-tuned objects... I'll adjust it once I'll have time.