单细胞降维聚类

单细胞数据最常用的聚类方法有两种,t-SNE和UMAP (Uniform Manifold Approximation and Projection (T-distributed Stochastic Neighbor Embedding),选择哪种方法进行可视化在最开始是非常纠结的,因为选择哪一个都不能说错,搜集了一下描述降维聚类的方法,看着看着就放弃了,但还是整理了一些比较有用的资源。

1. UMAP, tSNE和PCA聚类结果的比较

单细胞数据降维可视化最新工具UMAP的介绍_中国生物器材网

2. UMAP降维算法原理详解和应用示例_deephub的博客-优快云博客_umap

3.R语言实现UM

### 使用 R 语言进行单细胞数据聚类并实现细胞类型注释 #### 数据准备 为了执行有效的聚类分析,在开始之前需准备好必要的输入文件,这些通常包括 `genes.tsv` 文件(或称为 `features.tsv`)、`barcodes.tsv` 和 `matrix.mtx` 表达量矩阵[^2]。 #### 引入相关库 在 R 中操作时,Seurat 是一个广泛使用的包来处理单细胞 RNA 测序(scRNA-seq)的数据。安装 Seurat 可通过 CRAN 或 Bioconductor 安装最新版本: ```r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("Seurat") ``` 加载所需的软件包: ```r library(Seurat) library(ggplot2) ``` #### 创建 Seurat 对象与初步预处理 读取表达矩阵并将之转换成适合进一步分析的形式。这一步骤涉及创建一个新的 Seurat 对象,并对其进行基本的质量控制(QC),比如去除低质量的细胞和特征。 ```r # 假设已经存在名为 pbmc_small 的对象 pbmc <- CreateSeuratObject(counts = pbmc_small, project = "PBMC_3k", min.cells = 3, min.features = 200) # 执行 QC 步骤 pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-") VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3) FilterPlot(pbmc, idents = NULL, slot = "data") + NoLegend() pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nCount_RNA < 5000 & percent.mt < 10) ``` #### 数据标准化、缩放以及识别高度可变基因(HVGs) 接下来是对经过筛选后的数据集应用标准化方法,之后计算每个样本中每条基因的标准差得分,从而挑选出那些表现出显著变化水平的 HVGs 来用于后续分析。 ```r pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000) pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000) top10 <- head(x = VariableFeatures(object = pbmc), 10L) ``` #### PCA 主成分分析 (PCA) 利用主成分分析技术减少度数量的同时保留尽可能多的信息。此阶段会生成一组新的坐标轴——即所谓的“主成分”,它们能够捕捉原始变量间的最大方差。 ```r all.genes <- rownames(x = pbmc@assays$RNA@counts) pbmc <- ScaleData(pbmc, vars.to.regress = "percent.mt") pbmc <- RunPCA(pbmc, npcs = 30, verbose = FALSE) Print(x = pbmc[["pca"]], dims = 1:5, reduction.key = "") DimHeatmap(pbmc, dims = 1, cells.use = 500, balanced = TRUE, group.by = "stim") ElbowPlot(pbmc) ``` #### 构建邻接图与 Louvain 社区检测算法构建集群 基于 k-nearest neighbors(KNN) 图模型建立细胞之间的连接关系;随后采用改进版的 Louvain 方法来进行社区发现,以此定义不同的细胞群体。 ```r pbmc <- FindNeighbors(pbmc, dims = 1:10) pbmc <- FindClusters(pbmc, resolution = 0.5) table(Idents(object = pbmc)) DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) ``` #### 差异表达分析及标记基因查找 最后一步是找出区分各个簇之间差异性的标志物,这对于理解各组内的生物学特性至关重要。 ```r markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25) head(markers, n = 5) DefaultAssay(pbmc) <- "RNA" VlnPlot(pbmc, features = c("MS4A1", "CD79A", "MALAT1")) DoHeatmap(pbmc, features = c("MS4A1", "CD79A", "MALAT1")) ``` 对于未被成功鉴定出来的某些细胞群,可能是由于来自不同批次或者物种间存在的固有差异所造成的[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值