- 官网教程:外周血单个核细胞数据集 Peripheral Blood Mononuclear Cells (PBMC)
- 可以从这里下载 PBMC 测试数据集,把下载文件存放在 Data 目录下
创建 Seurat 对象
library(dplyr)
library(Seurat)
library(patchwork)
# 加载 PBMC dataset
pbmc.data <- Read10X(data.dir = "Data/filtered_gene_bc_matrices/hg19/")
# 初始化 Seurat object with the raw (non-normalized data).
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)
pbmc
#An object of class Seurat
#13714 features across 2700 samples within 1 assay
#Active assay: RNA (13714 features, 0 variable features)
查看 Seurat 对象
# 查看三个基因在前30个细胞中的数据
pbmc.data[c("CD3D", "TCL1A", "MS4A1"), 1:30]
## 3 x 30 sparse Matrix of class "dgCMatrix"
## [[ suppressing 30 column names ‘AAACATACAACCAC-1’, ‘AAACATTGAGCTAC-1’, ‘AAACATTGATCAGC-1’ ... ]]
## CD3D 4 . 10 . . 1 2 3 1 . . 2 7 1 . . 1 3 . 2 3 . . . . . 3 4 1 5
## TCL1A . . . . . . . . 1 . . . . . . . . . . . . 1 . . . . . . . .
## MS4A1 . 6 . . . . . . 1 1 1 . . . . . . . . . 36 1 2 . . 2 . . . .
标准预处理工作流程
These represent the selection and filtration of cells based on QC metrics, data normalization and scaling, and the detection of highly variable features.
质量控制和标准化
1. 标记线粒体基因
将“MT-”开头的基于当作线粒体基因,并计算百分比:
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
head(pbmc@meta.data, 5)
## orig.ident nCount_RNA nFeature_RNA percent.mt
## AAACATACAACCAC-1 pbmc3k 2419 779 3.0177759
## AAACATTGAGCTAC-1 pbmc3k 4903 1352 3.7935958
## AAACATTGATCAGC-1 pbmc3k 3147 1129 0.8897363
## AAACCGTGCTTCCG-1 pbmc3k 2639 960 1.7430845
## AAACCGTGTATGCG-1 pbmc3k 980 521 1.2244898
2. 过滤数据
可视化 QC 指标,并使用它们来过滤细胞
VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
plot1 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot1 + plot2
观察图片,选择一个过滤标准,把握不准的话,也可以使用下面标准过滤试试:
如果从上一步生成的图中看到有很多细胞偏离正常范围,也可以根据图来定范围
- 保留 nFeature_RNA大于200、小于2500的细胞
- 保留 percent.mt 小于 5 的细胞
# 这一步是过滤步骤
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
# 可以用上面的代码画图检查
3.标准化
我们使用一个全局缩放标准化方法“ LogNormalize”,该方法对基因 的表达以总表达量来标准化,将其乘以一个比例因子(默认为10,000) ,并对结果进行 log-transforms。
- 经过标准化了的表达值存储在 pbmc[[“ RNA”]]@data 中;
- 原始的 count 数据存储在 pbmc[[“ RNA”]]@count 中,NormalizeData函数利用这里的数据进行标准化
- 因此不用担心重复运行 NormalizeData 函数会导致重复标准化的问题
pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000)
# 上面的参数都是默认的,等同于下面:
# pbmc <- NormalizeData(pbmc)