3

I want to save a sparse and very large dgcMatrix onto disc. I read that it could be done with writeMM method. So, when I am trying to do that:

writeMM(UMI_count, "/home/gene_count_filtered/filtered_dataset")

Rstudio is giving me an error:

Error in writeMM(UMI_count, "/home/gene_count_filtered/filtered_dataset") : 
could not find function "writeMM"

Ok, I read that this function is in the Matrix package. I installed it, but when I try loading it:

library(Matrix)

I am getting another error due to other libraries using Matrix already on the lower level, as I understand:

Error in value[[3L]](cond) : 
Package ‘Matrix’ version 1.2.11 cannot be unloaded:
Error in unloadNamespace(package) : namespace ‘Matrix’ is imported by 
‘scran’, ‘scater’, ‘SummarizedExperiment’ so cannot be unloaded

I also tried justwrite.matrix(UMI_count, "/home/nikita/filtered_dataset"), but got an error:

Cholmod error 'out of memory' at file ../Core/cholmod_memory.c, line 147

What could be the solution to the problem? I just need to somehow save a very large dgcMatrix on disc.

Nikita Vlasenko
  • 2,558
  • 3
  • 26
  • 38

1 Answers1

1

Ultimately I just restarted Rstudio as Konrad Rudolph suggested, imported Matrix library, and then writeMM method worked just fine. However, rownames were converted into just numbers, but I needed to keep the gene names instead as it was in dgcMatrix, so after some search I found a different way of doing that from here:

http://www.sthda.com/english/wiki/saving-data-into-r-data-format-rds-and-rdata

So, I just did save() (and then, to load back - load()) and the rownames are maintained like I wanted it to be. So, storing it now as .RData file.

Nikita Vlasenko
  • 2,558
  • 3
  • 26
  • 38