1. matrix.mtx
做过10xGenomics单细胞转录组的人都知道cellranger的标准输出是三个文件(barcodes.tsv genes.tsv matrix.mtx),由这三个文件组成表达矩阵,其实这么做的原因就是为了节省空间以及加快导入速度,matrix是一种十分有效的数据存储方式,一般可以通过Matrix::readMM读取matrix矩阵,一直以来,我以为cellranger输出的matrix.mtx矩阵与其他的矩阵没有区别的,但是最近在做另外的一个软件kallistobustools比对的时候发现有点不对劲,由于其输出结果也是三个矩阵,但是有个前缀,我想着对Seurat的Read10X的函数进行改写一下,增加前缀、后缀的参数就可以了,结果改完了以后,始终报如下的错误:
Error in dimnamesGets(x, value) :
invalid dimnames given for “dgTMatrix” object
开始以为是我的输入文件的问题,我检查了genes.tsv文件,发现kallistobustools只有一列,因此我有添加了一列,结果还发现报错,然后想看看matrix.mtx文件,发现其行数和列数也能对上,怎么就不对呢?这个问题弄了很久,后面实在没法了,就一行一行的运行,后面发现在给矩阵列名的时候有问题。
既然这里报错了,那就看看这两个文件的区别,后我通过dim(data),发现行列数目对不上,我这才去认真的检测两个matrix.mtx的区别。
cell.names |