技能scanpy
S

scanpy

标准的单细胞RNA测序(scRNA-seq)分析流程。用于质控(QC)、归一化、降维(PCA/UMAP/t-SNE)、聚类、差异表达、可视化,以及将对R友好的单细胞数据格式(如 Seurat 或 SingleCellExperiment 的 RDS 文件)转换为适用于 Scanpy 的 h5ad。非常适合采用已建立的工作流进行探索性 scRNA-seq 分析。对于深度学习模型使用 scvi-tools;对于数据格式相关问题使用 anndata。

Scanpy - Python 单细胞 RNA-seq 分析标准工具

技能概述

Scanpy 是基于 Python 的可扩展单细胞转录组分析工具包,提供从质量控制到细胞类型注释的完整分析流程,支持主流数据格式和 R 语言互转。

适用场景

1. 单细胞 RNA-seq 数据的完整分析流程

适用于 10X Genomics、CSV、h5ad 等格式的单细胞转录组数据,涵盖质量控制、标准化、高变基因识别、降维分析(PCA/UMAP/t-SNE)、Leiden 聚类、标记基因识别和细胞类型注释。提供一键式端到端分析脚本,也支持分步骤迭代分析,适合从初学者到高级研究人员的各种需求。

2. R 语言单细胞数据格式转换与互操作

专门处理 Seurat、SingleCellExperiment 等 R 生态的单细胞对象,将其转换为 Scanpy 原生的 h5ad 格式,保留原始计数、元数据和基因标识符。支持跨平台(macOS、Linux、Windows)的转换工作流,让研究人员能够充分利用 Python 生态系统的数据分析工具,同时保持与 R 语言生物信息学社区的兼容性。

3. 发表级单细胞可视化和图表制作

生成符合期刊发表标准的单细胞图表,包括 UMAP/t-SNE 降维图、质量控制的 violin 图、标记基因的热图和点图、轨迹分析图等。支持高分辨率 PDF 输出、自定义配色方案和多面板复合图表。内置绘图脚本自动处理图形参数设置,确保科研论文中的图表质量和一致性。

核心功能

1. 完整的 CLI 脚本工具包

提供 15+ 即用的命令行脚本,覆盖单细胞分析的每个环节:run_pipeline.py 一键执行完整流程,qc_analysis.py 自动化质量控制,reduce_dimensions.py 降维分析,cluster.py 多分辨率聚类,find_markers.py 标记基因识别。所有脚本采用 .h5ad 输入输出格式,支持管道式串联使用,每个脚本都包含详细的帮助文档和参数说明,大幅降低编写代码的工作量。

2. 质量控制与数据预处理

自动识别线粒体基因、计算质量控制指标、生成可视化诊断图,支持基于阈值和分布的细胞过滤。集成的 Scrublet 双胞胎检测功能可在标准化前识别并移除双细胞。提供 normalize_total 标准化、log1p 对数转换、高变基因识别、回归 unwanted variation 和数据缩放等预处理功能,所有操作都保留原始计数层(counts layer)和原始数据备份(adata.raw)。

3. 多样化的降维、聚类与可视化分析

支持 PCA 及方差比例分析、邻域图构建、UMAP 和 t-SNE 非线性降维、Leiden/Louvain 聚类算法(支持多分辨率并行)。提供 PAGA 图抽象和扩散伪时间等轨迹推断方法。可视化方面包含完整的 scanpy 绘图 API:UMAP 着色图、质量指标小提琴图、标记基因热图和点图、rank_genes_groups 结果可视化等,所有图表支持发表级 DPI 和自动保存。

常见问题

Scanpy 适合什么类型的单细胞数据分析?和 Seurat 相比有什么优势?

Scanpy 专门用于单细胞 RNA-seq(scRNA-seq)数据的探索性分析,特别适合基于已建立工作流程的标准化分析。相比 Seurat(R 语言),Scanpy 的主要优势在于:与 Python 数据科学生态(NumPy、Pandas、Scikit-learn)的无缝集成、更适合大规模数据的处理能力、支持 Dask 进行内存外计算、以及丰富的 CLI 脚本工具包。如果你的团队更熟悉 Python、需要与其他 Python 工具链集成、或者处理超大规模数据集,Scanpy 是更好的选择。对于深度学习模型和概率推断,建议使用专门的 scvi-tools 工具。

如何开始使用 Scanpy?对 Python 版本和系统配置有什么要求?

安装非常简单:uv pip install "scanpy[leiden]" 即可获得完整功能,包括 Leiden 聚类所需的依赖。Scanpy 1.12.x 版本要求 Python 3.12 或更高版本,以及 anndata ≥0.10。对于大型数据集,可以额外安装 Dask 支持内存外计算。系统配置方面,普通单细胞数据集(数万细胞)在 8GB 内存即可运行,超大数据集建议 16GB+。技能包提供了完整的分析模板(assets/analysis_template.py)和分步脚本,建议从 run_pipeline.py 一键脚本开始,然后根据需要逐步定制。

如何将现有的 Seurat 或 SingleCellExperiment R 数据转换为 Scanpy 可用格式?

不要尝试在 Python 中直接解析 Seurat 的 .rds 文件。正确流程是:在 R 环境中使用 Bioconductor 的 zellkonverter 或 seurat-disk 包进行转换,保留原始计数、细胞元数据和基因标识符。技能包含详细的 references/r_interop.md 指导文档,涵盖 macOS、Linux、Windows 上的 R 安装、CRAN/Bioconductor 包安装、转换脚本编写和验证。转换后得到 .h5ad 文件即可直接被 Scanpy 所有脚本读取,实现 R 和 Python 分析流程的无缝对接。