单细胞03.数据构建,Seurat对象那些事儿!
关于生信学习,我们的建议是纯生信 → R 语言 → 单细胞、空间组及多组学三步走策略。费曼学习法可能是生信入门的好方法,但是真正提高还是要靠在课题进展中不断地实践!本次单细胞 21天教程以《癌生物学》《肿瘤免疫12讲2.0》为基础,并结合经典前沿综述和单细胞文章为基础,手把手展示单细胞数据分析流程。

第一周内容安排
单细胞03.数据构建,Seurat对象那些事儿!
单细胞04.数据降维,PCA+UMAP或TSNE!
单细胞05.细胞聚类,单细胞分群那些事儿!
单细胞06.数据整合,单细胞数据批次处理!
单细胞07.分群鉴定,细胞亚群注释那些事儿!
单细胞03.数据构建,Seurat对象那些事儿!
学习内容和流程
1.阅读推文。熟悉Seurat数据结构,下载和读取感兴趣的单细胞数据集。
2.观看视频。根据视频解读,重点掌握单细胞Seurat数据对象相关内容。
3.发朋友圈。继续打卡,将推文转发至朋友圈,一句话总结学习感受或收获。

在Seurat单细胞数据分析工具中,数据对象是核心结构,用于存储和处理单细胞RNA测序数据。在数据质控,降维聚类等过程中,我们需要对数据进行操作,因此需要了解Seurat数据对象的结构和含义。以下是Seurat对象的主要组成部分及其功能介绍。

1. 核心数据结构。Seurat对象是一个R语言中的S4对象,主要包含以下部分:
① Assays,用于存储基因表达矩阵(如RNA、ATAC等)。
常见内容包括RNA assay:存储原始或归一化的基因表达矩阵;SCT assay:存储经过SCTransform归一化后的表达矩阵;ATAC assay:存储染色质可及性数据(多组学分析)等。
关键数据包括counts:原始UMI计数矩阵(稀疏矩阵格式);data:归一化后表达矩阵;scale.data:标准化后的表达矩阵(用于降维和聚类)。
② Meta.data,存储每个细胞的元数据(metadata),用于质控、注释和可视化。
内容包括nFeature_RNA:每个细胞检测到的基因数;nCount_RNA:每个细胞总UMI数;percent.mt:线粒体基因百分比;seurat_clusters:细胞聚类的结果;orig.ident:样本来源标识(如不同样本或批次)。
③ Graphs,存储细胞间的相似性图(如KNN图)。
内容包括RNA_nn:基于RNA数据的最近邻图;RNA_snn:基于RNA数据的共享最近邻图(用于聚类)。
④ Reductions,用于存储降维的结果,包括PCA、UMAP降维和t-SNE降维的结果。
⑤ Misc,用于存储其他辅助信息,如参数设置、分析日志等。
2. 创建Seurat对象、数据操作、数据访问和数据可视化
##加载Seurat包,读取数据
library(Seurat)
pbmc.data = Read10X(data.dir = "F:/GSE176029/Seurat/filtered_gene_bc_matrices/hg19/")
head(pbmc.data) #以稀松矩阵存储
## 1.创建Seurat对象
seurat_obj <- CreateSeuratObject
(counts = pbmc.data, # counts:原始UMI计数矩阵(行是基因,列是细胞)
project = "pbmc3k", # project:项目名称
min.cells = 3, # min.cells:基因至少在多少个细胞中表达才保留
min.features = 200) # min.features:细胞至少检测到多少个基因才保留
## 2.数据操作
# 计算线粒体基因占比
seurat_obj[["percent.mt"]] <- PercentageFeatureSet(seurat_obj, pattern = "^MT-") # 过滤低质量细胞
seurat_obj <- subset(seurat_obj, subset = nFeature_RNA > 200 & percent.mt < 10)
# 归一化
seurat_obj <- NormalizeData(seurat_obj, normalization.method = "LogNormalize")
# 特征选择
seurat_obj <- FindVariableFeatures(seurat_obj, selection.method = "vst")
# 降维
seurat_obj <- ScaleData(seurat_obj)
seurat_obj <- RunPCA(seurat_obj)
seurat_obj <- RunUMAP(seurat_obj, dims = 1:10)
seurat_obj <- RunTSNE(seurat_obj, dims = 1:10)
# 聚类
seurat_obj <- FindNeighbors(seurat_obj, dims = 1:10)
seurat_obj <- FindClusters(seurat_obj, resolution = 0.5)
## 3.数据访问
# 访问表达矩阵,原始计数矩阵
counts_matrix <- GetAssayData(seurat_obj, layer = "counts")
normalized_matrix <- GetAssayData(seurat_obj, layer = "data") # 归一化矩阵
# 访问元数据
metadata <- seurat_obj@meta.data
pca_embeddings <- Embeddings(seurat_obj, reduction = "pca") # 访问降维结果
umap_embeddings <- Embeddings(seurat_obj, reduction = "umap")
tsne_embeddings <- Embeddings(seurat_obj, reduction = "tsne")
## 4.可视化
# 质控图
VlnPlot(seurat_obj, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"))
# 降维图
DimPlot(seurat_obj, reduction = "umap", group.by ="seurat_clusters")
DimPlot(seurat_obj, reduction = "tsne", group.by = "seurat_clusters")
# 基因表达图
FeaturePlot(seurat_obj, features = c("PTPRC", "GAPDH"))
Seurat对象是单细胞数据分析的核心,而以barcodes.tsv、genes.tsv、matrix.mtx三个上游输出文件,是最常规的单细胞数据读取形式。通过整合表达矩阵、元数据和降维聚类的信息,提供了灵活且强大的分析框架。我们必须掌握其结构和操作方法。
3. 单细胞数据浮复现

2022年4月,BRAIN杂志发表题为Single-cell sequencing of human midbrain reveals glial activation and a Parkinson-specific neuronal state的研究论文。该项研究旨在通过单细胞测序来表征脑干所有细胞类型对帕金森病病理的贡献,并利用最新的全基因组关联分析(GWAS)评估细胞类型特异性对帕金森病的风险。

文章的方法部分提供了单细胞数据处理的参数,简单罗列如下:We retained barcodes with 1500 UMIs and 1000 genes, as well as ,10% of mitochondrial-encoded (mtDNA) and ,10% of ribosomal gene counts...which was then clustered using the Louvain algorithm (resolution = 1.5) implemented in the Seurat FindClusters function. 请大家尝试复现。
最后编辑于 04-07 · 浏览 901