AnnData 注释数据框架
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cn-anndata。
技能介绍
要解决什么问题
单细胞 RNA-seq、多组学批次整合等场景里,表达矩阵往往要和细胞注释、基因注释、降维坐标、邻接图、非结构化元数据绑在一起。用裸 numpy/pandas 各存一份,索引容易错位,大矩阵又撑爆内存。AnnData 把 X、obs、var 以及 layers、obsm/varm、obsp/varp、uns 收进同一对象,让「按细胞/基因子集」与「按元数据过滤」走同一套语义。
技能覆盖的核心能力
- 数据结构:理解各组件职责;从 CSV、MTX、10X、Loom 等来源构建对象,区分视图与完整复制。
- 读写:原生 h5ad、zarr;大型数据用 backed 模式;非原生
read_*/write_*走anndata.io。 - 拼接:
ad.concat沿观测或变量轴合并,处理 inner/outer join 与批次标签。 - 操作:布尔掩码与元数据条件子集、转置、稀疏/稠密转换、质控过滤。
- 实践:稀疏矩阵、类别 dtype、索引对齐外部表,并与 Scanpy、Muon 等 scverse 工具衔接。
适用边界与注意点
适合「带行/列注释的矩阵」工作流,不是通用关系型数据库。当前稳定版 API 上应优先 ad.read_h5ad、ad.concat、.keys() 映射;避免 ad.read、AnnData.concatenate() 等已弃用接口。anndata.experimental 有用但不稳定,大规模流水线需自行评估风险。
使用场景
- 从 Scanpy 跑完预处理后要读写 h5ad,并按 obs 里的 QC 与批次列筛细胞再交给下游步骤
- 多轮 10X 或不同实验各有一份 AnnData,需要沿细胞轴 concat 并保留数据来源标签
- 表达矩阵过大无法整表载入内存,要用 backed 或 zarr 做子集浏览后再转稀疏矩阵做分析
- 外部差异表达或注释表要按基因/细胞索引对齐回 var 与 obs,避免与 X 行列错位
适合人员
- 在实验室维护单细胞 RNA-seq 标准管线的生信工程师,需要统一 h5ad 读写与批次拼接约定
- 用 Scanpy 或 scvi-tools 做批次整合的研究人员,合并前要先按元数据过滤并追踪实验来源
- 负责百万级细胞队列的数据工程师,需用 backed/zarr 控制内存峰值并做格式转换
- 多模态组学项目中与 Muon 协作的分析师,要求 obs/var 索引与 AnnData 主对象一致