上次直播Seurat对象内部结构解析,给大家分享一下step1—— 单细胞数据不同格式,数据读取方法创建Seurat对象,以及seurat对象内容结构简介。
普通单细胞转录组的降维聚类分群,主要是集中于常规分析流程:
- step1: 创建对象
- step2: 质量控制
- step3: 表达量的标准化和归一化
- step4: 去除干扰因素(多个样本整合)
- step5: 判断重要的基因
- step6: 多种降维算法
- step7: 可视化降维结果
- step8: 多种聚类算法
- step9: 聚类后找每个细胞亚群的标志基因
- step10: 继续分类
今天想给大家分享一下单细胞分析流程概述以及V5版seurat读取不同格式单细胞数据
单细胞分析流程概述
创建seurat对象数据质控
代码语言:javascript复制#创建seurat对象
pbmc <- CreateSeuratObject(counts = pbmc.data,
project = "pbmc3k",
min.cells = 3, min.features = 200)
#数据质控
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
# Visualize QC metrics as a violin plot
VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
pbmc[[c("nFeature_RNA", "nCount_RNA", "percent.mt")]]
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
检测基因数:低质量的细胞或空液滴通常只有很少的基因;细胞双胞体或多胞体可能表现出异常高的基因数
检测UMI数 :细胞双胞体或多胞体可能表现出异常高的基因count数
线粒体基因占比:低质量/垂死的细胞常常表现出大量的线粒体污染;代谢旺盛的细胞中线粒体数目多,如心肌(50%),小肠,肝脏(20%)
数据标准化
代码语言:javascript复制pbmc <- NormalizeData(object = pbmc,normalization.method = "LogNormalize")
排除技术误差,让测序深度和文库大小不同的细胞的基因表达量具有可比性,进而更好地呈现基因水平的差异。
鉴定高可变基因和归一化
代码语言:javascript复制#Identification of highly variable features
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)
#Scaling the data
all.genes <- rownames(pbmc)
pbmc <- ScaleData(pbmc, features = all.genes)
高变基因筛选:筛选在某些细胞中高度表达,而在其他细胞中低表达的基因
scale归一化:将每个基因在所有细胞中的均值变为0,方差标为1
PCA线性降维
代码语言:javascript复制pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc))
#确定PCA数据
ElbowPlot(pbmc)
细胞聚类和可视化
代码语言:javascript复制#Cluster the cells
pbmc <- FindNeighbors(pbmc, dims = 1:10)
pbmc <- FindClusters(pbmc, resolution = 0.5)
#Run non-linear dimensional reduction (UMAP/tSNE)
pbmc <- RunUMAP(pbmc, dims = 1:10)
首先基于PCA空间中的欧几里得度量构建一个KNN图,然后基于局部邻域中的共享重叠(Jaccard 相似性)来精确任意两个细胞之间的边缘权重。
使用Louvain 算法进行细胞群聚类优化,再使用UMAP或者t-SNE进行可视化
寻找Marker基因对亚群命名
代码语言:javascript复制# find all markers of cluster 2
cluster2.markers <- FindMarkers(pbmc, ident.1 = 2)
head(cluster2.markers, n = 5)
# find all markers distinguishing cluster 5 from clusters 0 and 3
cluster5.markers <- FindMarkers(pbmc, ident.1 = 5, ident.2 = c(0, 3))
head(cluster5.markers, n = 5)
# find markers for every cluster compared to all remaining cells, report only the positive
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE)
#Assigning cell type identity to clusters
new.cluster.ids <- c("Naive CD4 T", "CD14 Mono", "Memory CD4 T", "B", "CD8 T", "FCGR3A Mono",
"NK", "DC", "Platelet")
names(new.cluster.ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc, new.cluster.ids)
DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) NoLegend()
V5版seurat读取不同格式单细胞数据
10x Genomics格式:
barcodes.tsv 、features/genes.tsv和matrix.mtx文件 是10X Genomics单细胞转录组测序数据的标准文件格式。这些文件通常存储在一个目录中,可以使用Read10X函数从R语言中读取。
h5格式:
用于存储大规模数据的二进制文件格式,它可以包含多种数据类型,如矩阵、表格、图像等。
压缩文本矩阵(TXT或CSV的GZ文件):
压缩文本矩阵可以用于存储单细胞测序数据的表达矩阵或元数据,它可以减少文件的大小和传输时间 。