Я пытаюсь провести анализ последовательности РНК с одной клеткой.Сейчас я имею дело с матрицами, которые представляют клетки 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 для SSH-соединения с моим ноутбуком Windows 10, и я запускаю Rstudio на сервере в качестве образного переключателя (рокер/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-ядерном университетском сервере 128 ГБ ОЗУ.