用途
Scanpy 是一个基于 AnnData 的可扩展 Python 单细胞 RNA-seq 数据分析工具。该技能适用于完整的单细胞分析工作流,包括质量控制、归一化、降维、聚类、标记基因识别、可视化以及轨迹分析。
适用场景包括:分析单细胞 RNA-seq 数据(.h5ad、10X、CSV 格式);对 scRNA-seq 数据集进行质量控制;创建 UMAP、t-SNE 或 PCA 可视化;识别细胞聚类并寻找标记基因;基于基因表达注释细胞类型;进行轨迹推断或伪时间分析;生成可发表级质量的单细胞图表。
主要能力
- 数据读取:支持从 10X Genomics(read_10x_mtx、read_10x_h5)、h5ad(AnnData 格式)和 CSV 读取数据。
- AnnData 结构:adata.X(表达矩阵,细胞×基因)、adata.obs(细胞元数据)、adata.var(基因元数据)、adata.uns(非结构化注释)、adata.obsm(多维细胞数据,如 PCA、UMAP)、adata.raw(原始数据备份)。
- 质量控制:识别线粒体基因、计算 QC 指标、可视化 QC 指标、过滤细胞与基因。
- 归一化与预处理:normalize_total、log1p、保存原始计数、识别高变基因(HVG)、回归去除不必要变异、缩放。
- 降维:PCA(含肘部图检查)、邻接图计算、UMAP、t-SNE。
- 聚类:Leiden 聚类(推荐)、Louvain,可尝试多个分辨率寻找最优粒度。
- 标记基因识别:rank_genes_groups(wilcoxon 等方法)及可视化(rank_genes_groups、热图、点图)。
- 细胞类型注释:定义已知细胞类型标记基因、可视化标记、手动注释、可视化注释结果。
- 轨迹推断:PAGA、扩散伪时间(DPT)。
- 条件间差异表达、基因集打分、批次校正(ComBat)。
- 保存结果:processed_data.h5ad、细胞元数据与基因元数据 CSV。
使用方式
基本设置:导入 scanpy、pandas、numpy,配置 verbosity、图形参数与输出目录。
标准分析工作流:
- 质量控制:标记线粒体基因(如 MT- 开头),calculate_qc_metrics,violin 可视化,filter_cells(min_genes)、filter_genes(min_cells),按 pct_counts_mt 过滤。
- 归一化与预处理:normalize_total(target_sum=1e4)、log1p、adata.raw = adata、highly_variable_genes(n_top_genes=2000)、子集化、regress_out、scale。
- 降维:pca(svd_solver='arpack')、pca_variance_ratio(检查肘部图)、neighbors(n_neighbors、n_pcs)、umap、tsne。
- 聚类:leiden(resolution)、可视化。
- 标记基因识别:rank_genes_groups、可视化、get.rank_genes_groups_df。
- 细胞类型注释:标记基因列表、umap/dotplot 可视化、手动映射、可视化注释。
- 保存结果。
可直接运行示例命令: python scripts/qc_analysis.py input_file.h5ad --output filtered.h5ad python scripts/qc_analysis.py input.h5ad --output filtered.h5ad --mt-threshold 5 --min-genes 200 --min-cells 3
模板使用: cp assets/analysis_template.py my_analysis.py python my_analysis.py
关键可调参数:QC 中 min_genes(通常 200-500)、min_cells(通常 3-10)、pct_counts_mt(通常 5-20%);归一化 target_sum(默认 1e4);特征选择 n_top_genes(通常 2000-3000);降维 n_pcs、n_neighbors(通常 10-30);聚类 resolution(0.4-1.2,越高聚类越多)。
限制与注意事项
- 官方文档:https://scanpy.readthedocs.io/ ;教程:https://scanpy-tutorials.readthedocs.io/ ;scverse 生态:https://scverse.org/ 。
- Harmony 或 scVI 需使用单独的包,非 Scanpy 内置。
- 建议始终保存原始计数(adata.raw);根据数据质量调整 QC 阈值;推荐使用 Leiden 而非 Louvain;尝试多个聚类分辨率;用多个标记基因验证细胞类型注释;基因表达图使用 use_raw=True;检查 PCA 方差比;保存中间结果。
- 本介绍未提供收费、价格、平台等信息。