单细胞测序分析(五)降维聚类&数据整合

为什么需要降维?

单细胞转录组数据通常有数千个基因的表达值,这使得数据非常高维。降维分析的目的是将这些高维数据映射到一个低维空间中,以便:

  • 去除噪声:减少不必要的技术噪声,并保留重要的生物学信息。

  • 可视化:将数据投射到二维或三维空间中,便于观察不同细胞群之间的差异和模式。

  • 聚类和分类:在低维空间中,可以更好地进行细胞群的聚类或分类。

  • 加速计算:降维后,后续的计算任务(如聚类或拟合模型)可以在低维数据上完成,减少计算量。

三种常用降维方法

方法 类型 适用场景 优点 缺点
PCA 线性降维 初步降维,数据预处理 计算快速,易解释,适合大规模数据处理 只能捕捉线性关系,难以处理复杂非线性数据
t-SNE 非线性降维 数据可视化,局部结构分析 展示复杂的非线性结构,常用于细胞群的可视化 计算较慢,不适合大数据集,结果不稳定(非确定性)
UMAP 非线性降维 数据可视化,局部和全局结构 计算速度快,比 t-SNE 更稳定,能够保持全局和局部结构,适合大规模数据集 对参数较为敏感,结果受超参数调整影响,需要调参优化

实操

复制代码
# PCA 是基于 HVG
seob <- RunPCA(seob, assay = "SCT")
# s-SNE 不是基于表达矩阵做的,而是基于PCA结果
 seob <- RunTSNE(seob, assay = "SCT", dims = 1:30) 
# UMAP
seob <- RunUMAP(seob, assay = "SCT", dims = 1:30)

#可视化
p_pca <- DimPlot(seob, 
        reduction = "pca", # pca, umap, tsne
        group.by = "samples",
        label = F)

p_umap <- DimPlot(seob, 
        reduction = "umap", # pca, umap, tsne
        group.by = "samples",
        label = F)

p_pca + p_umap

数据整合去批次效应

方法原理

如果存在明显的批次效应,则需要去除。

参考:https://satijalab.org/seurat/articles/seurat5_integration

五种方法: CCAIntegration, RPCAIntegration, HarmonyIntegration, FastMNNIntegration, scVIIntegration

  • 数据规模:对于较大数据集,RPCAIntegration、HarmonyIntegration 和 FastMNNIntegration 更为合适。对于超大规模数据,scVIIntegration 表现优异。

  • 模态类型:CCAIntegration 和 scVIIntegration 更适合处理多模态数据,如 RNA 和 ATAC-seq。

  • 批次效应:HarmonyIntegration 和 FastMNNIntegration 是处理批次效应的好选择。

  • 计算资源:如果计算资源有限,RPCAIntegration 是一个高效的选择,而 scVIIntegration 适合在有 GPU 资源时使用。

FastMNNIntegration 与 SCTransform 不兼容,需要用传统标准化方法 scVIIntegration 需要GPU 加速。

实操

复制代码
seob_harmony <- IntegrateLayers(object = seob, 
                        normalization.method = "SCT",
                        orig.reduction = "pca", 
                        method = HarmonyIntegration, 
                        new.reduction = "integrated.harmony")

#重新降维
seob_harmony <- RunUMAP(seob_harmony, assay = "SCT", dims = 1:30,
                reduction = "integrated.harmony") 

DimPlot(seob_harmony, 
        reduction = "umap", 
        group.by = "samples",
        label = F)

tips:是否要进行批次整合,根据项目的具体情况。有时候整合后会丢掉真实的样本差异。

聚类分析

FindNeighbors 函数用于计算数据集中每个细胞的 k 个最近邻居,并可选构建共享近邻图(SNN),通过计算每个细胞和其 k 个最近邻居之间的邻域重叠(Jaccard 指数)来实现。近邻图和共享近邻图在后续的聚类分析中用于确定细胞之间的相似性。

复制代码
seob <- FindNeighbors(seob, reduction = "pca", dims = 1:20)
  • k.param:用于最近邻居算法的 k 值,默认为 20,表示计算每个细胞的 20 个最近邻居。

  • nn.method:用于寻找最近邻居的算法,选项包括 rann 和 annoy。annoy 是一种近似最近邻居算法,适合大规模数据集。

  • dims:用于构建近邻图的降维结果的维度,通常是 PCA 结果的前几个主成分。

FindClusters 函数用于基于共享近邻图的模块性优化算法(如 Louvain 或 Leiden 算法)来识别细胞簇。它首先计算每个细胞的 k 近邻,并基于近邻图构建 SNN 图,随后通过优化模块化函数来划分细胞簇。

复制代码
seob <- FindClusters(seob,
                     resolution = 0.4, # 值越大,cluster 越多
                     random.seed = 1) 


DimPlot(seob, 
        reduction = "umap", 
        group.by  = c("seurat_clusters"),
        label = T)

resolution:控制聚类的分辨率。分辨率值越高,得到的细胞簇越多。

algorithm:用于模块化优化的算法,选项包括 Louvain(默认)和 Leiden(更适合大数据集)。Leiden 需要安装 leidenalg Python 包。


数信院服务器助力科研

1.生信全领域答疑:从入门到精通,全程护航。无论是数据分析,还是算法应用,数信院生信服务器提供全方位的答疑支持。遇到任何问题,我们的硕博团队随时为您提供帮助,确保您的研究进展无阻。

2.技术无限制支持:软件安装、报错解决"一站式"服务。我们为用户提供技术支持,协助进行软件安装及配置,同时,解决在使用过程中遇到的报错和技术难题。无论是常见的生信工具,还是特殊需求的定制软件,我们都能为您提供有效解决方案。

3.免费AI服务:智能算力触手可及。作为科研创新的一部分,我们还为用户提供免费的AI技术服务,帮助您在数据分析、预测建模等方面提升研究效率,为您的科研成果加速赋能。

4.海量实用脚本资源:即拿即用,效率翻倍。为了进一步提升用户的工作效率,我们提供了大量实用的生物信息学脚本,涵盖数据处理、分析流程、可视化等多个领域。

5.自采购硬件。全自采购裸金属服务器,部署于华东TOP 50IDC 机房,省级骨干专线。

相关推荐
Freak嵌入式2 分钟前
MicroPython LVGL基础知识和概念:时序与动态效果
开发语言·python·github·php·gui·lvgl·micropython
minji...35 分钟前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
zhangzeyuaaa36 分钟前
Python 中的 Map 和 Reduce 详解
开发语言·python
虚伪的空想家43 分钟前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun341 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
七夜zippoe1 小时前
Java技术未来展望:GraalVM、Quarkus、Helidon等新趋势探讨
java·开发语言·python·quarkus·graaivm·helidon
草莓熊Lotso1 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu1 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-1 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
江畔何人初1 小时前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip