write.table中的错误-损坏的矩阵-暗淡与长度不匹配

时间:2019-04-08 18:17:04

标签: r matrix sparse-matrix corrupt write.table

我正在尝试做一些单细胞RNA测序分析。目前,我正在处理代表细胞X基因的矩阵。我正在尝试将这些矩阵中的三个合并在一起,其中两个是稀疏格式。之前,我已经在具有大约相同列数但行较少的矩阵中做到了这一点。

但是,当我尝试从合并矩阵中写入一个csv文件时,出现以下错误输出:

Error in write.table(test_dataset_m, file = "Splits_Arcuate.csv", sep = ",",  :  
corrupt matrix -- dims not not match length

我在Ubuntu 18.04.2 LTS服务器上运行此程序,使用Putty与Windows 10笔记本电脑进行SSH连接,并且我在服务器上运行Rstudio作为摇杆映像(rocker / tidyverse)。

我已经尝试消除未表达的基因(colsums = 0),但这并没有真正改变矩阵的整体大小。我也尝试过直接在write.table命令()中转换稀疏矩阵,但输出错误。

write.table(as.matrix(test_dataset), file = "Splits_Arcuate.csv", sep = ",", row.names = T, col.names = T)
Error in asMethod(object) : 
  Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 105

现在,这是我的代码。在这里,我将行名放到一个列表中,然后用它在不同的数据集中查找共同的基因,并以此建立新的矩阵。然后,我尝试将数据集与cbind合并。 split2和split11是稀疏矩阵。

testgenes <- list(split2_genes, split11_genes, rownames(camp_counts))

test_universe <- Reduce(dplyr::intersect, testgenes, accumulate = F)

split2 <- splitseq_dge[test_universe,cells_split2]
split11 <- splitseq_dge[test_universe, cells_split11]
arcuate <- camp_counts[test_universe,]

split2 <- as.matrix(split2)
split11 <- as.matrix(split11)

test_dataset <- cbind(split2, split11, arcuate)

write.table(test_dataset, file = "Splits_Arcuate.csv", sep = ",", row.names = T, col.names = T)

事情是我需要 CSV输出,以作为其他软件的输入。

我不确定这是否是内存分配错误。我正在16核128GB RAM大学服务器上运行它。

0 个答案:

没有答案