单细胞Ana-Python

🌟单细胞分析框架概览(总)

单细胞组学是当前生命科学研究中的热点领域,随着技术发展,分析工具生态也日趋完善。当前主流的单细胞分析框架主要分为三大阵营:

框架 语言 代表生态
Bioconductor R 多种包:SingleCellExperimentscran
Seurat R Seurat 本身支持多模态和空间数据
scverse Python scanpy, anndata, muon, scvi-tools, scirpy, squidpy, cell2location, 等

其中 scverse 是当前发展最迅速的生态系统,具有出色的可扩展性、模块化能力,并与 Python 的机器学习、图像处理生态高度兼容,逐渐成为现代大数据单细胞分析的主流选择。


📦 1. scverse 生态核心工具详解(分)

1.1 anndata:统一数据结构核心

  • 基本对象:AnnData,用于存储单细胞表达矩阵及其元数据。
  • 数据槽设计(类似 HDF5 层级结构):
    • X:主表达矩阵(通常为稀疏矩阵)
    • obs / var:细胞和基因注释
    • obsm / varm:嵌入维度数据(如UMAP, PCA)
    • layers:不同变换方式的表达矩阵
    • uns:非结构化元信息(颜色映射、聚类设置等)
    • obsp / varp:细胞对/基因对关系矩阵(如邻接图)

📖 官方教程:anndata 文档


1.2 scanpy:单细胞表达分析主力库

提供完整分析流程:

  • 预处理:过滤、归一化、对数化
  • 降维:PCA、UMAP、t-SNE
  • 聚类:louvain、leiden
  • 差异表达分析:sc.tl.rank_genes_groups
  • 可视化:UMAP图、热图、空间图(spatial)

🌍 空间可视化函数:

sc.pl.spatial(adata, color="gene_name", img_key="hires")

📖 教程:Scanpy API


1.3 muon:多组学分析框架

  • 支持 scRNA+ATACCITE-seq 等多模态整合分析。
  • 核心对象:MuData,扩展自 AnnData
  • 完美兼容 scanpyscvi-tools

📖 文档:https://muon.scverse.org


1.4 scvi-tools:基于深度学习的统计建模工具包

用于高阶分析,核心方法为变分自编码器(VAE)

  • 批次效应校正
  • 数据降噪与特征提取
  • 差异表达分析
  • 多组学联合建模

📌 模型支持:

  • SCVI:基础VAE建模
  • TOTALVI:RNA+蛋白
  • MULTIVI:RNA+ATAC
  • PEVI:预测性建模

📖 文档:https://docs.scvi-tools.org


1.5 SpatialDataSquidpy:空间组学利器

  • SpatialData:统一空间数据存储框架,支持 FAIR 原则。
  • Squidpy:用于分析和可视化空间转录组与组织图像数据,功能包括:
    • 邻域图构建
    • 空间统计
    • 图像整合与分割
    • napari 交互式可视化

📖 文档:https://squidpy.readthedocs.io


1.6 scirpy:TCR/BCR 重构分析

  • 支持从单细胞测序数据中分析TCR/BCR序列重构
  • scanpymudata 高度兼容
  • 模块丰富,支持聚类、克隆图谱可视化等

📖 文档:https://scirpy.scverse.org


1.7 其他常用工具包(简略介绍)

工具 功能
pySCENIC 转录因子活性分析
scVelo RNA velocity 分析
cell2location 空间定位细胞类型
tangram scRNA与空间数据对齐
DoubletDetection 检测双细胞
CellRank 动态细胞轨迹推断
PyDESeq2 bulk RNA-seq 差异分析(Python实现)
cellxgene 高效交互式可视化工具
hotspot 基因模块识别

🧠 总结(总)

基于当前单细胞分析需求的复杂性,scverse 生态成为单细胞 Python 社区的分析标准。其高度模块化的数据结构(anndata, mudata, spatialdata)以及围绕 scanpy / scvi-tools 等工具构建的分析工作流,为科研人员提供了从原始数据导入到建模、可视化、解释的一站式解决方案。

随着空间组学、多模态组学数据的普及,工具如 muonSpatialDataSquidpy 也将成为未来研究的关键工具。


🧪 代码总结(实用框架)

# 1. 导入数据
import scanpy as sc
adata = sc.read_10x_h5("filtered_feature_bc_matrix.h5")

# 2. 基础预处理
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)

# 3. 降维 + 聚类
sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata)

# 4. 差异表达分析
sc.tl.rank_genes_groups(adata, groupby="leiden", method="t-test")

# 5. 可视化
sc.pl.umap(adata, color=["leiden"])
sc.pl.rank_genes_groups_heatmap(adata, groups="3", n_genes=10)

# 6. 空间可视化(如有空间数据)
sc.pl.spatial(adata, color="GeneX", img_key="hires", size=1.5)

# 7. scvi-tools 初始化(如需高级分析)
from scvi.model import SCVI
import scvi
scvi.data.setup_anndata(adata)
model = SCVI(adata)
model.train()
adata.obsm["X_scVI"] = model.get_latents()

posted @ 2025-05-19 11:28  tomorgen  阅读(91)  评论(0)    收藏  举报