SuperAPI AI 工具集

spatial-mapping-tangram

数据与分析

查看项目

更新于 10-28 09:29

技能介绍

用途

Tangram(tangram-sc)用于把 scRNA-seq 参考数据映射到空间转录组切片上,支持 Visium、Slide-seq、MERFISH、Xenium 等平台。其核心是拟合一个“细胞×空间位点”的概率矩阵,使映射后的单细胞表达能够重现共享训练基因的空间表达。所有下游任务都从该矩阵出发。

主要能力

  • 计算每个空间位点的细胞类型比例,或在单细胞分辨率数据上给出标签。
  • 预测 panel 未测量或受 dropout 影响的基因表达(基因插补)。
  • 在 Visium 全分辨率图像可用时,为每个分割细胞核分配一个细胞类型。
  • 通过留出基因验证映射质量,包括 k 折交叉验证、细胞与聚类对比、随机种子稳定性等更深入的质量检查。
  • 将同一参考映射到多个切片,以便进行一致比较。

使用方式

工作流共 7 步:加载空间数据与参考;归一化并保留原始计数的密度先验;选择训练基因并运行 tg.pp_adatas;将细胞映射到空间;投影细胞类型注释;在训练基因与留出基因上验证;绘图并保存。

安装命令:

pixi add --pypi squidpy scanpy tangram-sc

依赖 Python 包 tangram-sc、squidpy、scanpy,它们并非预装;tangram-sc 会拉取 PyTorch,其 Linux wheel 会带入 CUDA 库(数 GB),首次安装需要数分钟。

关键参数包括:TASK(任务类型)、referenceSource(参考来源)、CELL_TYPE_KEY(细胞类型列)、MODE(cells 或 clusters)、density_prior(密度先验)、TARGETS(插补目标基因)、STAIN(染色类型)、N_MARKERS(每类标记基因数,默认 100)、num_epochs(默认 500,constrained 模式为 1000)。设备自动选择 CUDA 或 CPU。

适用场景

  • 将 scRNA-seq 细胞类型放置到 Visium、Slide-seq、MERFISH 或 Xenium 切片上。
  • 在没有组织学图像的情况下获得每个位点的细胞类型比例。
  • 展示靶向 panel 未测量或 Visium 因 dropout 丢失的基因的空间模式。
  • 在全分辨率图像可用时,为 Visium 位点中的每个分割细胞核打标签。
  • 根据留出基因判断 Tangram 映射是否足够好到可以报告。
  • 将同一参考映射到多个切片以进行一致比较。

限制

  • 参考数据必须与切片来自同一组织与状态,并共享信息基因。
  • 映射总会收敛,因此必须用留出基因验证后才能报告结果。
  • 训练基因少于约 100 个会使映射不稳定。
  • 基因插补没有真实值,留出分数只是代理指标;在参考细胞中表达低于约 5% 的基因会得到噪声较大的图。
  • mode="cells" 在单细胞分辨率切片(10 万以上细胞)上可能占用数十 GB 内存,此时应使用 mode="clusters" 或对参考进行子采样。
  • 若需要位点丰度的后验不确定性,应改用 spatial-transcriptomics-deconvolution-cell2location;若要在 Xenium/MERFISH 上做主要注释的标签转移,应使用 spatial-transcriptomics-cell-type-annotation。

质量判断参考

平均训练分数:>0.7 为好,0.5–0.7 需谨慎使用,<0.5 为差。留出 AUC:>0.6 为好,0.4–0.6 需谨慎,<0.4 为差。留出标记基因相关系数:明显为正为好,弱为需谨慎,接近 0 或负为差。训练与测试差距过大意味着映射记住了标记基因,应扩大标记集、使用 mode="clusters" 或设置 lambda_r > 0。