用途
Scanpy 是一个建立在 AnnData 数据结构之上的可扩展 Python 工具包,用于分析单细胞 RNA 测序数据。适用于完整的单细胞分析工作流,包括:读取 .h5ad/10X/CSV 数据、进行质量控制、归一化、降维、聚类、标记基因识别、可视化以及轨迹分析。当需要处理 scRNA-seq 数据集、生成 UMAP/t-SNE/PCA 可视化、注释细胞类型、进行轨迹推断或伪时间分析、创建出版物级图表时,可以使用该技能。
主要能力
- 数据加载与结构:支持从 10X Genomics(
sc.read_10x_mtx、sc.read_10x_h5)、h5ad(sc.read_h5ad)和 CSV(sc.read_csv)加载数据。核心对象为 AnnData,包含adata.X(表达矩阵)、adata.obs(细胞元数据)、adata.var(基因元数据)、adata.uns(非结构化注释)、adata.obsm(多维细胞数据,如 PCA、UMAP)和adata.raw(原始数据备份)。 - 质量控制:识别线粒体基因,计算 QC 指标(
sc.pp.calculate_qc_metrics),通过小提琴图可视化,并依据每细胞最小基因数、每基因最小细胞数、线粒体百分比阈值过滤低质量细胞和基因。 - 归一化与预处理:将每个细胞的计数归一化到目标总和(默认 1e4),进行对数变换,保存原始计数,识别高变基因,回归去除不需要的变化,并进行数据缩放。
- 降维:使用 PCA 降维并检查方差比例图,构建邻域图,生成 UMAP 或 t-SNE 用于可视化。
- 聚类:支持 Leiden 聚类,可尝试多个分辨率以找到最佳粒度。
- 标记基因识别:使用 Wilcoxon 方法等方法为每个聚类寻找标记基因,并以排名图、热图、点图等方式可视化,结果可导出为 DataFrame。
- 细胞类型注释:定义已知细胞类型的标记基因,通过 UMAP、点图可视化,并根据聚类映射手动注释细胞类型。
- 轨迹推断:支持 PAGA 和扩散伪时间(DPT)分析。
- 差异表达与基因集评分:支持在细胞类型内比较不同条件,以及为细胞进行基因集评分。
- 批次校正:提供 ComBat 批次校正;也可使用 Harmony 或 scVI(需单独安装)。
- 可视化与保存:可生成出版物质量图表,并保存处理后的数据及元数据。
使用方式
基本流程为导入 scanpy 并配置设置,加载数据后按标准工作流依次执行:质量控制(sc.pp.calculate_qc_metrics、sc.pp.filter_cells、sc.pp.filter_genes)、归一化(sc.pp.normalize_total、sc.pp.log1p)、高变基因选择(sc.pp.highly_variable_genes)、降维(sc.tl.pca、sc.pp.neighbors、sc.tl.umap 或 sc.tl.tsne)、聚类(sc.tl.leiden)、标记基因识别(sc.tl.rank_genes_groups)、细胞类型注释以及保存结果(adata.write、adata.obs.to_csv)。技能还提供了自动化 QC 脚本:
python scripts/qc_analysis.py input_file.h5ad --output filtered.h5ad
以及分析模板:
cp assets/analysis_template.py my_analysis.py
python my_analysis.py
可参考的文档包括标准工作流指南、API 参考和绘图指南。
适用场景
- 分析单细胞 RNA-seq 数据(.h5ad、10X、CSV 格式)。
- 对 scRNA-seq 数据集进行质量控制。
- 创建 UMAP、t-SNE 或 PCA 可视化。
- 识别细胞聚类并寻找标记基因。
- 基于基因表达注释细胞类型。
- 进行轨迹推断或伪时间分析。
- 生成出版物质量单细胞图表。
限制与注意事项
- 需在过滤基因前始终保存原始计数(
adata.raw = adata)。 - 应仔细检查 QC 图,根据数据集质量调整阈值。
- 推荐使用 Leiden 而非 Louvain 聚类。
- 应尝试多种聚类分辨率以找到最佳粒度。
- 细胞类型注释需使用多个标记基因进行验证。
- 基因表达图使用
use_raw=True以显示原始计数。 - 检查 PCA 方差比例图以确定最佳主成分数量。
- 长工作流需保存中间结果。
- 关于收费、价格、支持平台等更多信息,暂未提供。