单细胞基本分析流程概述

2024-01-11 15:25:32 浏览数 (2)

上次直播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文件):

压缩文本矩阵可以用于存储单细胞测序数据的表达矩阵或元数据,它可以减少文件的大小和传输时间 。

0 人点赞