AnnData 注释数据矩阵
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/anndata-zh。
技能介绍
要解决什么问题
单细胞 RNA-seq、多组学批次整合等场景里,你往往同时面对测量矩阵、细胞/基因元数据、降维坐标、邻接图和未结构化注释(uns)。用裸 numpy/pandas 各存各的,索引对齐、稀疏大矩阵内存和「哪一列是 batch」很快就会变成维护成本。AnnData 把这类带注释的数据矩阵收成一种统一对象,也是 Scanpy、Muon 等 scverse 工具的默认载体。
技能如何帮你推进工作
技能围绕 AnnData 的完整生命周期组织,而不是只背 API:
- 数据结构:理解
X、obs、var、layers,以及obsm/varm/obsp/varp、uns、raw各自放什么;知道从 CSV、MTX、10X 等来源创建对象,以及视图与副本对内存的影响。 - 读写:原生
h5ad、zarr,以及 Loom、Excel 等替代格式;大型数据用 backed 模式或压缩,必要时走远程访问与格式转换。 - 拼接与操作:沿观测(
axis=0)或变量(axis=1)合并多批次,选择 inner/outer 与合并策略;子集、过滤、转置、重命名与 QC 过滤等日常变换有对应参考路径。 - 实践约束:稀疏矩阵、分类 dtype、存储布局等建议,减少 OOM 和「索引对不齐」类错误。
与 Scanpy / scvi-tools 联用时,对象结构一致,工作流可以自然衔接。
适用边界
AnnData 解决的是注释矩阵的存储与操作,不是替代下游统计模型或可视化库本身。数据量极大时仍依赖稀疏、backed 和合理的 I/O 策略;外部表(如临床协变量)必须显式按 obs/var 索引对齐,否则拼接与子集会 silently 错位。复杂、多步、长时会话的分析可考虑 K-Dense Web 等托管环境,简单读写与子集任务用本技能即可。
使用场景
- 测序完成后要把多个 10X 或 h5ad 批次按细胞轴拼接,并保留 batch 来源标签
- 单细胞矩阵过大无法整包进内存,需要用 backed 模式读 h5ad 或 zarr 做子集与 QC
- 在跑 Scanpy 流程前,按 obs 元数据过滤低质量细胞并重命名基因/细胞 ID
- 要把 Loom、MTX 或 CSV 计数表转成 h5ad,供 scanpy 或 scvi-tools 继续分析
适合人员
- 用 Scanpy 做单细胞下游分析、需要在批次整合前统一 AnnData 结构与 obs/var 索引的生信分析人员
- 负责把实验室 10X、loom 等原始输出整理成标准 h5ad 并写入云存储或共享目录的数据工程师
- 在 Python 里维护多模态或大规模稀疏表达矩阵、经常做 concat 与子集操作的计算生物学研究生
- 对接 scvi-tools 等模型前,需要检查 layers、raw 与 uns 里注释是否完整且可复现的算法工程师