|
发表于 2022-7-20 22:00:36
|
查看: 2312 |
回复: 0
一、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/sampl ... _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)被过滤掉。
|
|