「写在前面」
学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。
GitHub:
https://github.com/broadinstitute/Tangram
官方文档:https://tangram-sc.readthedocs.io/en/latest/tutorial_sq_link.html
Tangram
是一个 Python 包,用 PyTorch
编写并基于 scanpy
,用于将 single-cell(or single-nucleus)基因表达数据映射到空间基因表达数据。单细胞数据集和空间数据集应该从相同的解剖区域/组织类型收集,最好是从生物复制中收集,并且需要共享一组基因。Tangram 通过将基因表达拟合到共享基因上来在空间中对齐单细胞数据。熟悉 Tangram 的最佳方法是查看 5.2 Tutorial
和官网的 documentation
。如果您没有使用 squidpy
,请查 5.1 Tutorial
。
相关文献在之前的推文中已经介绍,点击以下链接查看:
1.文献阅读:使用 Tangram 进行空间解析单细胞转录组的深度学习和比对
要安装 Tangram,请确保安装了 PyTorch 和 scanpy。如果您需要有关依赖项的更多详细信息,请查看 environment.yml
文件。
conda env create -f environment.yml
conda activate tangram-env
pip install tangram-sc
import tangram as tg
加载空间数据和单细胞数据(应为 AnnData 格式),并使用 tg.pp_adatas
对其进行预处理:
ad_sp = sc.read_h5ad(path)
ad_sc = sc.read_h5ad(path)
tg.pp_adatas(ad_sc, ad_sp, genes=None)
函数 pp_adatas
找到 adata_sc、adata_sp 之间的共同基因,并将其保存在两个 adatas.un
中,以供后续映射和分析。此外,它将相交的基因取子集为一组训练基因由 gene
参数传递。如果 genes=None
,则 Tangram 使用两个数据集共享的所有基因。一旦数据集经过预处理,我们就可以映射:
ad_map = tg.map_cells_to_space(ad_sc, ad_sp)
返回的 AnnData,ad_map
是一个 cell-by-voxel 的结构,其中 ad_map.X[i, j]
给出 cell i
位于 voxel j
中的概率。该结构可用于将单细胞数据中的基因表达投影到空间,这是通过 tg.project_genes
实现的。
ad_ge = tg.project_genes(ad_map, ad_sc)
返回的 ad_ge
是一个 voxel-by-gene AnnData,类似于空间数据 ad_sp
,但其中基因表达是从 single cells 投影的。如果单细胞具有比空间数据更高的质量(或更多基因),这可以扩展基因通量,或纠正丢失。它还可用于将细胞类型 transfer 到空间。
为了实现更快的训练并消耗更少的内存,Tangram 映射可以在 cell cluster level 完成。这一修改是由 Sten Linnarsson 提出的。
准备输入数据的方法与 cell level Tangram 映射相同。然后使用以下代码进行映射:
ad_map = tg.map_cells_to_space(
ad_sc,
ad_sp,
mode='clusters',
cluster_label='subclass_label')
提供的 cluster_label
必须属于 ad_sc.obs
。上面的示例代码是在 “subclass_label”
级别进行映射,“subclass_label”
位于 ad_sc.obs
中。
要将基因表达投影到空间,请使用 tg.project_genes
并确保将 cluster_label
参数设置为映射中相同的 cluster label。
ad_ge = tg.project_genes(
ad_map,
ad_sc,
cluster_label='subclass_label')
相关 Tutorials 的中文教程在之前的推文中已经介绍,点击以下链接查看:
Tangram Tutorial 1:映射小鼠皮层 MOp 的 snRNAseq 数据到 Slide-seq2 数据
Tangram Tutorial 2:配合 squidy 使用 Tangram
本文由 mdnice 多平台发布