首页 > 开源 > Squidpy:空间单细胞分析的Python利器

Squidpy:空间单细胞分析的Python利器

本站原创 2026-09-04 15:01 2 阅读 查看原文

Squidpy是scverse生态下专为空间单细胞组学数据打造的Python分析框架,基于scanpy与anndata构建,支持Visium、Slide-seq、Xenium等主流空间组学技术,提供空间邻域图构建、空间统计量计算、图像特征提取与可视化等完整工具链,是连接单细胞转录组与组织影像的桥梁。

适用人群:从事空间转录组学、单细胞基因组学研究的生物信息学研究者与计算生物学从业者;需要进行组织切片多模态数据分析的病理学家与生物医学工程师;构建空间组学分析流程或开发下游可视化工具的Python开发者与数据科学家。

适用场景:Visium、Xenium、MERFISH等空间组学数据的预处理、邻域富集分析、空间自相关统计与细胞通讯推断;高分辨率组织显微镜图像的特征提取、分割与可视化;面向多模态空间数据的交互式探索、报告生成与下游机器学习建模。

推荐理由:Squidpy填补了Python生态在空间组学分析工具上的关键空白,以scanpy风格的熟悉API降低了学习成本,搭配napari-spatialdata实现交互式可视化,是任何空间组学研究团队都值得纳入工具箱的核心开源项目。

项目定位与背景

随着单细胞测序技术日益成熟,研究者已经不满足于知道"组织里有哪些细胞",更迫切地想回答"这些细胞在空间上如何排列、彼此如何对话"。空间转录组学正是回答这一问题的关键技术,从10x Visium到Xenium、MERFISH、Slide-seq等平台层出不穷,数据维度也从单纯的转录组扩展到组织学影像。然而,长期以来Python生态中能够端到端处理这类空间多模态数据的工具相对匮乏,研究者往往要在多个分散的库之间手动拼接流程。

Squidpy正是为解决这一困境而生,由 Theis 实验室等机构主导开发,隶属于广受认可的 scverse 联盟。该项目基于 scanpy 与 anndata 这两个单细胞分析领域事实标准的库构建,确保了 API 风格的一致性与生态的互通性,使得熟悉 scanpy 的用户可以几乎零成本过渡到空间数据分析。从 595 颗 Star 与 119 次 Fork 的社区活跃度,以及持续维护的 CI/CD 流水线来看,Squidpy 已成为 Python 空间组学领域具有代表性的成熟项目。

核心功能与技术架构

Squidpy 的功能设计围绕空间数据的三大核心维度展开:空间邻域图、空间统计量与图像特征化。

在空间邻域图层面,Squidpy 提供了从坐标直接构建空间邻居图的统一接口。无论是 Visium 的规则点阵、Slide-seq 的不规则坐标,还是 Xenium 这类单细胞分辨率的亚细胞级定位数据,都能通过一致的 API 构建邻域关系,并支持基于距离、基于 K 近邻等多种图构建策略。这种统一抽象让跨平台分析变得轻松,研究者可以将同一套下游分析流程应用到来自不同技术的数据上。

在空间统计层面,Squidpy 内置了丰富的空间分析算法,包括邻域富集分析(neighborhood enrichment)、共现性分析(co-occurrence)、Moran's I 空间相关性统计、以及 Ripley 的 L 函数等空间点模式分析方法。这些工具让研究者能够系统地检验空间假设,例如某类细胞是否倾向于聚集、某基因的表达是否具有空间自相关性,从而挖掘出仅凭转录组数据无法发现的空间组织规律。

在图像处理层面,Squidpy 通过与 scikit-image 的深度集成,提供了组织显微镜图像的存储、特征化与分割能力。图像特征(如纹理、强度、梯度信息)可以直接关联到空间位点,作为额外的注释用于下游分析或机器学习任务。这种将组学数据与组织学影像在同一框架内联合分析的能力,是 Squidpy 区别于纯组学工具的关键优势。

创新点与亮点

Squidpy 的核心创新在于它的生态整合策略。它没有选择重新发明轮子,而是站在 scanpy/anndata 的肩膀上,将空间维度作为这些已有结构的扩展。这种设计哲学带来了多重好处:用户复用已有的 AnnData 对象、熟悉 Scanpy 的可视化函数、无需迁移数据格式。同时,scverse 生态的协同效应使得 Squidpy 能够与 scvi-tools、cellrank、muon 等姊妹工具无缝协作,构建更复杂的分析流程。

另一个亮点是它对交互式可视化的重视。通过与 napari-spatialdata 的深度集成(取代了此前的内置 napari 插件),用户可以在高分辨率组织图像上交互式地探索细胞注释、基因表达与空间邻域关系。这种"所见即所得"的探索体验,对于需要在显微镜图像上反复验证生物学假设的研究者而言价值巨大。

项目对 Python 3.12 及以上版本的支持、对 conda-forge 的良好发布、对 WSL 环境下 Windows 用户友好等细节,也体现了工程化层面的成熟度。

与同类项目对比

在空间组学分析工具中,R 生态的 Giotto、BayesSpace、Seurat 等已较为成熟,而 Python 生态中 Squidpy 几乎是同类工具中最早建立完整生态位的项目。相比 R 工具,Squidpy 的优势在于 Python 的现代工程实践、良好的类型提示、统一的 AnnData 数据结构,以及与 scikit-learn、PyTorch 等机器学习生态的天然衔接。对于希望将空间组学分析与深度学习、几何深度学习等前沿方法结合的研究团队,Squidpy 是更为顺手的起点。

需要客观指出的是,Squidpy 在单细胞分辨率的空间分析方面,相比一些针对特定平台定制的解决方案,灵活性仍有提升空间;同时由于依赖较重,完整的 napari 交互式体验对新手而言环境配置门槛不低。但其核心库本身安装简洁(pip install squidpy 一行即可),日常分析任务完全够用。

上手指南与快速开始

对于希望快速上手的开发者,建议遵循以下路径:首先通过 pip 或 conda 安装 squidpy,使用官方教程中提供的 Visium 或 Slide-seq 示例数据来熟悉 AnnData 对象的空间扩展字段;接着尝试 sq.gr.spatial_neighbors 构建邻域图,并用 sq.gr.nhood_enrichment、sq.gr.co_occurrence 计算空间统计量;最后结合 scanpy 的 pl.spatial 函数进行静态可视化,或配置 napari-spatialdata 进行交互式探索。整个学习曲线对有单细胞分析基础的研究者非常友好。

总结与展望

Squidpy 作为 scverse 生态中空间组学方向的核心工具,已经在不到几年时间里成长为空间单细胞分析领域 Python 生态的事实标准之一。它通过统一多平台数据接口、提供丰富的空间统计算法、深度整合影像分析能力,为研究者打开了一扇从单细胞到组织的窗口。对于任何涉足空间组学的开发者与生物学家,Squidpy 都值得纳入核心工具链。可以预见,随着空间组学技术持续向更高分辨率、更大多样本演进,Squidpy 及其周边生态将在多模态整合、AI 辅助的空间数据分析等方向继续扮演关键角色。

项目信息

项目名称 scverse/squidpy
编程语言 Python
Star 数 595
Fork 数 119
主题标签 data-visualization, image-analysis, scverse, single-cell-genomics, single-cell-rna-seq, spatial-analysis, spatial-transcriptomics, squidpy

查看 GitHub 项目 →