一、Seurat 简介
Seurat 是一款用于单细胞数据分析的软件,它是一款 R 包。可以对单细胞数据从表达矩阵开始分析。主要可以用于 QC,根据线粒体基因比率进行过滤,细胞分群,差异基因识别,亚细胞分群以及数据可视化等功能,是单细胞研究领域非常著名的工具。
网站:https://satijalab.org/seurat/index.html
Seurat 教程:https://satijalab.org/seurat/articles/get_started.html
虽然 cellranger 也可以直接得到单细胞数据分析的结果,使用 Seruat 更加灵活,通过 R 语言交互式的运行,可以实时进行数据探索,更加方便。
二、软件安装
#安装软件
install.packages('Seurat',lib = "/opt/R/4.2.1/lib/R/library",destdir = '/home/xhs/Rpack/download')
install.packages('tidyverse',lib = "/opt/R/4.2.1/lib/R/library",destdir = '/home/xhs/Rpack/download')
install.packages('patchwork',lib = "/opt/R/4.2.1/lib/R/library",destdir = '/home/xhs/Rpack/download')
三、案例介绍
Seurat 官网提供了大量单细胞分析的案例,包括单细胞表达差异分析,多样品分析,空间转录组等案例,每个案例带有代码和案例数据,直接运行既可以完成分析。这里我们首先练习一个常规单细胞的分析。
https://satijalab.org/seurat/articles/pbmc3k_tutorial.html
数据下载:https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz
四、读入数据
# Load the PBMC dataset
pbmc.data <- Read10X(data.dir = "./16.rscrna/filtered_gene_bc_matrices/hg19/")
这个案例中包含了 2700 个细胞的 PBMC 细胞,输入数据为一个 feature-barcode 矩阵,该数据可以直接从 cellranger 的输出结果中获得,文件来自于 filtered_gene_bc_matrices/hg19/目录,里面包含三个文件,分别为
#1 barcodes 文件
barcodes.tsv
#2 基因表达列表
features.tsv
#3 表达矩阵
matrix.mtx
该案例从表达矩阵入手,分别进行了读入数据,创建对象,数据质控过滤。
稀疏矩阵与稠密矩阵:在矩阵中,若数值为 0 的元素数目远远多于非 0 元素的数目时,则称该矩阵为稀疏矩阵。与之相反,若非 0 元素数目占大多数时,则称该矩阵为稠密矩阵。
稀疏矩阵( sparse matrix)
OTU ID sampleA sampleB sampleC
OTU0 0 0 4
OTU1 6 0 0
OTU2 1 0 7
OTU3 0 0 3
稠密矩阵(dense matrix)
sampleA OTU1 6
SampleA OTU2 1
SampleB OTU0 4
SamppleC OTU2 7
SampleC OTU3 3
由于单细胞中大量基因在不同细胞中不表达,因此包含 很多 0 元素。
#查看稀疏矩阵的维度,即基因数和细胞数;
dim(pbmc.data)
dense.size <- object.size(as.matrix(pbmc.data))
dense.size
sparse.size <- object.size(pbmc.data)
sparse.size
#稀疏矩阵占用小空间存储。
rm(list=c('dense.size','sparse.size'))
gc() #释放内存
#预览稀疏矩阵(1~10行,1~6列),. 表示0;
pbmc.data[1:10,1:6]
使用 CreateSeuratObject 函数创建对象,该步骤为分析中最核心的步骤,后续操作都是基于SeuratObject 进行操作,如果该步骤没有问题,后续代码大部分情况下都可以正常运行。数据集中测到的少于 200 个基因的细胞(min.features = 200)和少于 3 个细胞覆盖的基因(min.cells = 3)被过滤掉。
#创建Seurat对象,不同数据集修改project选项
pbmc <- CreateSeuratObject(counts = pbmc.data,project = "pbmc3k",min.cells = 3,min.features = 200)
pbmc
str(pbmc)
class(pbmc)
pbmc@assays
pbmc@meta.data
pbmc@active.assay
pbmc@active.ident
pbmc@graphs
pbmc@project.name
pbmc@version
pbmc@misc
pbmc@commands
pbmc@tools
pbmc@images
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
sx.voiceclouds.cn
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。