不同格式的单细胞表达量矩阵文件读取的分门别类的代码我们都分享了好多次,最后都是要成为
Seurat
对象。详见:
读取不同格式的单细胞转录组数据及遇到问题的解决办法
,简单的汇总一下就是:
-
-
使用
Seurat
包中的
Read10X_h5
函数。
-
10X格式通常包含
matrix.mtx.gz
、
genes.tsv.gz
(或
features.tsv.gz
)和
barcodes.tsv.gz
三个文件。
-
使用
Seurat
包中的
Read10X
函数。
-
使用
data.table
包中的
fread
函数。
-
同样使用
data.table
包中的
fread
函数。
遇到的问题及解决办法:
-
非标准10X数据集
:有时GEO数据库上传的数据可能不符合标准格式,需要进行预处理。
-
去除第一行和第一列
:如果第一行或第一列包含非数据内容,需要去除以避免读取错误。
-
解决办法:使用R的数据处理函数,如
read.table
时指定
quote = ""
和
row.names = 1
,或者手动去除不需要的行列。
-
特征(feature)列问题
:如果特征列不符合预期,可能需要指定
gene.column
参数。
-
**使用
read.table
**:有评论建议使用
read.table
函数,并通过设置参数
quote = ""
和
row.names = 1
来避免切割文件。
其它:比如
.loom
文件可以使用
Seurat
包中的
Read10X_loom
函数或者
loomR
包来读取。
一个让人脑子有坑的公共数据集
正常情况下,任意公共数据集,都是只需要把表达量矩阵文件读入到r编程语言里面的成为了一个合格的Seurat对象,后续的降维聚类分群等常规单细胞转录组数据分析基本上可以套用我们的标准代码即可,
但是最近交流群有小伙伴反馈了一个新鲜出炉的文章:《Single-cell profiling reveals altered immune landscape and impaired NK cell function in gastric cancer liver metastasis》它的数据集是GSE246662,在GEO界面可以看到作者给出来的是如下所示的文件 :
21M 11 1 2023 GSM7874169_HL1.csv.gz
22M 11 1 2023 GSM7874170_HL2.csv.gz
16M 11 1 2023 GSM7874171_HL3.csv.gz
13M 11 1 2023 GSM7874172_GC1.csv.gz
22M 11 1 2023 GSM7874173_GC2.csv.gz
33M 11 1 2023 GSM7874174_GC3.csv.gz
17M 11 1 2023 GSM7874175_LM1.csv.gz
27M 11 1 2023 GSM7874176_LM2.csv.gz
25M 11 1 2023 GSM7874177_LM3.csv.gz
如果是每个文件当做是同样的格式批量读取,就会出现如下所示的奇怪的降维聚类分群图: