mcpField
S
scanpy

scanpy

github.com/tondevrel数据与数据库2451 次安装39 周前更新
代码仓库

关于 scanpy

Scanpy 是面向单细胞 RNA 测序研究的 Python 分析工具,适用于研究细胞群体与状态。它以 AnnData 管理表达数据,并提供降维、聚类和轨迹分析流程。

主要功能

  1. 01AnnData 表达矩阵与元数据管理
  2. 02质量控制与归一化
  3. 03PCA、UMAP 和 t-SNE 降维
  4. 04细胞聚类与标记基因分析
  5. 05发育轨迹推断

适用场景

  1. 01分析单细胞 RNA 测序数据
  2. 02识别异质组织中的细胞类型
  3. 03比较不同条件下的细胞群体
  4. 04研究发育轨迹

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tondevrel/scientific-agent-skills --skill scanpy

安装后在 Claude Code 中输入/scanpy确认已加载。

详细介绍

Scanpy - 单细胞分析

Scanpy 处理高维生物数据,通过 PCA/UMAP 降维,以识别组织或微生物组中的稀有细胞群。

适用场景

  • 分析单细胞 RNA 测序(scRNA-seq)数据。
  • 识别异质组织中的细胞类型和状态。
  • 重建发育轨迹。
  • 比较不同条件下的细胞群。
  • 发现稀有细胞类型。

核心原则

AnnData 格式

Scanpy 使用 AnnData 对象,将表达矩阵、细胞元数据和基因注释存储在一起。

降维

将高维基因表达数据(20,000+ 个基因)降至 2D/3D,以便可视化(PCA → UMAP/t-SNE)。

聚类

根据基因表达空间中的相似性对细胞分组,以识别细胞类型。

快速参考

常用导入语句
import scanpy as sc
import pandas as pd
import numpy as np
基本模式
# 1. Load dataset (AnnData object)
adata = sc.read_h5ad("cells.h5ad")
# Or: adata = sc.read_10x_mtx("path/to/mtx")

# 2. QC and Normalization
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)

# 3. Dimensionality Reduction & Visualization
sc.pp.highly_variable_genes(adata)
sc.tl.pca(adata)
sc.tl.umap(adata)
sc.pl.umap(adata, color=['cell_type', 'gene_A'])

# 4. Clustering
sc.tl.leiden(adata, resolution=0.5)
sc.pl.umap(adata, color='leiden')

重要规则

✅ 应该做
  • 设置 scanpy 配置 - 使用 sc.settings.verbosity = 3 获取进度信息。
  • 过滤低质量细胞 - 移除基因数量过少或线粒体含量过高的细胞。
  • 分析前先标准化 - 考虑测序深度差异。
  • 使用高变基因 - 聚焦于信息丰富的基因进行分析。
❌ 不应该做
  • 不要跳过质量控制 - 低质量细胞可能主导聚类结果。
  • 不要对 PCA 使用原始计数 - 务必先标准化并进行对数转换。
  • 不要忽略批次效应 - 合并数据集时,使用批次校正(例如 sc.pp.harmony_integrate)。

高级模式

轨迹推断
import cellrank as cr

# Reconstruct developmental trajectories
sc.tl.paga(adata)
sc.pl.paga(adata)
adata.uns['iroot'] = np.flatnonzero(adata.obs['cell_type'] == 'stem')[0]
sc.tl.dpt(adata)
差异表达
# Find marker genes for each cluster
sc.tl.rank_genes_groups(adata, 'leiden', method='wilcoxon')
sc.pl.rank_genes_groups(adata, n_genes=20)

Scanpy 彻底改变了单细胞生物学,使研究人员能够绘制组织的细胞多样性图谱,并了解细胞如何分化和发挥功能。

评论

支持 Markdown