单细胞RNA测序(scRNA-seq)基础可查内容看以下文章:
单细胞RNA测序(scRNA-seq)工作流程入门
单细胞RNA测序(scRNA-seq)细胞分离与扩增
单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分
单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控
单细胞RNA测序(scRNA-seq)构建人类参考基因组注释
单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合
Seurat分析流程入门
1. 数据与R包准备
以下代码在RStudio中实现。
1.1 PMBC数据下载
下载2700个10X单细胞-外周血单核细胞(PBMC)数据集。
# Seurat_1.R
################### 1. 数据获取及读取 ###################
# 切换至工作目录
setwd("F:/scRNA-seq/Seurat4.0")
# 下载PMBC数据
download.file("https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz",
destfile = "pbmc3k_filtered_gene_bc_matrices.tar.gz")
# 解压
untar(tarfile = "pbmc3k_filtered_gene_bc_matrices.tar.gz", exdir = "./")
# 查看当前目录文件
dir()
# [1] "filtered_gene_bc_matrices" "pbmc3k_filtered_gene_bc_matrices.tar.gz"
# [3] "Seurat_1.R"
# 查看解压目录文件
dir("./filtered_gene_bc_matrices/hg19")
# [1] "barcodes.tsv" "genes.tsv" "matrix.mtx"
1.2 分析R包安装
# 选择清华镜像安装
options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("BiocManager")
BiocManager::install("dplyr")
BiocManager::install("Seurat")
BiocManager::install("patchwork")
BiocManager::install("ggplot2")
2. 数据预处理
2.1 构建单细胞Seurat对象
Read10X函数读取,返回独特的分子识别(UMI)计数矩阵。
矩阵中的行值表示每个功能(即基因); 列值表示在每个细胞中检测到的分子数量。
################### 2. 数据预处理 ###################
library(dplyr)
library(Seurat)
library(patchwork)
# 读取当前目录 2700个10X单细胞-外周血单核细胞(PBMC)数据集
pbmc.data <- Read10X(data.dir = "./filtered_gene_bc_matrices/hg19")
# 查看部分数据
pbmc.data[1:5, 1:3]
# 5 x 3 sparse Matrix of class "dgCMatrix"
# AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1
# MIR1302-10 . . .
# FAM138A . . .
# OR4F5 . . .
# RP11-34P13.7 . . .
# RP11-34P13.8 . . .
# 创建Seurat对象
# 每个基因至少在3个细胞中表达
# 每个细胞至少检测到200个基因
pbmc.obj <- CreateSeuratObject(counts = pbmc.data,
project = "pbmc3k",
min.cell = 3,
min.features = 200)
pbmc.obj
# An object of class Seurat
# 13714 features across 2700 samples within 1 assay
# Active assay: RNA (13714 features, 0 variable features)
# 1 layer present: counts
# 细胞名称重命名
pbmc.obj <- RenameCells(pbmc.obj, add.cell.id = "PBMC")
2.2 单细胞数据质控
为分析得到高质量和可靠的单细胞数据,保证后续分析结果的准确度,通常会设置以下QC指标过滤细胞:
常见QC指标:
在每个细胞中检测到的基因数量
低质量细胞或空液滴通常只有很少的基因; 细胞双倍或多胞可能表现出异常高的基因计数。细胞内检测到的分子总数(与独特的基因密切相关)
细胞中的线粒体基因组的百分比
低质量/死细胞经常表现出线粒体污染;使用PercentageFeatureSet()函数计算线粒体 QC 指标。
2.2.1 通过细胞counts数和feature数的分布确定过滤条件阈值
head(pbmc.obj@meta.data)
# orig.ident nCount_RNA nFeature_RNA percent.mt
# PBMC_AAACATACAACCAC-1 pbmc3k 2419 779 3.0177759
# PBMC_AAACATTGAGCTAC-1 pbmc3k 4903 1352 3.7935958
# PBMC_AAACATTGATCAGC-1 pbmc3k 3147 1129 0.8897363
# PBMC_AAACCGTGCTTCCG-1 pbmc3k 2639 960 1.7430845
# PBMC_AAACCGTGTATGCG-1 pbmc3k 980 521 1.2244898
# PBMC_AAACGCACTGGTAC-1 pbmc3k 2163 781 1.6643551
# 细胞counts数和feature数的分布
VlnPlot(pbmc.obj, features = c("nCount_RNA","nFeature_RNA"))
2.2.2 细胞线粒体基因和和核糖体基因含量获取
# 获取基因名以MT-开头的线粒体基因
pbmc.obj[["percent.mt"]] <- PercentageFeatureSet(pbmc.obj,
pattern = "^MT-")
head(pbmc.obj@meta.data, 5)
# orig.ident nCount_RNA nFeature_RNA percent.mt
# PBMC_AA