做单细胞转录组数据数据分析的第一步是载入表达量矩阵文件到R或者Python这样的编程环境里面,而我们主推的就是基于R语言的Seurat流程,它可以使用Read10X读取3个文件。
但是Read10X读取3个文件还得注意版本,而且必须保证3个文件名字完全一样,如果是最新版,应该是如下所示的:
代码语言:javascript复制barcodes.tsv.gz features.tsv.gz matrix.mtx.gz
如果是旧版本,3个文件的名字就不能是gz压缩格式后缀哦,如下所示才合格哈:
代码语言:javascript复制barcodes.tsv genes.tsv matrix.mtx
只有这样才能把表达量矩阵读入进去,但是总会有小伙伴遇到不一样的奇奇怪怪的文件,我们《生信菜鸟团》的单细胞周更专辑作者分享过好几次了基础文件读取技巧啦,详见:读取不同格式的单细胞转录组数据及遇到问题的解决办法,即使是这样,不看我们推文的也很多,仍然是每个人都需要从零开始提问一遍,如下行:
每个人都需要从零开始提问一遍
读取文件到R环境里面后,还需要走Seurat的降维聚类分群流程,我们来一个《单细胞第一步》的公开课吧!预约下面的视频号链接(今晚六点开始哈)
需要了解3个文件的规则
代码语言:javascript复制$ head *
==> barcodes.tsv <==
AAACATACAACCAC-1
AAACATTGAGCTAC-1
AAACATTGATCAGC-1
AAACCGTGCTTCCG-1
AAACCGTGTATGCG-1
AAACGCACTGGTAC-1
AAACGCTGACCAGT-1
AAACGCTGGTTCTT-1
AAACGCTGTAGCCA-1
AAACGCTGTTTCTG-1
==> genes.tsv <==
ENSG00000243485 MIR1302-10
ENSG00000237613 FAM138A
ENSG00000186092 OR4F5
ENSG00000238009 RP11-34P13.7
ENSG00000239945 RP11-34P13.8
ENSG00000237683 AL627309.1
ENSG00000239906 RP11-34P13.14
ENSG00000241599 RP11-34P13.9
ENSG00000228463 AP006222.2
ENSG00000237094 RP4-669L17.10
==> matrix.mtx <==
%%MatrixMarket matrix coordinate real general
%
32738 2700 2286884
32709 1 4
32707 1 1
32706 1 10
32704 1 1
32703 1 5
32702 1 6
32700 1 10
比较让大家困惑的可能是 matrix.mtx 文件里面的表达量矩阵,是32738个基因在 2700个细胞的表达量矩阵。但是仅仅是 2286884个值是大于0 的,所以会被记录在 matrix.mtx 文件里面,我们简单的一个计算就知道
代码语言:javascript复制> 32738 * 2700
[1] 88392600
> 2286884/(32738 * 2700)
[1] 0.02587189
表达量矩阵里面也就是说只有2.5%的值不是0 ,那么就没必要使用矩阵来记录了,太浪费空间了。
那么,为什么绝大部分教程都是Read10X读取3个文件呢?
我怀疑可能是以下两个原因:
首先可能是历史遗留问题,第一个写教程的人使用了Read10X读取3个文件,后面就都懒得修改了。另外一个原因是,h5文件不方便肉眼看,起码上面的3个文件,我们可以打开看看内容形式。