seurat提取表达矩阵_Seurat

library(dplyr)

library(Seurat)

# 10X的数据可以使用Read10X这个函数,会返回一个UMI count矩阵,其中的每个值表示每个基因(行)在每个细胞(列)的分子数量

pbmc.data

# class(pbmc.data)

# str(pbmc.data)

# 利用这个UMI count矩阵构建Seurat对象,(使用非标准化的原始数据先构建一个对象);

# Seurat对象是一个容器,里面装了数据(比如表达矩阵)和分析结果(比如PCA、聚类)。关于seurat对象的详细解释,见: https://github.com/satijalab/seurat/wiki/Seurat#slots

# 在CreateSeuratObject时,会自动计算unique基因数量和总分子数,可以在object meta data中找到。

pbmc

pbmc #结果有个active assay,它存的就是表达矩阵,用pbmc[["RNA"]]@counts就可以访问

str(pbmc) #可以利用str来查看seurat对象的信息。

pbmc[[]] #使用[[ ]]是对assay的快速访问。

[email protected] #通过[email protected]也可以访问。

pbmc@version #如果要查看其他的信息,可以用@

pbmc[["RNA"]]@counts #

#关于seurat对象还需要进一步学习!

# ------------------------------------------------------------------------

# 比较稀疏矩阵和矩阵占空间大小(可无!) ----------------------------------------------------------

# # What does data in a count matrix look like?

pbmc.data[c("CD3D", "TCL1A", "MS4A1"), 1:30] #这个UMI count矩阵长什么样?和我们平常见到的bulk转录组矩阵一样吗?找几个基因,看看前30个细胞的情况

#从结果可以发现它是sparse Matrix,很杂乱。用 . 表示空着,数值为0,即没有检测到该分子。因为单细胞数据和bulk转录组数据还不太一样,scRNA的大部分数值都是0,原因一是由于建库时细胞的起始反应模板浓度就很低;二是测序存在dropout现象(本来基因在这个细胞有表达量,但没有测到)

# Seurat采用了一种聪明的再现方式,比原来用0表示的矩阵大大减小了空间占用,可以对比一下:

dense.size

dense.size

sparse.size

sparse.size

dense.size/sparse.size #比较稀疏矩阵跟矩阵之间占内存的大小,发现稀疏矩阵更省空间;

# -----------------------------------------------------------------------

# Standard pre-processing workflow ----------------------------------------

#以下为Seurat中scRNA-seq数据的标准预处理流程。包括:基于QC指标选择和过滤细胞;数据的normalization 和 scaling;寻找高异质性基因。

# * * * 质控(QC)及筛选细胞 -----------------------------------------------------

# Seurat常用的QC指标:

# 1)* 每个细胞中检测到的unique基因的数量。(因为劣质细胞或空droplets基因数很少;一个droplet中有多个细胞基因数会很多;)

# 2)* Similarly, the total number of molecul

你可能感兴趣的:(seurat提取表达矩阵)